downscale the result if it get to big

This commit is contained in:
Fahmi Akbar Wildana 2025-02-16 18:13:12 +07:00
parent 40f8a88f15
commit 2b109ab105
No known key found for this signature in database
GPG key ID: 7A0CD14F54006AAE
5 changed files with 633 additions and 1209 deletions

View file

@ -62,6 +62,15 @@ func Render(diagram *d2target.Diagram, opts *RenderOpts) ([]byte, error) {
} }
} }
// If the canvas is too large, downscale it
const maxWidth = 120
if canvas.w > maxWidth {
ratio := float64(canvas.h) / float64(canvas.w)
newWidth := maxWidth
newHeight := int(float64(maxWidth) * ratio)
canvas.DownscaleGrid(newWidth, newHeight)
}
return canvas.TrimBytes(), nil return canvas.TrimBytes(), nil
} }
@ -224,7 +233,7 @@ func (c *Canvas) drawLine(x1, y1, x2, y2 int) {
for ; x1 <= x2; x1++ { for ; x1 <= x2; x1++ {
if steep { if steep {
c.set(y1, x1, '/') c.set(y1, x1, '|')
} else { } else {
c.set(x1, y1, '/') c.set(x1, y1, '/')
} }
@ -308,6 +317,75 @@ func (c *Canvas) TrimBytes() []byte {
return buf.Bytes() return buf.Bytes()
} }
// DownscaleGrid reduces the size of ASCII art using a pixel-like sampling technique
func (c *Canvas) DownscaleGrid(targetWidth, targetHeight int) {
if targetWidth >= c.w || targetHeight >= c.h {
return // No downscaling needed
}
// Calculate sampling box size
boxWidth := float64(c.w) / float64(targetWidth)
boxHeight := float64(c.h) / float64(targetHeight)
// Create new grid
newGrid := make([][]rune, targetHeight)
for i := range newGrid {
newGrid[i] = make([]rune, targetWidth)
}
// Sample characters from original grid
for y := 0; y < targetHeight; y++ {
for x := 0; x < targetWidth; x++ {
// Calculate sampling box boundaries
startX := int(float64(x) * boxWidth)
endX := int(float64(x+1) * boxWidth)
startY := int(float64(y) * boxHeight)
endY := int(float64(y+1) * boxHeight)
// Count character occurrences in the sampling box
charCount := make(map[rune]int)
for sy := startY; sy < endY && sy < c.h; sy++ {
for sx := startX; sx < endX && sx < c.w; sx++ {
ch := c.grid[sy][sx]
charCount[ch]++
}
}
// Choose the most appropriate character
var maxCount int
var dominant rune = ' '
// Priority order for characters
priorities := []rune{'+', '|', '-', '/', '\\', '.', ' '}
for _, ch := range priorities {
if count := charCount[ch]; count > maxCount {
maxCount = count
dominant = ch
}
}
// Special cases for line preservation
hasVertical := charCount['|'] > 0 || charCount['+'] > 0
hasHorizontal := charCount['-'] > 0 || charCount['+'] > 0
// Determine final character
if hasVertical && hasHorizontal {
newGrid[y][x] = '+'
} else if hasVertical {
newGrid[y][x] = '|'
} else if hasHorizontal {
newGrid[y][x] = '-'
} else {
newGrid[y][x] = dominant
}
}
}
c.grid = newGrid
c.w = targetWidth
c.h = targetHeight
}
func min(a, b int) int { func min(a, b int) int {
if a < b { if a < b {
return a return a

View file

@ -1,116 +1,64 @@
+--------------------------------------------------------+ +------------------------------+
| | | |
| | | |
| | | |
| | | +--------------------------+ |
| | | | | |
| | | | | |
| +-------------------------------------------------+ | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | +--+ +--+ +--+ +--+ | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | +-----------------+
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | | | +--+ +--+ +--+ +--+ | | | +---+ |
| | | | | | | | | | | |
| | | | +-----------------------------------+ | | | | | | | |
| | | | | | | | | | | | | |
| | +----+ +----+ +----+ +----+ | | | | | | | | | ---+ | |
| | | | | | | | | | | | | | | | +--+ +--+ +--+ +--+ | | | // | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | +--------------------------------+ | +-----+ | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---+ |
| | | | | | | | | | | | | | | | | | | | +--+ +--+ +--+ +--+ | | | +--+ |
| | | | | | | | | | | | | | | ---- ---/ | | | | | | | | |
| | | | | | | | | | | | | | | / | | | | | | | | | | | |
| | | | | | | | | | | | | | | || | | | +-----+ | | | +-+---------+-+ | |
| | +----+ +----+ +----+ +----+ | | | +-------+ | | | | | ||| | | | | | | | | | |
| | | | | | | | | +-----| +-----+ || | | | | | | | | | |
| | | | | | | | | | | | | | | | +--+ +--+ +--+ +--+ | | | +--| |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | +---+ |
+------------------------------------------------------------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +-+---------+-+ | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | +--+ +--+ +--+ +--+ | | | / | | |
| | | | | | | | | | | | | | | | | | | | | ---+ | |
| | | | | | | ------ | | | | | | | | | | | | | | | |
| | | | +----+ +----+ +----+ +----+ | | | // | | | | +-----+ +-----+ | | | | | | | | | | |
| | | | | | | | | | | | | | | / | | | | || | | || | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | || | | ||+-----+ | | | | | | | | |
| +----------+ | | | | | | | | | | | | | | | | | | | | | | || | | | +--+ +--+ +--+ +--+ | | | +---+ |
| | | | | | | | | | | | | | | | | | | | | | /---+ +--/ | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | +-------+ | | | | | | | | | | | | | | | | | +-----------------+
| | | | | | | | | | | | | | | | | | | | +-----+ | | | +--+ +--+ +--+ +--+ | |
| | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | +----+ +----+ +----+ +----+ | | | +----+| | | | | | | |
| ------ linked -----/ | | | | | | | | | | | | | | |
| // | | // | | | | | | | | | | | | | | |
| / | | | | | | | | | | | | +-----------------------------------+ | | | |
| | | | | +-----------+ | | | | | | | | | | | | |
| | | | | | | | | | Test -------------------------- | Release | | | | |
| | | | | | | | | | | | | | | | | +--------------------------+ |
| | | | | | | | | | | | | | | | | |
| | | | || | | | | | | | | | | | |
| +----------| +----------+ | | | | | | | | | | | | |
| | | | | | | | +----+ +----+ +----+ +----+ | | | +----| | | |
| | | | | | | | | | | | | | | | | | | | | +------------------------------+
| | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | +-------+ |
| | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | |
| | | Build | | | | | | | | | | | | | | | | | | | |
| | source | | -------------------------- | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | / | | |
| | | | | | | | +----+ +----+ +----+ +----+ | | | / | | |
| | | | | | | | | | | / | | |
| | | | | | | | | | | ------ | |
| | | | | | | | | | | | | |
| | | +----------+ | | | | | | | | | | |
| +----------+| | | | | | | | | | | | | |
| | | | || | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | +-----------+ | | | | | | | | |
| | | | | | | | +----+ +----+ +----+ +----+ | | | +-------+ |
| / | | | | | | | | | | | | | | | | | |
| // | assets | // | | | | | | | | | | | | | | |
| ------ -----/ | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | +--------------------------------+
| | | | | | | | | | | | | | | |
| +----------+ | | | +----+ +----+ +----+ +----+ | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
+------------------------------------------------------------------+ | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| +-------------------------------------------------+ |
| |
| |
| |
| |
| |
| |
| |
+--------------------------------------------------------+

View file

@ -1,301 +1,203 @@
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+ +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | 北 海 道 | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+ | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+ +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | 青 森 | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+ | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | 秋 田 | 岩 手 | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+ | || | | || | | | | || | | |
| || | | || | || | | || | | | +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | 石 川 | || 新 潟 | 山 形 | 宮 城 | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+ | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | 福 井 | 富 山 || 群 馬 | 栃 木 | 福 島 | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+ | || | | || | | | | || | | |
| || | | || | || | | || | | | +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | 山 口 | 島 根 || 鳥 取 | 兵 庫 || 京 都 | 滋 賀 | 長 野 || 山 梨 | 埼 玉 | 茨 城 | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+ | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | 広 島 || 岡 山 | 大 阪 || 奈 良 | 岐 阜 | 愛 知 || 静 岡 | TOKYO | 千 葉 | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+ | || | | || | | | | || | | |
| || | | || | || | | || | | | | || | | || | | | | || | | |
| || | | || | || | | || | | | +-------++--------+-------+-------++-------+-------+--------+-------+-------++-------+--------+--------+
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| 長 崎 || 佐 賀 | 福 岡 | || | || 和 歌 山 | 三 重 | || | 神 奈 川 | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || 熊 本 | 大 分 | || 愛 媛 | 香 川 || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || 鹿 児 島 | 宮 崎 | || 高 知 | 徳 島 || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| 沖 縄 || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
| || | | || | || | | || | | |
+-----------++------------+-----------+-----------++-----------+-----------++------------+-----------+-----------++-----------+------------+------------+

View file

@ -1,530 +1,193 @@
+---------------+ +---------------+ +---------------+ +----+ +-----+ +-----+
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | +----+ +-----+ +-----+
| | | | | |
| | | | | | | | |
| | | | | | | | |
| Android | | Iphone | | Web | || | |
| | | | | | || | ||
| | | | | | | | ||
| | | | | | | | |
| | | | | | || | |
| | | | | | ||+--+--+||
| | | | | | || ||
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | / | |
+---------------+ +---------------+ +---------------+ +-----+
/ /
| |
|| |
| | | || |
| | | | |
| | | || |
| | | | |
| | | || |
| | | | |
| | | || |
| | | +------+--------------------------------------------+---+
| | | | | | |
| | | | | | |
| | | | | +--+--+|
| | | | | | ||
| | | | +----+----+ | ||
| | | | | | | ||
| | | | | | +----------------------+ | ||
| | | | | - | | | | ||
| | | | | | | | | ||
| | | | | | +----------------------+ //| ||
| | | | +---------+ | ||
| +-------|-------+ | | | | ||
| | | | | | | ||
| | | | | | // | ||
| | | | | | +-----+|
| | | | | | |
|| || | | | |
| | | | / | |
| | +-------+-----------------------------------------------+ ||
| | || | |
| | || | |
| | | | ||
| | || |
| | || ||
| | |/// |
| | // // |
| | |
Twitter Frontend |
| | |
| | |/ +----------------------------------------------------++
// | | | |
// | | | | |
/// | / | | +------------+ |
/// | |// | | | | |
// | | / | | | | |
/// | | / | | | | |
// | | // | | | | |
/// | | / +--+--+ | | | |
/// | | / | | | | | |
// | | // | | | | | |
/// | | / | | | + - -- | |
// | | / | | | | - | |
/// | | // | | | | | |
// +---------------+ / +--++++ | | | |
/// / | |||| | | | |
/// // / / | | | | | | | |
// / || | | || | | | |
/// / | | || | | | | |
// // | | | | | | | |
/// / / | | | || | +------------+ |
/// / || | | || | |
// // | | | | | | | +-----------------------------------------------------+
|/ / | || | | | || || | | | | | |
| | | | | | | | | | | | | | |
| | || | | | | | || | | | | | |
| | | || | | | || | | | | | | |
| | || | | | || | | | | | | | |
| | | | | | | | | | | | | | |
| | || || | | | | | || | | | | |
| | | | || | | || | | || | | | |
| | | || | | | | | | | | | | |
| | | | | | | | / || | | | |
| | | | | | || || | | | | |
| | | | | | | || | || | | |
| | | | | | || || | | | | | +-----+
| | | | | | | | | || | | | | |
| | +--+--+ +-+--+ +--+--+ +--+-+ +--+---+ ++----+ +----+ +--+-+ +-----+ +------+ | |
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | |
| | +-----+ +----+ +-----+ +----+ +------+ +--+--+ | | +----+ | | | | | |
| | | +----+ +-----+ +/-----+ | |
| | || +--+--+
| | | ||
| | | |
| | | / / |
+-----------------|---------------------------------------------------------------------------------------------------------------------------|----------+ | |
| | | | | |
| | | | | |
| | | | | // |
| | | | | |
| | | | | |
| | | | || |
| | | | // | |
| | +-------|-------+ | | | |
| | | | | | | |
| | | | | | +--+----------------------------------------+ |
| | | | | | | | / | +-----+
| | | | | | | | | | |
| | | | | +--+--+ | ++--+ +----+ +---+ +---+ +-----+| | |
| | | | | | | | | | | | | | | | | || | |
| +-------------|--------------+ | | | | | | | | | | | | | | | || | |
| | | | | | | | | | | | | | | | | | || | |
| | | | | | | | | | | | | | | | | | || | |
| | | | | | | | | | | | | | | | | | || | |
| | | +-------------------------------------------------------------+ | | | ++-++-+ | +---+ +----+ +---+ +---+ +-----+| / | |
| | | | | | | | ||| | | | ++---++
| | | | | | | | | || | +-------------------------------------------+ | |
| | | | | | | | || || | | |
| | TLS-API (being deprecated) | | ## Tweet/user content hydration, visibility filtering | | GraphQL | | | || || | | |
| | | | | Federated Strato Column | | | | |
| | | | | | | | | | | | |
| | | | | // | | | | | | |
| | | | | /// | | | | / | | | |
| | | +-------------------------------------------------------------+ // | | | | | | | |
| | | /// | / | | | | | |
| | | /// | |//| | || | || |
| +----------------------------+ /// | | / | / / / | | | |
| | // | | |// | | | | |
| | /// | | | // | | | | |
| | /// | | | / | | | | |
| | /// | | | // | /// /// //// | | | |
| | // | | | / +--+--+ | | | |
| | /// | | | // | | || || | +-----+
| | /// | | | / | | ||+-----++ | | |
| | /// | | | // | | // /// +---|/| | +--+-+ | |
| | /// +---------------+ | / | | | | | | | | | |
| | // | // | | | | | | | | | |
| | /// | // | | | | | | | | | |
| | /// | / | | | | | | | | | |
| | /// | // | | | | | | | | | |
| | // | / | | +---+ | | +----+ | |
| | /// | // | | +------+ +--+--+
| | // | | | | |
| | // | | +-----+ |
| | // | | |
| | // | | |
+-------------------|------------------------------------------------/-----------------------------------------------------------------------------------+ | |
| // | |
| // | |
| // | |
| | | |
| | | |
| | | +--+--+
| | | | |
| | | | |
| | | | |
| | | | |
| // | | |
| //// | | |
| /// | | |
| /// | | |
| //// | | |
| /// | | |
|/ /// | +-----+
/////// |
/// //// |
//// //// |
/// /// |
/// //// |
//// //// |
/// /// |
//// //// |
/// //// |
/// //// |
//// /// |
/// //// |
/// //// |
//// +-----------------------------------------//----------------------------------------------------------------------------------------------------|--+
|/ | |
| | |
| | |
| | |
| | |
| | |
| | |
| | +----------------------------------+ |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
+-------|-------+ | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | ## **Timeline mixer** | |
| | | - Inject ads, who-to-follow, onboarding |
| Home mixer | | | - Conversation module | |
| | | | - Cursoring,pagination | |
| | | | - Tweat deduplication | |
| | | | - Served data logging | |
/| | | | | |
// | | | | | |
// /| | | | | |
// / | | | | | |
// // +---------------/ | | | |
// / | | | | / | | | |
// / | | | | / | | | |
// // | | | | / | | | |
// / | | | | / | | | |
// / | | | | / | | | |
// // | | | | / | | | |
// / | | | | / | | | |
// / | | | | / | | | |
// // | | | | / | | | |
// / | | | | / | | | |
// / | | | | / | | | |
// // | | | | / | | | |
// / | | | | / | | | |
// / | | | | / | | | |
// // | | | | / | | | |
// / | | | | / | +----------------------------------+ |
// / | | | | / | |
// // | | | | / | |
// / | | | | / | |
// / | | | | / | |
// // | | | | / | |
|/ / | | | | / | |
| | | | | | | +--------------------------------------------------------------------------------------------------------------------------------------------------+
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | / / | | | | |
| | | | | | / / | | | | |
| | | | | | // // | | | | |
| | | | | | / | | | | |
| | | | | | / / | | | | |
| | | | | | / / | | | | |
| | | | | | // / | | | | |
| | | | | | / // | | | | |
| | | | | | / / | | | | |
| | | | | | // / | | | | |
| | | | | | / | | | | |
| | | | | / | //| | | | | +--------------+
| | | | | / | |/ | | | | | |
| | | | | // | | / | | | | | |
| | | | | / | | / +------------+ | +---------------+ +-------------------+ | |
| | | | | / | | / | | | | | | | | |
+--------------+ +---------------+ +--------------+ +--------------+ +-------------------+ +----------------+ // | | +------------+ | | | | | |
| | | | | | | | | | | | /| | | | | | | | | |
| | | | | | | | | | | | / | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | Timeline | | | | Onboarding | | People discovery | | Fetch |
| Tweety Pie | | Social graph | | Gizmoduck | | Manhattan | | Timeline Service | | Home Ranker | | Scorer | | Ad mixer | | service | | service | | |
| | | | | | | | | | | | | | | | | | | | | // |
| | | | | | | | | | | | | | | | | | | | /// |
| | | | | | | | | | | | | | | | | | | | ///| |
| | | | | | | | | | | |// | | | | | | | |//// | |
| | | | | | | | | | | | // | | | | | | | /// | |
| | | | | | | | | | | | // | | | | | | | /// | | |
| | | | | | | | | | | | // | | | | | | /// | | |
+--------------+ +---------------+ +--------------+ +--------------+ +-------------------+ +------|---------+ |/// | +------------+ | | | /// | | |
| | // | | | | //// | | |
| +-----//-----+ +---------------+ +-///---------------+ | |
| // /// | |
| /// /// +--------|-----+
| // /// |
| // //// |
| /// /// |
| // /// |
| // /// |
| // /// |
| /// //// |
| // /// |
| // /// |
| // // |
| // / |
| //// / |
| /// / |
| //// // |
| /// / |
| //// / |
| /// / |
| //// / |
| /// / |
| //// / |
| /// / |
| //// / |
| //// // |
| /// / |
| //// / |
|/// / |
///| / |
/// | / |
//// | / |
/// | / |
//// | // |
/// | / |
//// | / |
|/ | / |
| | // |
| | // |
| | /// |
| | /// |
| | // |
| +-------|----------------------------------------///---------------------------------------------------------------------+ |
| | | // | |
| | | /// |
| | | /// | +----------------+
| | | // | | |
| | | /// | | |
| | | /// | | |
| | | // | | |
+----------------+ | +-----------+ /// +------------+ +--------+ +---------+ +----------------+ | | |
| | | | | // | | | | | | | | | | |
| | | | | /// | | | | | | | | | | |
| | | | | /// | | | | | | | | | | |
| | | | | // | | | | | | | | | | |
| | | | // | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | Feature |
| Home Scorer | | | CrMixer | | EarlyBird | | Utag | | Space | | Communities | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | / |
| | | | | | | | | | | | | | |// |
| | | | | | | | | | | | | | // |
| | | | | | | | | | | | | | / | |
| | | | | | | | | | | | | | // | / |
+---|--||---|----+ | +-----------+ +------------+ +--------+ +---------+ +----------------+ | // |/ |
| || | | | / / |
| || | | | // /| |
| || | | | / / | |
| | | | | | // / +--|--------|----+
| | | | | | // / | |
| | | | | | / / | |
| || | +------------------------------------------------------------------------------------------------------------------------+ // / | |
| || | // / | |
| || | / / | |
| | | | // / | |
| | | | // / | |
| | | | | / | |
/ | / / | | | |
/ | / / | | | |
/ | / // | | | |
/ | / / | | | |
/ | // / | | | |
/ | / // | | | |
/ | / / | | | |
/ | / / | | | |
/| / / | | | |
/ / // | | | |
|/ / / | | | |
| / / / | | | |
| / // // | | | |
| / / / | | | |
| / / / | | | |
| / / / | | | |
| / / // | | | |
| / / / | | | |
| / / / | | | |
| / / / | | | |
| / / // | | | |
| / // / | | | |
| / / / | | | |
| / / // | | | |
| / / / | | | |
| /// /// /// | | | |
| //// ///// ///// | | | |
| ///// //// ////// | | | |
| //// ///// ///// | | | |
| //// ///// ///// | | | |
| ///// ///// ///// | | | |
| //// //// ///// | | | |
| ///// ///// ////// | | | |
| //// ///// ///// | | | |
+-------|-------+ //// ///// ///// | | | |
| | ///// //// ///// | | | |
| | //// ///// ////// | | |
| | ///// ///// ///// | | |
| | //// //// ///// | | | +----------------+
| | ///// ///// ///// | +--------------|--+ | | |
| | //// ///// ///// | | | | | |
| | //// ///// ////// | | | | | |
| | ///// //// +---------/|/// | | +--------|-----+ | |
| | //// ///// | | ///// | | | | |
| | ///// ///// | | ///// | | | | |
| | //// |///// | | ///// | | | | |
| | //// | ////| | ////// | | | |
| | ///// | ///// | |///// | | | |
| | //// | | /// | /// | | |
| | /// | | | | | | |
Prediction Service | ...etc | | Memcache | | Manhattan | | Scoring |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | +---------+ | | +--------------+ | |
| | | | | |
| | | | | |
| | | | | |
| | +-----------------+ | |
| | +-------|--------+
| | |
| | |
+---------------+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+-------|-------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
Prediction Service
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
+---------------+

View file

@ -1,261 +1,94 @@
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +--------------------------------------------------------------------------------------------------------------+
| | | |
| | | |
| | | |
| | | |
| | | +------------------------------------------------+ +------------+ |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| +----------------------------------------------------------------------------------------------------------------------------------------+ +------------------------------------+ | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | +------------------------------------------------+ +-----+------+ |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | +-----------------------------------------------------------+--------------------------------------------------+
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | +-----------------------------------------------------------+--------------------------------------------------+
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | +-----------------------------+ +---------+ +------------+---------+ +---+ +-----------------------------+ |
| | | | | | | | | | | | | | | | | | |
| | | | Random Matrix Generator | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | +----+ | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
| | | | | | | | +--+--+----+-+---+---+--+ | | | | | | +----+---+---++---+ | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | +----+ +---+ | | | | | | | | | | | || | | | | | | | |+---+ +----+ | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | +----+ | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | +--+--+----+-+---+---+--+ | | +---+ | | +----+---+---++---+ | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | | | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | || | | | | | | |
| | | | | | | | | | | + | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | || | | | | | | |
| +----------------------------------------------------------------------------------------------------------------------------------------+ +-----------------|------------------+ | | | | | | + | | | | | | || | | | | | | |
| | | | | +--+--+----+-+---+---+--+ | | | | | | | | | || | | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | | | | | | | +---+ | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | +----+---+---++---+ | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | || | +-+---+-+ | | || | | | | | | |
| | | | | | | +----+ +---+ | | | | | | | | | || | | | | | | | |+---+ +----+ | | | |
| | | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | +--+--+----+-+---+---+--+ | | | | | | | || | | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | | | | || | | | | | | |
| | | | | | | | | +----+---+---++---+ | | | | | |
| | | | | | | | | | | | || | | | | | | |
| | | | | | | | | | | | || | | | | | | |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------+ | | | | | | | | | || | | | | | | |
| | | +--+--+----+-+---+---+--+ | | | | | | | || | | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | -| | | | | | | | | | | | || | | | | | | | || -| | | | | | |
| | | | | +----+ +---+ | | | | | | +----+---+---++---+ | | | | | | |+---+ +----+ | | | |
| | | | | | | | | | | | | | | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | | || | | | | | | |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------+ | | +--+--+----+-+---+---+--+ | | | | | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | |
| | | | | | | | | | | | | | |
| | | | +-----------------------------+ +---------+ +----------------------+ +---+ +-----------------------------+ |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | +--------------------------------------------------------------------------------------------------------------+
| | |
| | |
| | |
| +-----------------------------------------------------------------------------------+ +---------------------------+ +-----------------------------------|----------------------------+ +-----------+ +-----------------------------------------------------------------------------------+ |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | +------------+ | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | +--------+--------++-----------+-----++-----------+--------++--------+ | | | | | | +-----------++-----------+-----------++-----------+ | | | | +--------+--------++-----------+------+-----------++--------+--------+ | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | 0.62 | 0.15 |-------------zen V|------------- 0.91 || 0.48 | | | | | | | | 0.41 || 0.32 | 0.92 || 0.13 | | | | | | 0.62 | 0.15 |-------------zem Ve-------------- 0.91 | 0.48 | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | +------------+ | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | +--------+--------++-----------+-----++-----------+--------++--------+ | | | | +-----------++-----------+-----------++-----------+ | | | | +--------+--------++-----------+------+-----------++--------+--------+ | |
| | | | | | | || | || | | | | | | |
| | | | +---------+ | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | +-+ | | | | || | || | | | | | | |
| | | | | | | | | | | || | || | | | | | | |
| | | | Dot |r|duct | | | 0.74 || 0.15 | 0.53 || 0.21 | | | | | | |
| | | | | | | | | | | || | || | | | | | | |
| | | | | | | | | | | || | || | | | | | | |
| | | | | +-+ | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | | | | | | | | || | || | | | | | | |
| | +--------+--------++-----------+-----++-----------+--------++--------+ | | | | | | | || | || | | | | | +--------+--------++-----------+------+-----------++--------+--------+ | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | +---------+ | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | +-----------++-----------+-----------++-----------+ | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | ----------------------- | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | 0.62 | 0.15 |-------------zen V|------------- 0.91 || 0.48 | | | | | | || | || | | | | | | 0.62 | 0.15 |-------------zem Ve-------------- 0.91 | 0.48 | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | 0.97 || 0.45 | 0.11 || 0.05 | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | +--------+--------++-----------+-----++-----------+--------++--------+ | | | | | || | || | | | | | +--------+--------++-----------+------+-----------++--------+--------+ | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | +-----------++-----------+-----------++-----------+ | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | | | | | | || | || | | | | | | |
| | +--------+--------++-----------+-----++-----------+--------++--------+ | | | | | || | || | | | | | +--------+--------++-----------+------+-----------++--------+--------+ | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | 0.61 || 0.77 | 0.59 || 0.83 | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | 0.62 | 0.15 || n-s|zen V||tor | 0.91 || 0.48 | | | | | | || | || | | | | | | 0.62 | 0.15 || m-s|zem Ve|tor || 0.91 | 0.48 | | |
| | | | |------------- |------------- || | | | | | | || | || | | | | | | | |------------- -------------- | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | +-----------++-----------+-----------++-----------+ | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | +--------+--------++-----------+-----++-----------+--------++--------+ | | | | | | | | +--------+--------++-----------+------+-----------++--------+--------+ | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| +-----------------------------------------------------------------------------------+ +---------------------------+ +----------------------------------------------------------------+ +-----------+ +-----------------------------------------------------------------------------------+ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+