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
}
@ -224,7 +233,7 @@ func (c *Canvas) drawLine(x1, y1, x2, y2 int) {
for ; x1 <= x2; x1++ {
if steep {
c.set(y1, x1, '/')
c.set(y1, x1, '|')
} else {
c.set(x1, y1, '/')
}
@ -308,6 +317,75 @@ func (c *Canvas) TrimBytes() []byte {
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 {
if a < b {
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 | | |
| | | | |------------- |------------- || | | | | | | || | || | | | | | | | |------------- -------------- | | | |
| | | | || | || | || | | | | | | || | || | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | +-----------++-----------+-----------++-----------+ | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | | | || | || | || | | | | | | | | | | | || | | || | | | |
| | +--------+--------++-----------+-----++-----------+--------++--------+ | | | | | | | | +--------+--------++-----------+------+-----------++--------+--------+ | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| +-----------------------------------------------------------------------------------+ +---------------------------+ +----------------------------------------------------------------+ +-----------+ +-----------------------------------------------------------------------------------+ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------------------------------------+
| |
| |
| |
| |
| +------------------------------------------------+ +------------+ |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| +------------------------------------------------+ +-----+------+ |
| | |
| | |
| | |
| | |
+-----------------------------------------------------------+--------------------------------------------------+
|
|
|
+-----------------------------------------------------------+--------------------------------------------------+
| | |
| | |
| | |
| | |
| +-----------------------------+ +---------+ +------------+---------+ +---+ +-----------------------------+ |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | +----+ | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | +--+--+----+-+---+---+--+ | | | | | | +----+---+---++---+ | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | +----+ +---+ | | | | | | | | | | | || | | | | | | | |+---+ +----+ | | | |
| | | | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | +----+ | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | +--+--+----+-+---+---+--+ | | +---+ | | +----+---+---++---+ | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | | | || | | | | | | |
| | | | | | | | | | | || | | | | | | |
| | | | | + | | | | | | || | | | | | | |
| | | | | | | | | | | | || | | | | | | |
| | | | | + | | | | | | || | | | | | | |
| | +--+--+----+-+---+---+--+ | | | | | | | | | || | | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | | | | +---+ | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | +----+---+---++---+ | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | || | +-+---+-+ | | || | | | | | | |
| | | | +----+ +---+ | | | | | | | | | || | | | | | | | |+---+ +----+ | | | |
| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | +--+--+----+-+---+---+--+ | | | | | | | || | | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | || | | | | | | |
| | | | | | +----+---+---++---+ | | | | | |
| | | | | | | | | || | | | | | | |
| | | | | | | | | || | | | | | | |
| | | | | | | | | || | | | | | | |
| | +--+--+----+-+---+---+--+ | | | | | | | || | | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | || | | | | | | | || | | | | | | |
| | | | | -| | | | | | | | | | | | || | | | | | | | || -| | | | | | |
| | | | +----+ +---+ | | | | | | +----+---+---++---+ | | | | | | |+---+ +----+ | | | |
| | | | | | | | | | | | | | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | || | | | | | | |
| | | | | | | | | | | | | | | | | | | | || | | | | | | |
| | +--+--+----+-+---+---+--+ | | | | | | | | +--+--++---+-+----+--+--+ | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| +-----------------------------+ +---------+ +----------------------+ +---+ +-----------------------------+ |
| |
| |
| |
| |
| |
+--------------------------------------------------------------------------------------------------------------+