Position Independent Source Code

Check-in Differences
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Difference From:

[5d405be33e] Getting this ready for later benchmarking (user: yumaikas tags: trunk, date: 2017-01-01 10:23:54)

To:

[ee6ad01f10] Added some needed words to dicts (user: yumaikas tags: trunk, date: 2017-12-10 22:40:15)

Added CONTRIBUTING.md.











>
>
>
>
>
1
2
3
4
5
This repository is a mirror of [pisc.junglecoder.com](https://pisc.junglecoder.com), so if you'd like to get the best view of the project, that's where you should be able to find it.
I recommend opening an issue, or emailing me based on my profile before opening a PR. 

Right now I'm focusing on more tests, some basic performance improvements, and building up to a high quality IRC/Slack/Discord chat-bot frame work, hopefully one that can trade punches with Hubot. Contributions that focus in theses areas are more than welcome. 

Deleted Fibionacci.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

/*
Even Fibonacci numbers under 4 million
*/

"std_lib.pisc" import

: triplicate ( a -- a a a ) dup dup ;
: max_fib ( --  const ) 4000000 ;

/* TODO: This isn't working?
: nth_fib ( a -- b ) 
	:n

	$n 0 = [ 0 ] when
	$n 1 = [ 1 ] when
	$n 1 > [ 
		$n [ 1 - nth_fib ] [ 2 - nth_fib ] bi +
	] when
;
*/

: loop_fib ( n -- fib sum )
	:n 
	0 triplicate :sum :fib :a 
	1 :b
	$n [ 
		$a $b + :fib
		$b :a
		$fib :b
		$fib even? [ $fib $sum + :sum ] when
	] times
	$fib
	$sum
;

: nth_fib ( n -- b ) 
	:n
	0 1 $n nth_fib_do
;

/* This is the tail-recursive version of fibionacci */
: nth_fib_do ( a b n -- q ) 
	:n :b :a
	$n 0 > 
		[ $b  $a $b +  $n 1 - nth_fib_do ] 
		[ $a ]
	if
;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<


































































































Deleted FizzBuzz.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* 
 Implementing fizzbuzz in PISC
*/


/* Old version, very verbose
: divisible? ( a b -- bool ) mod zero? ;
: out-f ( a -- f ) print f ;
get-locals
0 :num

100 [
	t :unprinted
	$num inc :num 
	$num 15 divisible? [ "FizzBuzz" out-f :unprinted ] when
	$num 5 divisible? $unprinted and [ "Buzz" out-f :unprinted ] when
	$num 3 divisible? $unprinted and [ "Fizz" out-f :unprinted ] when 
	$unprinted [ $num print ] when 
 ] times
drop-locals
*/

"std_lib.pisc" import

: inc ( a -- a` ) 1 + ;

get-locals
0 !num /* Store 0 into num variable */
100 [
	$num inc dup :num
			[ 3 divisor? [ "Buzz" ] [ "" ] if ] 
			[ 5 divisor? [ "Fizz" ] [ "" ] if ] bi 
		concat dup len 0 = [ drop $num ] when print
] times
drop-locals
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<






































































Changes to ImageSchema.sql.

1

2

3
4
5
6
7
8
9
..
24
25
26
27
28
29
30
31
32
33
-- This is the schemda for a PISC image




Create Table vocabulary (
	vocab_id INTEGER PRIMARY KEY,
	vocab_name text NOT NULL,
	-- TODO: figure out dependency tracking
);

................................................................................
	word_documentation TEXT NULL,
	FOREIGN KEY(word_id) REFERENCES vocabulary(word_id)
);

Create Table kv_store (
);

-------------------------------------------------
Search: /\*([^*]+)\*/ : ([\w-]+) (\( [^)]+\)) [^;]+;
Replace: :DOC \2 \3 \1 ;
|
>

>







 







<
<
<
1
2
3
4
5
6
7
8
9
10
11
..
26
27
28
29
30
31
32



-- TODO: I don't think I'm going to use this, at least for the known future
-- TODO: BoltDB seems like a better fit for now.

-- This was the schemda for a PISC image 

Create Table vocabulary (
	vocab_id INTEGER PRIMARY KEY,
	vocab_name text NOT NULL,
	-- TODO: figure out dependency tracking
);

................................................................................
	word_documentation TEXT NULL,
	FOREIGN KEY(word_id) REFERENCES vocabulary(word_id)
);

Create Table kv_store (
);




Changes to README.md.

1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
16
17

18
19

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

45
46
# PISC
Position Independent Source Code. A small, stack-based, concatenative language.

## About 

This is currently a small side project to see how far a small stack-based scripting language can go in spare time. Inspired by Factor (80%), Forth (5%) and Python (5%) and Tcl (5%) (not 100% inspired yet.)
Plans are currently for an interperated language that uses a "arrays and hashtables" approach to data stucturing.

## TODO:

If you can understand what is going on, please submit a pull request to add something that I'm missing. I'm not trying to compete with [factor](http://factorcode.org) or [forth](http://www.forth.com/forth/) for performance/features, but I trying out their style of programming to see how it goes. Ports of this interpretor to the language of your choice are welcome as well. 

With that in mind, things that I will be adding (or accepting PRs for) as [time](http://www.catb.org/jargon/html/C/copious-free-time.html) allows:


  - More tests for different combinators (if, loop, while)
  - A standard library build from a minimal core (this is a lot of the things below)
  - Stack shuffling combinators (see the ones in factor):

  -- drop ( x -- )
  -- 2drop ( x y -- )

  -- 3drop ( x y z -- )
  -- nip ( x y -- y )
  -- 2nip ( x y z -- z )
  -- dup  ( x -- x x )
  -- 2dup ( x y -- x y x y )
  -- 3dup ( x y z -- x y z )
  -- 2over ( x y z -- x y z x y )
  -- pick ( x y z -- x y z x )
  -- swap ( x y -- y x )
  - Add a way for modules to be added without a lot of major modifications in the core loop of the interp.
  - Math words. A lot is needed here, and in double/int versions ( >, <, =, -, +, div, mod ) 
  - String manipulation words (concat, >upper, >lower, int>string, double>string, etc)
  - Array and map manipulating words (ways to define them, literals, member access, so on.)
  - A basic compliation step for reducing cache misses in the core loop (transforming words into constant lookup codes, so that word lookup isn't proportional to the number of words in the core loop)
  - STDIN/STDOUT words.
  - Regex facilties. 
  - File i/o words
  - A plan for multiprocessing. (I want to pull from TCL on this one if I can)
  - Combinators for quotations, like bi and tri. 
  - A plan for a module system.
  - Syscalls
  - shellout words. 
  - struct words (when this thing allows for partial compilation or some such thing.)
  - Bindings to awesome libraries (SDL, Tk, ImageMagick)



.pisc is the file extension for these files. 





|
|

|

|

|
>

<
|
<
>
|
<
>
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<

>

<
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

16

17
18

19
20























21
22
23

# PISC
Position Independent Source Code. A small, stack-based, concatenative language.

## About 

PISC's source and documentation are hosted at [https://pisc.junglecoder.com/ ](https://pisc.junglecoder.com).
A quick starter can be found at [PISC in Y Minutes](https://pisc.junglecoder.com/home/apps/fossil/PISC.fossil/wiki?name=PISC+in+Y+Minutes)

## Building 

PISC requires go 1.9+ to build. Installation instructions [here](https://golang.org/doc/install)

Once go is installed, you'll (currently) need to run `git clone https://github.com/yumaikas/PISC-mirror "$GOPATH/src/pisc"`
Running `cd $GOPATH/src/pisc && go get -u && go build -o pisc` will fetch depenencies and get you a PISC executable. You can launch a REPL with `pisc -i` and play with it there.


## Playground


PISC has a playground at https://pisc.junglecoder.com/playground/


## Flags
























Running `pisc help` will dump out current information about avaiable flags


Deleted SumsOf3And5.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
Sums below 1000 of 3 and 5
*/

"std_lib.pisc" import

: inc ( a -- b ) 1 + ;

get-locals
0 :n
 /* Maybe we can keep this on the stack? */
0 1000 [ /* Sum and loop count */
	dup inc :n
	[ 5 divisor? ] [ 3 divisor? ] bi or [ $n + ] when
] times
print
drop-locals
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<


































Deleted bathroom_stall.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* 
Solving this code golf problem http://codegolf.stackexchange.com/questions/89241/be-respectful-in-the-restroom
*/


: respect ( stalls -- respectfulPostion ) 

	<vector> :distances
	<vector> :full
	<vector> :empty
	0 :i 
	>string 
	[ 
		dup "1" str-eq [ [ $i vec-append ] $:full ] when 
		"0" str-eq [ [ $i vec-append ] $:empty ] when
		[ 1 + ] $:i
	] each-char 
	0 :i
	$empty [ :eElem 
		0 dup :dist :i 
		$full [ :fElem
		  [ $fElem $eElem - abs + ] $:dist
		  [ 1 + ] $:i
		] vec-each
	    $dist $i 0.0 + / $eElem 2vector [ swap vec-append ] $:distances
	] vec-each
	0 :maxDist
	0 :maxPos

	$distances dup print [ /* Pop the elements into vars */
		dup []0 :dist []1 :pos
		$maxDist $dist < [ $pos :maxPos $dist :maxDist ] when 
	] vec-each
	$maxPos
	;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<






































































Added bindata.go.

















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
// Code generated by go-bindata.
// sources:
// stdlib/bools.pisc
// stdlib/debug.pisc
// stdlib/dicts.pisc
// stdlib/io.pisc
// stdlib/locals.pisc
// stdlib/loops.pisc
// stdlib/math.pisc
// stdlib/random.pisc
// stdlib/shell.pisc
// stdlib/std_lib.pisc
// stdlib/strings.pisc
// stdlib/symbols.pisc
// stdlib/vectors.pisc
// stdlib/with.pisc
// DO NOT EDIT!

package pisc

import (
	"bytes"
	"compress/gzip"
	"fmt"
	"io"
	"io/ioutil"
	"os"
	"path/filepath"
	"strings"
	"time"
)

func bindataRead(data []byte, name string) ([]byte, error) {
	gz, err := gzip.NewReader(bytes.NewBuffer(data))
	if err != nil {
		return nil, fmt.Errorf("Read %q: %v", name, err)
	}

	var buf bytes.Buffer
	_, err = io.Copy(&buf, gz)
	clErr := gz.Close()

	if err != nil {
		return nil, fmt.Errorf("Read %q: %v", name, err)
	}
	if clErr != nil {
		return nil, err
	}

	return buf.Bytes(), nil
}

type asset struct {
	bytes []byte
	info  os.FileInfo
}

type bindataFileInfo struct {
	name    string
	size    int64
	mode    os.FileMode
	modTime time.Time
}

func (fi bindataFileInfo) Name() string {
	return fi.name
}
func (fi bindataFileInfo) Size() int64 {
	return fi.size
}
func (fi bindataFileInfo) Mode() os.FileMode {
	return fi.mode
}
func (fi bindataFileInfo) ModTime() time.Time {
	return fi.modTime
}
func (fi bindataFileInfo) IsDir() bool {
	return false
}
func (fi bindataFileInfo) Sys() interface{} {
	return nil
}

var _stdlibBoolsPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd2\xd7\xe2\x4a\xca\xcf\xcf\x29\xd6\x2b\xc8\x2c\x4e\xe6\xd2\xd2\xe7\xe2\x52\x56\xf0\x54\x48\x2f\x4d\x2d\x2e\x56\x28\xc9\xc8\x2c\x56\xc8\x2c\x56\x48\xcd\x2d\x28\xa9\x54\xc8\xcb\x2f\xb7\xe7\xe2\x02\x04\x00\x00\xff\xff\xcb\x3e\x17\xc6\x30\x00\x00\x00")

func stdlibBoolsPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibBoolsPisc,
		"stdlib/bools.pisc",
	)
}

func stdlibBoolsPisc() (*asset, error) {
	bytes, err := stdlibBoolsPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/bools.pisc", size: 48, mode: os.FileMode(436), modTime: time.Unix(1511943077, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibDebugPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\xcc\xb1\x0a\xc2\x30\x10\xc6\xf1\xbd\x4f\xf1\xd1\x49\x87\xbc\x40\x8b\x2e\xba\x3b\x38\x8a\x43\xb8\x9e\x26\x10\x72\xe1\x2e\x1a\x7d\x7b\x91\x2a\x74\xe8\xf6\xc1\x9f\xef\xd7\x0d\xc7\xd3\x01\x16\xa4\xb9\xa2\x7c\x8b\x2f\xd7\x44\x27\xc3\x06\xce\x61\x8b\x73\x90\x66\x68\x21\x52\xc0\xdc\x31\x77\xaf\x0c\x7a\xa8\x72\xae\xe9\x8d\x24\x7e\xe2\x09\x63\xb7\xe0\x92\x90\x4f\xab\xd0\xaf\x7c\x89\x98\xff\x0a\x8c\xa4\x30\xc6\x6e\x58\xbb\x5f\x00\x79\xb2\x62\x6f\x55\x63\xbe\xa3\xc7\x0e\x3d\xac\xf9\x02\xab\xea\x48\x32\xf9\xba\x9c\x39\x16\x14\x8d\xb9\xe2\x0a\xf6\x14\x66\x0f\x23\x3e\x01\x00\x00\xff\xff\xd4\x33\x23\xc6\xf1\x00\x00\x00")

func stdlibDebugPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibDebugPisc,
		"stdlib/debug.pisc",
	)
}

func stdlibDebugPisc() (*asset, error) {
	bytes, err := stdlibDebugPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/debug.pisc", size: 241, mode: os.FileMode(436), modTime: time.Unix(1500942096, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibDictsPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x94\xcd\x6e\xdb\x3a\x10\x85\xf7\x7a\x8a\x03\x43\x17\xb8\x16\x4a\x69\x2f\x1b\xf1\xa6\xed\xba\x68\x97\x86\x17\x8c\x34\xb2\x88\xc8\xa4\x4a\x8e\x1c\xf8\xed\x0b\x52\x3f\x96\x65\xa5\x69\x36\x49\x86\x67\x66\xbe\x39\x1c\x31\x4b\xf0\x55\x15\xac\x8c\x96\x56\x91\x83\xd4\x25\xb8\x26\x65\xd1\xb1\x6a\x14\xfb\x58\x92\x45\x51\x8e\x52\x15\x2c\x54\x25\xe8\xd2\xf2\x4d\x38\x96\xc5\x1b\xfe\x47\x9a\x42\x88\x70\x76\xc0\x16\x21\xda\x2b\x0e\x38\x62\xef\xe3\x2f\x38\xe1\xbd\x26\x8d\xdd\xac\x88\x36\x2c\xfc\xdf\x0f\x15\xb0\x45\xd9\xb5\xe0\x5b\x4b\xa6\xc2\x66\xe2\xba\x6d\xe0\xd8\x0a\x4d\xbf\xd7\x8b\x92\x76\x9d\xa5\x50\xaf\xd7\x3f\x55\x5d\x41\x7f\x22\xf1\x95\xce\xc4\xc2\x58\x51\x52\x25\xbb\xc6\xc3\x85\x93\x37\xba\x61\x0c\x09\x81\xab\x6c\x3a\xc2\x16\xf9\x18\xcb\xbd\x20\xf7\xd2\x08\xc3\x4f\x1c\x12\xe3\x90\xe9\x1b\xd5\xd2\x89\x37\x0a\xa6\x2c\x8f\xce\xc4\x38\xf9\xf0\x50\xed\x04\x55\x45\xbb\x28\xca\x12\x7c\x27\x2e\x6a\x54\xd6\x5c\x30\x1b\x2e\xc9\x22\xe4\x3f\x7e\x7e\x83\x78\x99\x13\xf6\x64\xe3\xb4\xbe\xea\x6e\xd2\xad\x09\x07\x6f\x8e\xc1\xf3\xbc\xc4\x09\xa5\x6a\xef\xc9\x71\x89\x1e\xe2\x17\xb1\xdf\x88\x90\x5a\x19\x0b\x89\xb3\xba\x92\xee\x89\xb4\xf1\x44\xc1\x91\x2f\x78\xed\x18\x0d\xc9\x2b\x05\xfd\x8c\xd8\xe8\x10\xe9\x8d\x9f\xf0\xf7\x7b\x31\x62\x79\x9e\x01\x6d\x7e\x65\x6d\xe7\xea\x69\x8a\x55\xf5\x20\x74\x61\xda\x69\xdc\x78\x31\xee\x36\x5c\x6c\x63\x8a\x61\xec\xa5\x3b\x4b\xfd\x83\x35\xbd\x2f\x2b\x05\xdc\xbb\x6c\xef\x5d\xf7\x22\xbe\xf3\x59\x2d\x2f\xb4\xda\xd9\xcd\x3a\xef\xff\x31\x67\xb0\x61\xc8\x8a\x3f\x30\x22\xec\xde\xc6\x9f\xd6\xd2\xe1\x95\xfc\x15\x51\x6b\xa9\x90\x4c\x65\x8a\xce\x11\xe2\xab\xb4\x1e\xd4\xff\x52\xda\x31\xc9\x72\x03\xb2\xd6\x58\x64\x49\x18\xf6\xde\x39\x4c\x37\x21\x27\xd9\x44\x1d\xff\xf5\xde\x46\x8a\xcf\x31\x3e\xe4\x38\x3e\x18\x3f\xac\xe5\x67\x6c\x7e\x53\xc3\xaa\x4a\x0d\xd2\x6c\x6f\x60\x03\xb6\x1d\x85\x9d\x25\x59\xd4\xe8\xb4\x2a\x4c\x49\x28\x6a\x69\x65\xc1\xe4\x7b\x83\x6b\xe5\xfc\xeb\xa2\xf4\x79\xf6\x61\xfd\x37\x0c\x78\x78\xda\x88\xe7\xb7\xa6\x07\x3c\xf6\x0f\xc0\xf4\x5f\xff\x95\x07\x50\x5e\xf0\x9e\x02\x8e\xf0\x18\x83\x6c\xb6\xba\x87\xb5\x55\x3c\x8c\x7b\x3e\x3d\x23\x53\x46\xba\xd0\xa7\xe9\xfc\x05\x28\x64\xd3\x60\x17\xfd\x09\x00\x00\xff\xff\x7e\x91\x17\xc6\xe5\x05\x00\x00")

func stdlibDictsPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibDictsPisc,
		"stdlib/dicts.pisc",
	)
}

func stdlibDictsPisc() (*asset, error) {
	bytes, err := stdlibDictsPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/dicts.pisc", size: 1509, mode: os.FileMode(436), modTime: time.Unix(1512944015, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibIoPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x54\x41\x6f\xf3\x36\x0c\x3d\xd7\xbf\xe2\x01\x19\x90\xe6\x43\x9c\xef\x3a\xb4\xc0\x86\x21\x6d\x80\x5e\x96\x61\xeb\xb0\x4b\x81\x55\xb6\xe9\x58\x83\x22\x79\x12\xd5\xc0\xff\x7e\x20\x6d\x27\x59\xbb\x0e\xdf\x4d\x96\xc8\xf7\x1e\xc9\x47\x7f\xfd\x82\xe7\x8e\xf0\xb4\x87\xb3\x55\x34\xd1\x52\x42\x68\xf1\xcb\xd3\x6f\x5b\x7c\xf9\x5a\x14\xfa\x6e\x13\x9a\x50\xc3\x26\xbf\x64\xb4\x21\xc2\x20\xf5\x54\xdb\xd6\xd6\x38\x85\xd8\x48\xe4\xdd\xc3\x7e\x2b\x30\xb7\x28\x4b\xac\x50\x2c\xf0\x2b\x99\x86\x62\x2a\x8a\x6d\x8e\x91\x3c\xbb\x61\x3d\xe2\x76\x26\x21\x92\x69\xac\x3f\xc0\xf8\x06\xa7\x68\x59\xce\xa1\xfa\x8b\x6a\x4e\xe0\xce\x30\x4c\x24\x54\x21\xfb\x06\x1c\x90\x7d\x43\xd1\x0d\x12\x74\x08\xa8\x4c\xa2\x06\x55\x6e\x6d\x98\x73\x36\x78\x34\x75\xa7\xa8\x14\x95\x80\x3b\x42\x1b\x9c\x0b\x27\xc9\x6a\xb3\xaf\xd9\x06\x9f\xe0\x82\x69\xa8\x81\xf5\x1c\x60\x39\xa1\xb1\xfa\x60\xe2\x00\xf2\x2c\xf5\xdf\x15\xc5\x62\xa1\x50\x65\x35\x30\x8d\x15\xe9\x69\x55\x48\x4d\x09\x66\xfc\x6c\x63\x38\x2a\xcf\x44\x6b\x12\x8c\x17\xe4\x35\x12\xb1\x96\x74\x79\x4d\x78\xdc\xef\xa4\x16\x8e\x99\x60\x5b\x7d\x22\xdf\x48\xb7\x55\xab\x75\x04\xab\x8d\xa9\x3b\x6a\x2e\x1a\x62\xf6\x93\x06\x3d\x5d\x34\xfc\xfe\xbc\x2b\xbf\x1f\x2f\xdf\x29\xb9\x24\x3b\x3b\x27\x27\x8e\x57\xb9\x7a\xff\x2e\x6b\x0d\x8e\xf6\x78\x14\xd9\xcb\x97\xb8\xd4\xd1\x2c\x5f\xfc\x12\xa1\x3d\xab\x55\x64\x29\x44\x31\x1f\xf7\xbb\x1f\x15\x94\x73\xf4\xe9\x7f\x2b\x93\x91\x54\x44\x7e\xae\x6f\x8d\xd6\xb8\x44\x08\xdc\x51\x3c\xd9\x44\x45\x71\x5f\x8c\x26\x0a\x3d\xf9\x52\x92\xca\xa9\xaf\xb7\xe8\x0d\x77\x42\x38\x5a\x0a\x2b\xec\x04\x73\x6e\x6c\x67\xde\x08\x06\xaf\xb5\x0b\x89\x5e\x75\x8c\xc3\x68\xa2\xda\x78\x54\x84\xda\x38\x47\x6a\x24\x0d\x51\x55\x57\x96\x9a\x04\xfa\xc6\x11\x3e\x8a\x10\x77\xfe\x4b\xc4\x74\xb1\xc2\x1f\x7a\x48\x6a\xd5\x64\x8f\xbd\xa3\x28\xb4\x7e\x16\xb6\xc6\xe8\xc3\x41\x75\x04\xef\x86\x31\x57\xbb\x9f\x10\xa2\x0c\xc5\xfa\x43\xc2\x7d\x71\x33\xd2\xea\x7b\x39\x5e\xe3\x56\x87\xa6\xeb\xa4\x54\xfa\x29\x0e\xea\x08\x86\x59\xfb\x38\xab\x99\x75\x8f\x00\xd3\xd8\xbf\x39\x7d\x0d\xd3\xf7\xe4\x75\x23\x5f\xfc\x1c\x24\x33\x9c\x71\xa5\x15\xd2\x80\x1f\xce\xda\xe4\xe6\x67\x73\xa4\xc9\x5c\xdb\xe0\x99\x3c\x27\xac\x80\x9f\x90\xd9\x3a\xcb\xc3\x79\xef\xf4\xaf\x31\xef\x7c\x3a\x1a\xe7\x34\x3f\x8d\x7b\x38\xb5\x61\x83\x87\x00\x1f\x18\x59\x8c\xe1\xe1\x4c\x3c\xd0\x14\x77\x16\xd2\x47\xfb\xf6\x67\x9f\x39\x5d\xd7\x77\x75\x6b\xd3\xfb\xf1\xea\x1f\x2a\xcb\x2f\x43\x44\xf4\xd1\x7a\x5d\xcd\x37\xe3\xf2\x0c\x8c\x93\xe5\xae\x0c\x99\xfb\xcc\xf3\xa4\xff\xce\x81\x05\x7d\xb3\xc1\xaa\xb8\xb9\x93\xcf\xe2\xe6\x83\x2d\x9a\xdc\xe3\x3b\x0d\x15\x08\x6c\xd4\x60\x62\xe5\x05\x9e\xf7\x0f\xfb\x62\x81\x09\x7c\x6c\xb0\x70\xe0\x4c\x68\xfd\x27\x7c\xf8\x0f\xc2\x69\x19\x3e\x21\xfc\x27\x00\x00\xff\xff\xb2\x42\xc8\x50\xc8\x05\x00\x00")

func stdlibIoPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibIoPisc,
		"stdlib/io.pisc",
	)
}

func stdlibIoPisc() (*asset, error) {
	bytes, err := stdlibIoPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/io.pisc", size: 1480, mode: os.FileMode(436), modTime: time.Unix(1491353691, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibLocalsPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x92\x4f\x8b\xdb\x30\x10\xc5\xef\xfe\x14\x0f\xb2\x87\x75\x16\x27\x77\x07\x0a\x25\x0d\x65\xa1\xb4\x61\x73\x0c\xa1\x0c\xf2\x38\x11\x49\x24\x57\x1a\x67\xfb\xf1\x8b\xfe\x38\xeb\xac\x7b\xd0\x41\xcc\x9b\xdf\xbc\xf9\xb3\x9c\xe3\x87\x55\x74\xf1\xd0\x06\xdb\xd7\xdd\x1a\xf3\x65\x51\xd4\xdf\x7e\xad\xe1\x59\xaa\x4b\x88\xe1\x19\x37\xba\xc0\xd0\x95\x51\x55\x28\xb1\x63\x49\x3f\xb1\x31\x82\x55\x4e\x39\x8e\x52\x06\x79\x10\x94\xf8\xce\x02\x39\x71\xf8\xf5\x0c\xf2\xde\x2a\x4d\xc2\x0d\xde\xb5\x9c\x40\x48\x59\x29\x3a\xc5\x79\x3c\xa7\xca\xdb\xde\x07\xb5\x17\x52\x67\xb4\x2e\x94\x68\xad\x43\x16\x59\x23\x36\x56\xc9\xff\x24\x1b\x68\x8d\xb3\xdd\x67\x9c\xed\x40\x99\x63\xdb\x3b\xa6\x6d\xa7\x94\x3b\x86\x49\x9d\xee\x4d\xfe\xe9\xad\x60\x8f\x33\x6e\xa8\xb0\x58\xe0\x10\xb8\x29\x6f\xb1\x40\x09\xbc\xf5\x06\x14\x65\x24\xda\x9a\xe8\x36\x10\x72\xc3\xda\xc4\x4a\xaa\x77\x8e\x8d\x3c\xf4\xb5\xdb\x6c\xea\x98\xf8\xa5\xd1\x4a\x62\xfd\xe5\x1c\x6b\xdb\x69\x6e\xd0\x3a\x7b\x45\x4b\x4a\xac\x0b\x0b\xab\xa1\x4e\x64\x8e\x3c\x38\xba\x91\xfb\x99\xc7\x1f\x6d\xf8\x77\xea\xb0\xc7\x7e\xb4\xa0\x03\xce\xcc\x1d\x0e\x68\x74\x17\xdf\xc7\xba\x57\x28\x8a\x19\xbe\x8a\xf0\xb5\x13\x6d\x8e\x61\xcd\x99\x9f\x17\x55\xd4\xdb\xb7\x0d\x9e\xea\xff\xd4\x2b\x07\x69\xf2\x1b\x8f\x0b\x5b\xc7\xad\xfe\xcb\x3e\x78\x9d\xe1\xd5\x28\xc7\xd7\xd0\x2f\x99\x06\x0d\xe7\x5f\x81\x48\xad\xaa\xd1\xf1\x94\x31\x9c\x7c\x55\x37\x72\x58\x65\xd5\xcb\xcb\x83\x4a\x9b\x4f\xaa\x62\x16\x4f\x2e\x14\xf0\x2c\xd9\x75\x4a\x7d\x9a\x1c\xe7\xc7\x54\x06\x7c\x3d\xb9\xf9\xd1\x78\x8a\x2c\xfa\x1d\x54\x71\x39\x8f\xb8\xa6\xef\x46\xc8\x38\xfb\xa0\xaa\x82\x91\xd5\xbf\x00\x00\x00\xff\xff\xaa\x09\x9f\x67\x71\x03\x00\x00")

func stdlibLocalsPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibLocalsPisc,
		"stdlib/locals.pisc",
	)
}

func stdlibLocalsPisc() (*asset, error) {
	bytes, err := stdlibLocalsPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/locals.pisc", size: 881, mode: os.FileMode(436), modTime: time.Unix(1504845781, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibLoopsPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\xcb\x31\x0a\x02\x31\x10\x46\xe1\x7e\x4e\xf1\x97\xeb\xc2\x66\x7b\x53\xaa\x9d\xe0\x15\x46\xe2\x80\x81\x98\x44\x67\xa2\x1e\x5f\x42\xac\xb7\x7d\x7c\x6f\x9d\xe9\x5c\x4a\x55\x57\xa3\x06\x9a\x57\xa2\xfd\xf1\x72\x80\xc5\x87\x28\x26\x64\x3c\x5b\x31\x2c\x0b\x9c\xc3\x0e\xa7\xaf\x84\x66\x02\xee\x95\x91\xff\xce\x8f\xe9\x73\x8f\x49\x30\xa1\xbe\xe4\xb6\xf9\x0d\xc8\xdd\x31\x92\x5c\xdf\xa2\x60\x63\xf8\x5f\x00\x00\x00\xff\xff\x8a\xf6\x37\x23\x8e\x00\x00\x00")

func stdlibLoopsPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibLoopsPisc,
		"stdlib/loops.pisc",
	)
}

func stdlibLoopsPisc() (*asset, error) {
	bytes, err := stdlibLoopsPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/loops.pisc", size: 142, mode: os.FileMode(436), modTime: time.Unix(1491353691, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibMathPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x95\x4f\x6f\xe3\x36\x10\xc5\xef\xfa\x14\xef\xb8\x71\x23\x24\xca\xd1\x71\x1c\x74\xbd\xdd\xb6\xc0\xa2\x3e\x24\xb7\x20\x80\x29\x69\x24\x33\x95\x48\xed\x90\x8a\xed\x7e\xfa\x82\xb4\x6c\x51\xf2\x1f\xec\xcd\x30\x7f\xef\x0d\xf9\x38\x43\x4d\xbf\x2d\x17\x98\xe7\xba\x4d\x2b\xc2\x17\x6c\x11\xc7\xc8\x71\x83\x85\x26\xce\x08\x02\xaa\xad\x53\x62\x58\x0d\x81\x0e\x7b\x8c\xbc\x4a\x64\xda\x1c\x24\x3b\xdc\xe0\x77\xce\x90\x69\x23\x15\xe1\x11\x3d\xb2\x0e\x99\xbf\x76\x0d\x71\xaa\x2b\x99\x41\x9c\xc1\x8d\x54\x63\xc7\x13\xe0\x9a\xdf\x10\xb6\xe2\xc4\xcd\x0a\x55\x92\xb2\x03\xe6\x9a\xa1\xe7\x7b\x3c\x4b\xd9\x86\xf4\xa2\x4d\x09\xac\x75\x40\x90\xac\x06\x04\xc9\x4a\xaa\x12\xba\xe8\xf3\x6b\x98\x32\x69\xa4\x56\x87\x70\x8f\xe2\x61\xa0\x8b\x61\x3a\x57\xb2\x1c\xe5\x48\x5c\x84\xe0\x1f\xcc\x9a\x51\xb4\x2a\xb3\xae\x68\x40\x65\xc3\x72\x75\x53\x51\x4d\xca\x0a\xde\x81\x2e\x88\xb6\xcd\xc0\x7a\xdb\x68\x45\xca\x4a\x31\xa6\x1e\x42\xec\x75\xa3\x61\xd7\x84\x46\x6f\x88\x5d\x16\xab\xed\x2a\x84\xeb\x24\xa4\x57\xae\x48\x82\x78\x75\x8b\x5a\xf3\x21\x2f\x42\xa1\x19\xa6\x16\x55\xd5\xe5\x66\x70\xf4\x28\x2a\xad\x39\xf4\xf8\xee\xff\xf8\xa5\xd4\x4b\x51\xd7\x22\xd4\xfe\xe9\xff\x38\x1e\xfd\x75\xf9\x6d\x79\x84\x3f\xee\x43\xf2\xe3\x1e\x5f\xc9\x18\xaa\x4e\x83\xfa\x18\x1c\xe9\xbb\x64\x63\xf1\xaf\x54\xf9\x45\x41\xa5\xcb\x50\xf1\x8f\xb0\x2d\x8b\x0a\x3f\x74\x29\x58\xda\x75\x8d\x47\xf4\x64\x32\xd8\xc6\x0f\x5d\x22\x15\x86\x90\xdc\x87\x76\xc9\xe0\xaa\x56\x5b\x24\xf8\xcd\x97\x59\xdd\x22\x6d\xed\x3e\x5c\x91\x65\x2d\x0b\x4b\xd8\x48\xbb\xee\xe2\xfd\x14\x55\x4b\x26\xb4\x7a\x38\x5b\xee\x21\x44\xd2\x10\xf9\x2a\x95\x6f\xa2\xae\x3d\xdc\x45\x6c\x8f\xf0\x68\xca\x5f\x5c\xeb\x9e\xc4\x71\x65\xd2\xcd\x79\xc1\xcf\xe1\x6c\xbe\xfc\x6c\x05\x77\xd3\x79\x02\x8f\x9e\x86\xd7\xee\x59\x38\xc7\x5d\xda\x85\xbd\xa8\xe1\x56\x0d\x06\xeb\x6f\x65\xa9\x24\xde\xc7\xea\xa3\xb8\x85\x30\xc1\x7b\xda\x09\x77\x83\x4b\x5d\x72\x4e\x1c\xff\x47\xac\x4f\x5a\x46\x17\x7e\x9a\x0c\x65\x5a\xe5\xfb\xae\x3a\x7a\x24\xa7\x1e\x5a\xd1\x2f\x5a\xdc\x4d\x22\xd7\xed\x53\xb8\x2e\x70\xeb\x76\xa3\x21\xb8\x44\x2d\xec\xfa\x28\x36\xd1\xe4\x2e\x9a\xa2\xf6\xd7\x28\x90\xba\x6a\xbe\x71\x88\x71\x83\x87\xbc\x6d\x30\xc7\x1b\x94\x6c\xf0\x8e\x37\xe4\xac\xdd\x0f\x59\xb8\x0f\x07\x6a\xb1\xed\x55\x95\xe0\xd2\x8b\xd0\xcb\x3a\xfc\xa0\xf7\xb2\xe8\x6e\x82\x17\x5d\x93\x6b\x3b\x99\xed\x77\xe3\xf7\x40\x9f\xa4\x9e\xf1\x05\xca\xb9\x3d\xbb\xea\xa8\x75\x0e\x97\xda\xb3\x2f\x97\xcb\x4f\x69\x34\xef\x99\xfa\x40\x85\x4c\x34\xc5\x53\xbf\x23\xb7\x1a\xf7\x6b\x77\x13\xcc\x20\x0d\x44\xc5\x24\xf2\x1d\x72\x2a\xa4\xa2\x7c\x5f\x7c\x3e\xd2\xcd\xa0\xdc\x97\x20\x9a\x62\x36\x5a\xf1\x87\x9b\xe1\x0d\x4f\x78\x47\x2e\x1b\x68\xf6\xdc\x7c\x64\xf0\xd4\x39\x44\x53\x88\xd4\xf8\xc5\x38\x86\xc0\x0d\x9c\xc1\xbd\xb7\x88\x13\x4c\xf0\x8e\xcd\x9a\x5c\xcb\xfd\x1f\x00\x00\xff\xff\x5a\xd8\x7d\x5b\xc0\x07\x00\x00")

func stdlibMathPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibMathPisc,
		"stdlib/math.pisc",
	)
}

func stdlibMathPisc() (*asset, error) {
	bytes, err := stdlibMathPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/math.pisc", size: 1984, mode: os.FileMode(436), modTime: time.Unix(1500942096, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibRandomPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x14\xca\xc1\x09\x80\x30\x0c\x40\xd1\x55\xfe\x51\x0f\x59\x40\xa7\x09\x49\xc0\x42\x9b\x16\xad\xba\xbe\x78\x7f\x1b\x76\xf4\x62\xc1\xc2\x13\x86\x08\x51\xa3\xb1\xe2\xf7\xa0\x46\x72\x6a\xba\x94\x9c\x5c\xaf\x0e\x5a\xf7\xdf\x89\x4e\xf6\x2f\x00\x00\xff\xff\x3c\x4d\xec\x7d\x3b\x00\x00\x00")

func stdlibRandomPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibRandomPisc,
		"stdlib/random.pisc",
	)
}

func stdlibRandomPisc() (*asset, error) {
	bytes, err := stdlibRandomPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/random.pisc", size: 59, mode: os.FileMode(436), modTime: time.Unix(1491353691, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibShellPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x54\xcb\x6e\xdb\x3a\x10\x5d\x8b\x5f\x71\xc0\x78\xe1\x2c\x68\x38\x5b\x45\xd7\xc0\x7d\x24\xb7\xd9\xa4\x05\xd2\x9d\x23\x14\x8c\x38\x8e\x88\xd0\x24\x2b\x52\x36\xfa\xf7\xc5\x50\x7e\xb6\x5d\xd8\x20\xcf\xbc\xcf\x19\x4a\xd4\x70\x09\x73\x28\x85\x5b\x38\x9b\xb2\xda\x58\x47\x09\x6b\xc4\xc1\xfa\x8c\x16\x3b\xea\x14\xe9\xae\xc7\xbd\x10\x35\xac\x57\xc6\x0e\x98\x83\xff\xbf\x8f\x21\x73\xe4\x62\x81\x5b\x88\x2a\xee\x0d\xea\x38\xd0\x4e\x54\x6b\x74\x06\x2d\x8c\x8d\xe8\xb4\x73\xa2\x9a\x31\x8e\xce\x88\x92\x25\xf5\xe4\x9c\xda\x06\x33\x3a\xc2\xfc\x94\xe7\x56\x54\xcd\x8e\xba\x1c\x86\x15\xea\xa8\x73\xdf\xdb\x94\x39\xd9\xec\x78\x01\xd7\xe0\x8e\x74\x8c\xe4\xcd\xd9\x0b\x2d\xea\x38\xa6\xde\x5c\xbb\xb3\x6b\x0c\xf1\x4d\x77\x1f\x48\x7b\x1d\x7f\x09\x08\xd1\x08\x51\x35\xc6\x76\x79\x05\x33\x46\xd4\xa9\x07\x67\xb8\x60\xa2\x45\xd3\x28\x97\x18\x15\x55\x75\x45\x91\xa8\xaa\x8a\xa3\xd4\x6a\x1b\x0c\x41\x1a\x89\x94\x07\xd5\x05\x9f\xb5\xf5\x97\x24\xae\x61\x86\x10\xd1\xc2\x6e\x38\xea\x82\x55\x51\x1d\x0a\x98\x52\xb8\xcc\x00\xb9\x58\xc8\x89\xc1\xa6\x51\x63\x3c\x1b\x8e\x58\x57\xe6\xe4\xfe\x4f\x10\xcf\xc8\xe0\x3b\x65\xc5\x5d\xe8\xac\x78\xd6\x83\xbf\x2e\x3c\xca\x57\x7f\x6c\x71\x2c\x7d\x35\x8d\xda\x77\xae\x98\xbe\xfc\xfd\xf5\x93\x04\xf9\x9d\x7a\xa7\x83\x89\x21\xb6\x5d\x81\xe4\x8b\xbe\x6b\xa8\xd9\x9f\xa7\x6e\x27\x3f\x9b\x78\x53\x4a\xea\x17\x96\x1b\xcb\xc5\x9d\x9c\x4c\xdb\x60\xbc\xde\xd2\xb4\x0b\x7a\xff\xa1\xac\xb7\x19\x73\x84\x98\x6d\xf0\xe9\xb8\x52\xa2\xba\xc1\xbf\x03\xe9\x6c\xfd\x3b\x72\x4f\x48\x59\x67\xc2\x9b\x4e\xb6\x4b\xd8\x84\x01\xda\x97\xf0\x94\x7f\x38\xe2\x4a\x2d\xea\x7f\x1e\xfe\x7f\x7a\x3e\x9c\x1f\x9e\xff\x13\x95\x7c\xcd\x12\xf5\xd3\xe3\x0b\xf8\xec\x25\xea\xcf\x8f\x2f\xa2\x92\x12\xf5\x52\x54\x19\xb5\x27\x32\x49\xa5\xe8\x6c\xbe\xdc\x3f\x67\xfd\x31\xe7\x40\x89\xb2\xda\x84\x41\x1d\xc1\xda\x5a\xcc\xf8\xc7\x00\x1c\x79\xac\xfe\xc2\x1a\x52\x16\xad\x27\x94\xed\x65\x55\xf3\xa4\x7b\x3b\xe5\x54\x93\x14\xb3\x8b\xb2\x1c\xb2\xc4\x8c\x7b\x64\x26\x27\xac\x38\xa3\xc5\xbe\x27\xcf\xb1\xe4\xd3\x38\xd0\xb1\x4f\x16\xe5\x7c\x3f\x54\x5c\x9e\xeb\xd5\x77\xbf\xf9\x30\x7a\xda\xf6\x32\x44\xe1\x6a\x92\xe4\x44\x1b\x93\x36\x41\xcc\x1e\x3f\xfa\x1b\x8c\x89\x90\x7b\x9b\x90\x03\x12\xe5\x49\x8b\xa2\xa9\x4e\xe5\xb2\xb7\xb9\x4f\x5d\x88\x24\x6a\x76\x56\x93\xf1\xf0\x55\xb9\x7a\xec\xf2\x1b\xfb\x4a\x4e\xa3\x5c\xe8\xb4\xc3\xfd\xcf\x00\x00\x00\xff\xff\x46\xbd\x3e\x73\x83\x04\x00\x00")

func stdlibShellPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibShellPisc,
		"stdlib/shell.pisc",
	)
}

func stdlibShellPisc() (*asset, error) {
	bytes, err := stdlibShellPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/shell.pisc", size: 1155, mode: os.FileMode(436), modTime: time.Unix(1504845781, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibStd_libPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x54\xc1\x6e\xe3\x36\x10\xbd\xfb\x2b\x1e\xb6\x87\x46\x41\x6c\x77\xb3\x37\x1b\xa8\x51\x6c\x2e\x0b\xb4\x48\x8b\x04\xe8\xc1\x35\x1a\x5a\x1e\x45\x84\x69\x52\x25\x47\x56\xfc\xf7\xc5\x0c\x25\x59\x8b\xe4\xb0\x87\xdd\xc8\xe4\xbc\xf7\xe6\x0d\x67\x66\x79\x8b\xdf\x50\x51\x87\x32\x44\x42\x17\xe2\x21\xa1\x0a\x11\x7f\x7e\x7b\xfa\x0a\x7a\xa3\xb2\x65\x1b\xfc\x02\xb7\xcb\xd9\x6c\x85\x26\x5a\xcf\xce\xe3\x06\x06\xf3\x39\x50\xe0\xd7\xc4\xd1\xfa\x57\xb9\x39\xff\xdb\xb4\x9c\xf0\xe9\x1f\xff\x69\xf2\x73\x3d\xe2\x06\xd4\x47\xa0\xf5\x6c\x36\x5b\xde\xe2\xb9\x26\x54\xc1\xb9\xd0\xc9\x75\x69\x9c\x4b\x30\x91\xc0\x35\xa1\x6c\x63\x24\xcf\x48\x6c\xca\xe3\x3c\xd5\x6d\x55\xb9\x9e\xe4\x64\xd9\x9e\x29\x69\x92\xb3\xd5\xc3\xe3\x57\x38\x92\x24\x1d\x79\xb3\x77\x24\xa2\x8e\xfc\x2b\xd7\x28\x80\xdf\xc9\xc3\x26\xa5\x7c\x0d\x38\x50\x65\x3d\x1d\xd4\x39\xb8\x36\x2c\x27\x14\xd3\x00\x28\x6b\x2a\x8f\x22\xc3\x61\x80\xf0\xa5\x21\xa4\x4b\x62\x3a\x41\x13\x57\x45\x7b\x6a\x42\x14\x8f\x95\x75\xd4\x18\xae\x45\x75\xb1\x40\x81\x97\x7c\xf5\x32\x3a\x60\x73\xa4\x04\xa3\x91\x90\xd0\x3b\x18\x7f\x80\x61\xa6\x53\xc3\x49\xa4\x72\xe5\xb3\x71\x0d\x33\x9c\xb3\x8b\xe4\x8c\x98\xbd\x82\x17\x9a\xc3\x4f\x78\x7e\x7c\x78\x5c\xe1\x8f\x70\xce\xa8\xc4\x86\x4f\xe4\x85\x4e\x70\x7d\x7a\x5c\x53\xa2\xde\x8b\x8d\x88\x94\x1a\x2a\x95\xef\x14\x0e\xad\xa3\xa4\xcf\xf0\x24\x25\x46\x2e\xb1\xd4\xe2\x76\x99\x3d\x1e\xda\x66\x78\x44\x03\x83\x02\x0f\x6d\xe3\x6c\x69\x98\x72\x3d\x39\x34\x08\xd5\x20\x5f\x1e\xb1\x9e\xad\xde\x83\x7e\x41\x63\xcb\xe3\x5c\xce\xd7\x7d\xf1\xee\x7f\x84\x99\xbb\x00\x72\x94\x4d\xbd\x93\x19\x29\xf6\x99\x64\xaf\xff\x0a\xdc\x63\x8b\xcf\x57\xc5\x1d\xd8\x9e\x28\x8d\xca\xa9\x33\x13\xd8\x5e\xb5\x9f\x3a\xd3\xfc\xa8\xec\x47\xf8\x41\x2e\x86\xec\x10\xfa\x35\x76\xff\xe0\x9f\x9c\x32\x78\xfb\x1d\xc1\x15\xde\xdf\xdf\x8f\xe8\x7d\xc6\x8b\x23\x3d\xbb\x7a\x59\xe1\xcb\x24\xaa\xcc\x71\x5f\x3e\x8a\x0b\x67\x8a\xb8\xc1\x1b\x2e\x12\x24\x7f\xde\x26\x92\x93\x27\x39\xf4\x69\xfd\xd7\x06\xce\x15\x2d\xf0\xdc\x37\xae\x9c\x19\xd9\x0b\xb9\x6f\x71\x36\xae\xa5\xdc\xc4\x3a\xcd\x52\x22\x3d\xc3\x5e\xea\x14\xfc\xa4\x68\xa6\x62\x8a\x3a\xda\x3a\x55\x35\x4d\xd8\xb4\x58\x47\x22\x51\x5e\x2c\x0c\xde\xf4\x6e\x85\x6d\xff\x6b\xae\x23\xb5\xc7\x0e\xfd\x87\xe4\xae\x8e\xb6\xca\x88\x9d\xa6\x2d\x3e\xf7\x76\xcc\xfe\xb3\xfe\x7f\x9f\x31\x32\x90\xdb\xac\x91\x83\x15\xb7\xd6\xb6\xff\x56\xe9\xd4\xe8\x53\x8f\x3d\x6f\x2b\xdc\x60\x03\x8e\x2d\xfd\x25\xa5\xa8\x8c\x4b\xf9\x6b\x3e\x97\xf9\x69\x1d\xa3\x90\xa8\x8d\x6e\x95\xbb\x4c\x28\xe1\x2a\x7b\x87\xc0\x35\xc5\xce\x26\xca\x37\x23\x7e\x81\x87\x7e\xf7\x98\x84\x97\x8d\xde\xbe\x68\xee\x13\xc9\x1c\xde\x4b\xa1\xc0\x66\xc8\x77\x79\x8b\xbf\x6b\xf2\x93\x84\x65\x6b\x77\x72\x74\x09\x2d\x0e\xc1\xff\xcc\xf0\x24\xec\xce\x49\xdb\xda\x4a\x2d\xe5\x90\x91\x7e\x24\xde\x62\x77\x25\x97\xae\xec\xfb\xc9\xe7\x5e\x7a\xd7\x49\x92\xa6\xd7\xe5\x71\x9d\xdb\x42\x67\x3d\xef\x7a\x8d\x28\x1d\x99\x38\xcf\xef\x7e\x33\x10\xe5\xfd\x2d\x9b\xee\xb2\x81\x0f\x8c\xdd\x95\xbd\xab\x65\xab\xad\x67\xff\x07\x00\x00\xff\xff\x8d\xf7\x0d\x9f\x96\x06\x00\x00")

func stdlibStd_libPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibStd_libPisc,
		"stdlib/std_lib.pisc",
	)
}

func stdlibStd_libPisc() (*asset, error) {
	bytes, err := stdlibStd_libPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/std_lib.pisc", size: 1686, mode: os.FileMode(436), modTime: time.Unix(1511844549, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibStringsPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x53\x3d\x6f\xdb\x30\x10\x9d\xa3\x5f\xf1\x1a\x64\x88\x92\x32\xe9\xec\x00\x36\x82\xb4\x43\x26\x0f\xee\x66\x18\x10\x4d\x9d\x23\xa6\x12\x29\x93\x27\xbb\xfe\xf7\xc5\x51\x1f\x56\x3b\x75\xd3\x1d\xdf\xbd\xf7\xee\x43\xcf\x0f\xc8\x36\x1c\xac\xfb\x88\x4f\xad\x8d\x26\x1b\x22\x54\xda\x95\xb5\x7c\x9c\x7d\x28\x23\xb4\x2b\x11\x3b\x53\x65\x0f\xcf\x59\xb6\xf8\xbe\x7e\x43\xe4\xa0\x8c\x77\x46\x33\xee\xa1\xb1\x87\x52\x30\xc8\xf1\x96\x72\xe4\x34\x13\xb8\x22\xb0\x6f\xc1\x67\x2f\x78\x51\x81\x77\x29\x1d\x59\x9b\x5f\x78\xe9\xb9\x96\xfd\x63\x22\x52\x4a\xa0\x3d\xd1\x89\x02\x43\xbb\xcb\x80\x3e\xe9\xba\x23\x58\xc7\x1e\x7a\xe0\x1b\x19\x22\x87\xa5\x75\x62\x45\x8a\x95\x12\xd4\x17\xe4\x78\x65\xa6\xa6\x65\xb0\x87\x19\xf9\xc6\x52\xa1\x71\x02\xa4\x0f\x0a\x33\x22\xf5\xe9\xad\xc3\x3d\x4e\x64\x10\xa9\xbd\x3a\xfa\xd9\x05\x07\x2d\x79\xf6\xe1\x1f\x1f\xfb\x0b\x8a\xa1\x8d\x22\x4d\xab\x8b\x92\x96\x7a\xeb\xb0\x27\x3e\x13\x39\xe8\xba\x4e\xdd\x53\x4d\x0d\x39\x8e\xf0\x07\x14\x27\x32\xc5\x5c\x3e\xb6\xb5\x1d\x3b\x19\xf4\xc5\x4a\x8e\x4d\x7a\x98\x24\x07\x03\x83\x9d\x5e\xaf\x88\xd4\x16\xd0\x11\x1a\x25\xd9\xda\x36\xc4\x7f\xf7\x26\xd3\xb8\xac\xae\x73\x5a\x21\xc7\x7b\x04\x57\x36\x8e\xbc\x03\x64\x5e\x74\x5c\x5d\x97\x2c\x15\xaf\xe1\x3f\x96\x4b\xc7\x4e\xd7\x73\x9e\x65\xe8\x1c\xa9\x40\xba\xa4\x70\x75\xe0\xf7\x9f\xb2\xed\x40\x72\x31\x1a\x73\xcc\x21\xf8\x66\xea\xf7\x2b\x22\xf5\xaa\xc5\xf6\x7d\xbd\x2b\x50\x7a\x13\x71\xf0\x01\x8d\x0f\x72\x16\x07\x3f\x6a\x91\x36\x95\x32\x95\x1e\x55\x8e\x9d\x67\x91\x7a\x7a\x42\x8e\x1f\xbf\xc9\x74\x4c\x28\x24\x5b\x24\x02\xc1\x43\xf0\xda\x30\x85\x7b\xb1\x90\xcb\xda\x8a\xc8\x41\x56\x93\x2d\x86\x73\xef\xa6\x13\x4b\xec\x4a\xc1\x75\xcd\xda\x98\x2e\x44\xe4\x58\x58\xe7\x28\x64\x37\xdf\xb0\xb0\xd9\xcd\x16\x77\x29\x9e\x26\xb8\xc5\xe3\xa3\xc5\x0e\xe7\x8a\x1c\x76\x33\x93\xd9\xcd\x9d\xcd\x46\x15\x99\xb4\x8c\x44\x6e\x38\x6e\x24\xce\xc1\x97\x96\xfc\x01\xb7\xfd\xbf\x79\x3b\x31\x4e\xce\x5c\xbf\x21\xf9\x4c\xe3\x52\x69\x53\x92\xcc\x27\xb0\xf3\x8c\x17\xfc\x09\x00\x00\xff\xff\x74\xb0\x4a\xc5\xf1\x03\x00\x00")

func stdlibStringsPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibStringsPisc,
		"stdlib/strings.pisc",
	)
}

func stdlibStringsPisc() (*asset, error) {
	bytes, err := stdlibStringsPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/strings.pisc", size: 1009, mode: os.FileMode(436), modTime: time.Unix(1500942096, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibSymbolsPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\xce\xb1\x0e\x82\x30\x10\xc6\xf1\xbd\x4f\xf1\x1f\x81\x04\xd9\xc5\x48\x0c\xee\x0e\x3e\xc1\xa1\x97\x48\x82\x45\x68\x1b\xe3\xdb\x9b\x4a\x43\x18\x1c\xdb\xfb\x7e\xf7\x5d\x55\x98\xeb\xe7\xd9\x8d\x83\xdb\xbd\x7a\x77\x33\x45\x65\xf6\xe7\x4b\xcb\xc1\xfd\x7e\x8f\x64\x94\x25\x39\xed\xac\xe2\x15\x21\xd8\x7e\x0a\xca\x32\xa6\x5e\xd2\xf1\x55\x5a\x9d\xc8\x10\x3a\x22\x69\xc8\x39\xcd\x8a\x7f\xa8\x53\xfc\x7b\x4c\xc4\x61\x47\x8f\x4e\x41\x06\xa8\xcd\xc6\xaf\x7c\xa3\x05\xb1\x77\xba\x94\x4f\x1b\x9a\x58\xfb\xdf\xac\x87\xc4\x92\xda\x7c\x03\x00\x00\xff\xff\x27\x8e\xbf\xf1\xde\x00\x00\x00")

func stdlibSymbolsPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibSymbolsPisc,
		"stdlib/symbols.pisc",
	)
}

func stdlibSymbolsPisc() (*asset, error) {
	bytes, err := stdlibSymbolsPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/symbols.pisc", size: 222, mode: os.FileMode(436), modTime: time.Unix(1491353691, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibVectorsPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x55\x4d\x8b\xe3\x46\x10\x3d\xab\x7f\xc5\x83\x35\x64\xec\x89\x67\xd6\x9a\xdd\x1c\xe4\x10\x08\x31\x84\x9c\x02\x1b\xd8\x8b\x30\x6c\x8f\x55\x8e\x9b\x48\xdd\x4a\x77\x4b\xf6\xfc\xfb\x50\xa5\x4f\xaf\x9d\x4d\x4e\x33\x5d\xf5\xaa\x5e\xd7\xab\xd7\xf2\xf3\x0a\x9f\xe9\x10\x9d\x0f\xd0\xb6\x40\x3c\x91\xf1\x68\xa2\x29\x4d\x34\x14\xb0\x7a\x56\x2a\xdb\xfd\xfe\x0b\x5a\x3a\xac\x03\xc5\xb5\x8e\x78\xe0\x03\x5a\x5d\xc2\x14\x17\xac\xd7\xa0\x92\x2a\x2c\xf1\x07\x45\xce\x44\xe7\xa1\xa3\xe4\xa2\x63\x58\x43\xd8\x4e\x4d\xc6\x06\xd7\xc5\xbf\x52\x94\x7f\xc9\x46\xa9\xb6\x05\x5d\x86\xb2\x1f\xbb\xae\x3f\xe1\x81\x0b\x7a\x8a\x25\x7e\xb3\x26\x42\xc3\xd2\x79\x88\xcd\x68\x48\x1f\x4e\x3d\xd1\xdf\x8d\x8b\x5c\xf8\xf4\x84\x25\x3e\x35\x16\x5f\x38\xf2\x05\x47\xe7\x21\xb0\x81\xd7\x58\x9e\x7f\x6a\xa6\x32\xa4\xfd\xe1\x01\x1a\xaf\x3d\x3b\x96\xd3\x8d\x52\xe4\x08\x67\x5d\x0b\x67\xed\xa9\x26\x5b\x60\x8f\x68\x2a\x0a\x5d\x87\x4d\x18\x06\x9e\x86\x7d\x3f\x28\xb1\x65\x0a\x5b\xdc\x00\x36\x73\xc0\x8b\xbf\x05\xa4\x73\xc0\x87\x78\xba\x01\xbc\xcc\x01\x1f\xef\x00\x3e\xcc\x01\x3f\xdc\x01\x7c\x9c\x00\xef\xb0\x73\xf6\xbb\x08\x5d\x14\xa8\x9c\x27\x9c\xc8\x13\x1a\x5b\x52\x08\x2c\x99\x27\x98\x00\x8d\x55\x4b\xfe\x6d\x85\x3f\x9d\x2b\xe0\x49\x07\x67\x7b\xf7\xb0\xcc\x29\x33\x6c\xd0\xa6\xe3\x42\xda\x17\x2c\xf1\x73\x5d\x97\xec\x34\x2d\x61\x1d\x8d\xb3\xec\x9b\xf9\x62\xce\x26\x10\x6a\x6d\x3c\x6f\xa8\xdd\x88\x51\xdb\xf4\x7b\x86\x79\x0a\x4d\x29\x9b\x6b\x5f\x64\x92\x3b\x4c\xf9\xb0\x3b\xfd\x8a\x7d\x47\xaa\x92\x4c\x52\x59\x9b\x22\x6b\x37\x2a\x79\x8f\xcc\x4c\x5b\x7d\x97\xb9\x26\xaa\x64\xd1\xa6\x28\xc9\x62\xd1\x6e\xe4\x6f\x65\x2c\x72\x95\x24\x7c\x5e\x98\x41\x1e\x09\xa4\x53\x40\x25\x89\xf4\x96\x53\xcd\x86\x50\x49\x92\x63\x83\x47\xec\xb1\xc8\x8c\x4a\xe6\xfe\x60\x75\x42\x5d\xea\x99\x49\x4c\xa4\x2a\x60\x89\x5d\x53\xd5\x62\xc8\x83\xb3\x91\x6c\x0c\x70\xc7\xb9\x41\x9d\x8d\x4e\xce\x21\xea\xc3\x5f\x32\xfd\xbd\x4e\x4f\xe2\xfb\x9c\x47\x1f\xde\xc5\x76\xf6\xa8\x3d\xb5\xe4\x03\x4d\x45\x7d\xa0\x33\xfa\xa7\xee\xc0\xeb\x99\xde\xd8\xff\xa8\x53\x49\xd1\xd4\xc8\xf8\xc0\xca\x65\xfc\x2c\x58\x63\x25\x4a\xac\x45\x09\x51\x66\xc1\x99\x14\xcf\xa2\x4f\xde\x89\x49\x87\x99\xbc\xd9\x65\x8c\x31\x74\x88\xbe\x8d\xd1\xb7\x01\xdc\x7f\x9e\x98\x74\x4c\x5e\xa6\xaa\xeb\xf4\x7a\xdd\x2d\xe6\xf1\x71\x5a\x88\x92\x22\x25\xcf\x96\x2b\x8e\xa6\x8c\xe4\xbf\xfa\x8a\x74\x41\x2a\x3e\xf7\x73\x8e\xa6\xc9\x2c\x9d\xa5\xb7\x58\x8b\x07\x55\x49\x02\x96\xa1\x77\xe1\xa2\x03\x4c\xdf\x8b\xce\x1d\x43\x21\xf6\xc8\x51\x78\x57\x63\x0f\x73\x04\xdf\x6a\x58\x98\x4a\xfa\xda\xe9\x6e\x95\xae\xbf\xba\x58\xc5\xed\xba\x6b\x29\x8c\xfe\xa6\x43\xa7\x3b\x3a\x41\x78\x19\x39\x14\x6e\x64\x16\xf8\x18\x97\x2b\x5e\xcb\xca\x37\x53\x09\x44\x30\x8c\x8a\x61\x94\xec\x79\x85\xd1\x53\x8c\x3d\x7a\x67\x67\x56\xec\x67\x5c\x62\xc7\x13\xb2\x6b\x3b\xc0\xb5\xa5\xb7\xfc\x83\x93\xfd\x67\x0f\xf9\xd8\x0e\x69\x91\xec\xce\x05\x5e\xf9\x51\x7c\x83\x5f\xf2\xdf\xa4\xff\x97\x0e\x3d\xbb\x64\x7b\xf2\x7f\x02\x00\x00\xff\xff\xd5\x00\x21\x41\x46\x07\x00\x00")

func stdlibVectorsPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibVectorsPisc,
		"stdlib/vectors.pisc",
	)
}

func stdlibVectorsPisc() (*asset, error) {
	bytes, err := stdlibVectorsPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/vectors.pisc", size: 1862, mode: os.FileMode(436), modTime: time.Unix(1512805598, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _stdlibWithPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x90\xcd\x4e\xc3\x30\x10\x84\xcf\xf1\x53\x8c\x4a\x0f\x25\xc2\xcd\x3d\x45\x08\x09\x71\xe0\x82\x10\x57\x84\xd0\xc6\x31\xb1\x8b\x1b\x87\x78\x5b\xbf\x3e\x5a\x97\x22\xfe\x8e\xab\xf1\x7c\x33\xe3\xa6\x46\xf6\xec\xa8\x0b\x16\xb1\xdb\x5a\xc3\x09\x75\xa3\x54\xfb\xf0\x78\x8b\x6b\xac\x90\xe3\xdc\xdf\xd3\xce\x42\x6b\xac\xd7\x38\xc7\xe2\x45\x0c\x0b\x0c\x96\x75\x88\x86\x02\x52\xa6\x09\xbd\x37\xac\x07\xcb\x30\x14\x02\x36\x4a\xb5\x05\x8c\x95\x60\xf1\xbe\x8f\xfc\x45\x68\xcb\xd5\xc6\x6e\xab\xaa\x4b\xf1\x5d\xa1\xcd\x07\x9a\x55\xb5\x2c\xca\x29\x41\x0e\xed\x28\xe9\x03\xcd\x78\xc2\x3f\xa2\x74\x10\xb1\xd8\xf1\x8c\xec\xec\xa8\xaa\xa6\xc6\xdd\x2b\xd8\xf9\x74\xcc\x75\x94\x50\x5c\x48\x96\x2f\x40\xd3\x64\xc7\x1e\x9e\xc1\x11\x84\xc4\x64\xde\x64\xf3\xaf\xf4\xe5\xa9\xb7\x4e\xc7\x14\x55\x9d\xe1\x46\xc6\x95\x67\xfb\xe4\xc7\xe1\x13\xbb\xb3\x4c\xdf\xfa\xcb\x0f\xfc\xa1\x95\x86\x3f\x70\x1b\xf5\x11\x00\x00\xff\xff\x81\x99\x2d\xf3\x7d\x01\x00\x00")

func stdlibWithPiscBytes() ([]byte, error) {
	return bindataRead(
		_stdlibWithPisc,
		"stdlib/with.pisc",
	)
}

func stdlibWithPisc() (*asset, error) {
	bytes, err := stdlibWithPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "stdlib/with.pisc", size: 381, mode: os.FileMode(436), modTime: time.Unix(1491353691, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

// Asset loads and returns the asset for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func Asset(name string) ([]byte, error) {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[cannonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
		}
		return a.bytes, nil
	}
	return nil, fmt.Errorf("Asset %s not found", name)
}

// MustAsset is like Asset but panics when Asset would return an error.
// It simplifies safe initialization of global variables.
func MustAsset(name string) []byte {
	a, err := Asset(name)
	if err != nil {
		panic("asset: Asset(" + name + "): " + err.Error())
	}

	return a
}

// AssetInfo loads and returns the asset info for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func AssetInfo(name string) (os.FileInfo, error) {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[cannonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
		}
		return a.info, nil
	}
	return nil, fmt.Errorf("AssetInfo %s not found", name)
}

// AssetNames returns the names of the assets.
func AssetNames() []string {
	names := make([]string, 0, len(_bindata))
	for name := range _bindata {
		names = append(names, name)
	}
	return names
}

// _bindata is a table, holding each asset generator, mapped to its name.
var _bindata = map[string]func() (*asset, error){
	"stdlib/bools.pisc": stdlibBoolsPisc,
	"stdlib/debug.pisc": stdlibDebugPisc,
	"stdlib/dicts.pisc": stdlibDictsPisc,
	"stdlib/io.pisc": stdlibIoPisc,
	"stdlib/locals.pisc": stdlibLocalsPisc,
	"stdlib/loops.pisc": stdlibLoopsPisc,
	"stdlib/math.pisc": stdlibMathPisc,
	"stdlib/random.pisc": stdlibRandomPisc,
	"stdlib/shell.pisc": stdlibShellPisc,
	"stdlib/std_lib.pisc": stdlibStd_libPisc,
	"stdlib/strings.pisc": stdlibStringsPisc,
	"stdlib/symbols.pisc": stdlibSymbolsPisc,
	"stdlib/vectors.pisc": stdlibVectorsPisc,
	"stdlib/with.pisc": stdlibWithPisc,
}

// AssetDir returns the file names below a certain
// directory embedded in the file by go-bindata.
// For example if you run go-bindata on data/... and data contains the
// following hierarchy:
//     data/
//       foo.txt
//       img/
//         a.png
//         b.png
// then AssetDir("data") would return []string{"foo.txt", "img"}
// AssetDir("data/img") would return []string{"a.png", "b.png"}
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
// AssetDir("") will return []string{"data"}.
func AssetDir(name string) ([]string, error) {
	node := _bintree
	if len(name) != 0 {
		cannonicalName := strings.Replace(name, "\\", "/", -1)
		pathList := strings.Split(cannonicalName, "/")
		for _, p := range pathList {
			node = node.Children[p]
			if node == nil {
				return nil, fmt.Errorf("Asset %s not found", name)
			}
		}
	}
	if node.Func != nil {
		return nil, fmt.Errorf("Asset %s not found", name)
	}
	rv := make([]string, 0, len(node.Children))
	for childName := range node.Children {
		rv = append(rv, childName)
	}
	return rv, nil
}

type bintree struct {
	Func     func() (*asset, error)
	Children map[string]*bintree
}
var _bintree = &bintree{nil, map[string]*bintree{
	"stdlib": &bintree{nil, map[string]*bintree{
		"bools.pisc": &bintree{stdlibBoolsPisc, map[string]*bintree{}},
		"debug.pisc": &bintree{stdlibDebugPisc, map[string]*bintree{}},
		"dicts.pisc": &bintree{stdlibDictsPisc, map[string]*bintree{}},
		"io.pisc": &bintree{stdlibIoPisc, map[string]*bintree{}},
		"locals.pisc": &bintree{stdlibLocalsPisc, map[string]*bintree{}},
		"loops.pisc": &bintree{stdlibLoopsPisc, map[string]*bintree{}},
		"math.pisc": &bintree{stdlibMathPisc, map[string]*bintree{}},
		"random.pisc": &bintree{stdlibRandomPisc, map[string]*bintree{}},
		"shell.pisc": &bintree{stdlibShellPisc, map[string]*bintree{}},
		"std_lib.pisc": &bintree{stdlibStd_libPisc, map[string]*bintree{}},
		"strings.pisc": &bintree{stdlibStringsPisc, map[string]*bintree{}},
		"symbols.pisc": &bintree{stdlibSymbolsPisc, map[string]*bintree{}},
		"vectors.pisc": &bintree{stdlibVectorsPisc, map[string]*bintree{}},
		"with.pisc": &bintree{stdlibWithPisc, map[string]*bintree{}},
	}},
}}

// RestoreAsset restores an asset under the given directory
func RestoreAsset(dir, name string) error {
	data, err := Asset(name)
	if err != nil {
		return err
	}
	info, err := AssetInfo(name)
	if err != nil {
		return err
	}
	err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
	if err != nil {
		return err
	}
	err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
	if err != nil {
		return err
	}
	err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
	if err != nil {
		return err
	}
	return nil
}

// RestoreAssets restores an asset under the given directory recursively
func RestoreAssets(dir, name string) error {
	children, err := AssetDir(name)
	// File
	if err != nil {
		return RestoreAsset(dir, name)
	}
	// Dir
	for _, child := range children {
		err = RestoreAssets(dir, filepath.Join(name, child))
		if err != nil {
			return err
		}
	}
	return nil
}

func _filePath(dir, name string) string {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
}

Changes to boolean.go.

1
2
3
4







5
6
7
8
9




10
11
12
13
14




15
16
17
18
19









package main

func (m *machine) loadBooleanWords() error {
	m.predefinedWords["and"] = NilWord(func(m *machine) {







		a := m.popValue().(Boolean)
		b := m.popValue().(Boolean)
		m.pushValue(Boolean(a && b))
	})
	m.predefinedWords["or"] = NilWord(func(m *machine) {




		a := m.popValue().(Boolean)
		b := m.popValue().(Boolean)
		m.pushValue(Boolean(a || b))
	})
	m.predefinedWords["not"] = NilWord(func(m *machine) {




		a := m.popValue().(Boolean)
		m.pushValue(Boolean(!a))
	})
	return nil
}









|

|
|
>
>
>
>
>
>
>
|
|
|
<
<
>
>
>
>
|
|
|
<
<
>
>
>
>
|
|
<


>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14


15
16
17
18
19
20
21


22
23
24
25
26
27

28
29
30
31
32
33
34
35
36
37
38
package pisc

var ModBoolCore = Module{
	Author:    "Andrew Owen",
	Name:      "BoolCore",
	License:   "MIT",
	DocString: "The 3 basic boolean operation, and/or and not",
	Load:      loadBoolCore,
}

func _and(m *Machine) error {
	a := m.PopValue().(Boolean)
	b := m.PopValue().(Boolean)
	m.PushValue(Boolean(a && b))


	return nil
}

func _or(m *Machine) error {
	a := m.PopValue().(Boolean)
	b := m.PopValue().(Boolean)
	m.PushValue(Boolean(a || b))


	return nil
}

func _not(m *Machine) error {
	a := m.PopValue().(Boolean)
	m.PushValue(Boolean(!a))

	return nil
}

func loadBoolCore(m *Machine) error {
	m.AppendToHelpTopic("Bools", "PISC boolean expressions are generally not short-circuited without using quotations")
	m.AddGoWordWithStack("and", "( a b -- a&b )", "Boolean And", _and)
	m.AddGoWordWithStack("or", "( a b -- a||b )", "Boolean OR", _or)
	m.AddGoWordWithStack("not", "( a  -- not-a )", "Boolean NOT", _not)

	return m.ImportPISCAsset("stdlib/bools.pisc")
}

Deleted bools.pisc.

1
2
3
4
5
6
7
/*
bools.pisc
*/

:DOC and ( x y -- ? )  Boolean and  ;
:DOC or ( x y -- ? )  Boolean or  ;
:DOC not ( x -- !x )  Boolean not  ;
<
<
<
<
<
<
<














Added build.































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#! /bin/bash

set -uo pipefail
export PISCDIR="$(pwd)"

function older_than() {
  local target="$1"
  shift
  if [ ! -e "$target" ]
  then
    echo "updating $target" >&2
    return 0  # success
  fi
  local f
  for f in "$@"
  do
    if [ "$f" -nt "$target" ]
    then
      echo "updating $target" >&2
      return 0  # success
    fi
  done
  return 1  # failure
}

cd "$PISCDIR"

function generate {
	echo "Generating..." >&2
	older_than bindata.go stdlib/*.pisc && {
        # TODO: Put in a go get command for go-bindata
		echo "Generating bindata" >&2 
		go-bindata -pkg pisc stdlib/...
	}
}

function webbuild {
	older_than ./cmd/playground/playground.js *.go stdlib/*.pisc && {
		cd "./cmd/playground"
        # TODO: Put in a go get command for gopherjs
		gopherjs build -m
		cd ../..
	} 
}

function upload {
	generate
	webbuild
	cd ./cmd/playground
	# Note: This command won't work w/o a password for the scp
	scp *.css *.js *.html yumaikas@junglecoder.com:/var/www/pisc-static/playground
	cd ../..
}

function interpinstall {
	generate 
	cd "./cmd/pisc"
    go get
	echo "Installing new PISC interpreter"
	go install 
	cd "../.."
}

function testpisc {
	interpinstall
	pisc -f tests/all.pisc
}

case "$1" in 
"generate")
	generate
	;;
"install")
	interpinstall
	;;
"web")
	webbuild
	;;
"upload")
	upload
	;;
"test")
	testpisc
	;;
esac

cat <<EONOTE
TODO: Definitely consider switching fmt.Println to pass through priv_puts in as *many* places as make sense.
TODO: Consider using crit-bit trees for dictionaries
TODO: Now that something close to a save-game has been implemented for final-frontier, start implementing the initial states and such
TODO: Implement an interactive tutorial in the 'in Y minutes' style. 
TODO: consider packing the scripts under scripts/ for general use, possibly with a switch for unpacking them
EONOTE

exit 0

Added cmd/FinalFrontier/bindata.go.







































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
// Code generated by go-bindata.
// sources:
// scripts/backstory.txt
// scripts/gamesave.pisc
// scripts/intro.pisc
// scripts/lib.pisc
// scripts/main.pisc
// scripts/map.pisc
// scripts/markets.pisc
// scripts/saving.pisc
// scripts/ships.pisc
// scripts/term_posix.pisc
// scripts/term_win.pisc
// DO NOT EDIT!

package main

import (
	"bytes"
	"compress/gzip"
	"fmt"
	"io"
	"io/ioutil"
	"os"
	"path/filepath"
	"strings"
	"time"
)

func bindataRead(data []byte, name string) ([]byte, error) {
	gz, err := gzip.NewReader(bytes.NewBuffer(data))
	if err != nil {
		return nil, fmt.Errorf("Read %q: %v", name, err)
	}

	var buf bytes.Buffer
	_, err = io.Copy(&buf, gz)
	clErr := gz.Close()

	if err != nil {
		return nil, fmt.Errorf("Read %q: %v", name, err)
	}
	if clErr != nil {
		return nil, err
	}

	return buf.Bytes(), nil
}

type asset struct {
	bytes []byte
	info  os.FileInfo
}

type bindataFileInfo struct {
	name    string
	size    int64
	mode    os.FileMode
	modTime time.Time
}

func (fi bindataFileInfo) Name() string {
	return fi.name
}
func (fi bindataFileInfo) Size() int64 {
	return fi.size
}
func (fi bindataFileInfo) Mode() os.FileMode {
	return fi.mode
}
func (fi bindataFileInfo) ModTime() time.Time {
	return fi.modTime
}
func (fi bindataFileInfo) IsDir() bool {
	return false
}
func (fi bindataFileInfo) Sys() interface{} {
	return nil
}

var _scriptsBackstoryTxt = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x92\x51\x6e\xdc\x30\x0c\x44\xaf\x32\x07\xd8\x2c\xd0\x8f\x1e\x21\x1f\xfd\x28\x10\xa0\xb9\x00\x2d\x8f\x2d\x62\x65\x49\x15\xe9\x75\x7c\xfb\x42\xca\x6e\x1b\xf4\xd3\x30\xc5\x79\x9c\x99\xd7\x8f\x9a\x4a\x63\x33\x48\x23\x78\x67\x46\x2e\x07\x36\xa9\x55\xf3\x8a\xb2\x3b\x3c\x12\x77\x69\x5a\x76\x43\x92\x4c\x43\x59\x60\x49\xab\x55\x09\xbc\xe2\x67\x31\x47\x65\xa9\x89\x30\x72\x83\x17\x4c\x44\x28\xd9\x99\xbd\x7f\x99\xcb\x89\x92\xc7\xa6\xda\x57\x78\x5f\xe1\x91\xda\x30\x69\xf3\x78\x81\x18\xa6\xe2\x11\xb6\x4f\x63\x2d\x24\xcf\xff\x44\x06\x9c\x37\x4a\x88\x6c\x9d\xa3\x26\x09\xb4\x2b\xde\xb4\x89\xd3\x2e\x58\x1a\x75\x8d\xce\x66\x97\xcf\xa7\xdb\xbe\xae\x69\xdc\x95\xf4\x46\xdc\x95\x58\x4a\xc3\x22\xee\x34\xbf\xe0\xf7\xae\xe1\x46\x73\x4c\x7b\xb8\x5d\xf1\x36\xb0\xa4\x9d\x58\x12\xe9\x86\xad\x98\xa7\x13\xb5\x15\x67\xf0\x07\x6c\x2c\x5b\x57\x7d\x8f\x6c\xc4\x6e\x9c\x1f\xb7\x0a\xec\x34\xe7\xf6\x72\xa8\x11\xdc\xaa\xb6\xce\x5c\xf6\x3c\xe3\x57\x49\x17\x4c\xbb\x23\x95\x55\xcd\x35\x18\x36\xb9\xd1\x20\x58\x25\xc9\xc7\xf9\x72\xe8\x4c\x94\x4c\x64\x4a\x7b\xd1\xad\x16\x33\x9d\x12\xaf\x78\xed\x79\xe8\x32\x06\x83\x6b\x40\xdb\x13\x71\x88\xe1\x39\x73\x19\xa6\x52\x5a\x3a\xbf\xd8\xa5\xd9\x5c\x26\x4d\xea\x4a\x83\xd5\x46\x99\x9f\x11\x2d\xd2\x86\x43\x43\xd5\x63\x2b\xfb\x1a\x7b\xcc\x8f\x34\xdf\xa3\x1a\x16\x09\xbe\xb7\x7e\x5e\x24\xac\x04\xa5\x9f\x48\x5c\x1c\x13\xa3\xe6\xf9\x8a\x1f\x3d\xd8\x72\xc3\xcc\x20\x33\x6d\x78\x2b\x5f\x08\xe6\xa6\x77\x3e\xdc\xe9\x2c\x89\x60\xee\x52\x63\x72\x2b\xbd\x6c\x1f\x95\x4d\x37\x66\x97\xd4\xcd\x1c\x4b\xfb\x6d\x25\xa7\x13\x87\x7a\x1c\xf2\xb2\xf6\x22\x76\xe2\x99\xe2\xf1\xb3\x39\xc5\x88\x23\x96\x3e\x95\x69\xf6\x24\xfd\x2b\xbf\xb4\x71\x41\x7f\xe9\x51\xfc\xbf\xbf\x41\xb6\x27\x9b\x84\xc0\xea\x9c\x7b\x01\x05\x1b\x25\x8f\x7a\x7b\x93\x3b\xd3\x48\x1a\x49\xcc\xf1\xed\x3b\x4e\x4a\x33\x44\xb9\x13\x16\xcb\x91\x71\x94\x3c\x8f\x36\x7a\xd4\xbc\xda\xf5\x4f\x00\x00\x00\xff\xff\x94\x12\x47\x4d\x4c\x03\x00\x00")

func scriptsBackstoryTxtBytes() ([]byte, error) {
	return bindataRead(
		_scriptsBackstoryTxt,
		"scripts/backstory.txt",
	)
}

func scriptsBackstoryTxt() (*asset, error) {
	bytes, err := scriptsBackstoryTxtBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "scripts/backstory.txt", size: 844, mode: os.FileMode(436), modTime: time.Unix(1504845781, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _scriptsGamesavePisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x01\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00")

func scriptsGamesavePiscBytes() ([]byte, error) {
	return bindataRead(
		_scriptsGamesavePisc,
		"scripts/gamesave.pisc",
	)
}

func scriptsGamesavePisc() (*asset, error) {
	bytes, err := scriptsGamesavePiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "scripts/gamesave.pisc", size: 0, mode: os.FileMode(436), modTime: time.Unix(1504845781, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _scriptsIntroPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x53\x4f\x6b\xeb\x46\x10\x3f\x5b\xa0\xef\xf0\xc3\x04\x92\x80\xec\xfa\xd2\x8b\x7b\x08\xa5\x10\x28\xf4\x96\x40\x09\xc6\x87\xb1\x34\xd2\x0e\x5e\xcf\xaa\xbb\x23\x29\xfa\xf6\x65\xa5\x98\x17\x1e\x3c\x74\xd2\xce\xec\xfc\xfe\xcd\x96\xc5\x11\xa2\x16\x03\x9e\xd0\xd1\x8d\xb1\xdb\x41\xf9\xd3\xf0\x5c\x16\xc7\x7c\x50\x16\x7f\xfd\xf3\x56\x16\x65\xb1\x7d\xeb\xa9\xe6\x0a\xe6\x18\xaf\xa2\xe4\xf1\x1a\x83\x9a\x70\xcc\xd5\x77\xc7\x48\x46\x31\xc1\xd1\xc8\xb8\x70\x7d\x0d\xca\x0d\xe6\x30\x54\xe0\x91\x15\x93\x63\xcd\xbf\x98\x38\x32\x2e\x83\x81\x30\x31\xa3\x76\xe2\x9b\x7d\x59\xfc\x6d\x8f\x09\x84\x28\xe9\x3a\xc3\x4b\xcb\x15\x52\x46\x6c\x29\x8a\x76\x15\x26\x47\x86\x49\xcc\xa1\x97\x48\xc6\xa9\x42\xba\x0d\x5d\xe7\x39\xa6\x0a\xa4\x0d\x7a\x4f\xca\x46\x71\x46\x1f\xbc\xd4\x5c\x16\xa2\x20\xd4\x41\x93\x91\x1a\x92\xc5\xa5\xbf\x82\x06\x83\x05\xdc\x58\x4d\x82\x82\x92\x71\x94\xd0\xa4\x0a\x4a\xa3\x74\xb4\x9c\x36\xd2\xb6\x52\x0f\xde\xe6\x75\x7c\x16\x3e\x98\x65\xbd\x63\x90\x06\xa1\x5d\x09\xee\xf1\x11\x86\xc7\x91\xd1\x47\xee\x29\x72\x83\x36\x44\x98\x93\x84\x86\xe6\xa5\x1a\x11\x99\x1a\xd1\x0e\x26\x37\xc6\x44\x09\x0d\x37\x52\x93\x71\x93\x89\xd4\x8e\xa2\xa5\xb2\xc8\x30\xc9\x49\x8f\xd0\x73\x5c\x58\x54\xd9\xb2\x98\x81\x22\xaf\x97\x2d\xc0\x22\x89\xe6\x69\xa2\x48\x72\x1b\x3c\x59\xb8\x9b\xb0\xb6\xd3\x28\xda\xa5\xb2\x58\xc2\xa0\x5b\x18\xf4\x0b\xe9\xe1\xf7\xc3\xe1\xb0\xc7\xbf\xe2\xfd\x12\x06\x7f\xf6\x3e\xe4\xd1\xf7\xfc\x5e\xf0\xf4\xf1\x9b\x3e\x97\xc5\x16\x7d\x14\x35\xaf\x39\xde\x03\x8e\x57\x9c\xf0\x70\x85\xa4\xdd\xac\x2f\x8b\x83\x67\x9c\xd0\xb1\x5d\x79\xce\xd5\x33\x26\x27\x9e\x73\xf7\xda\xa6\x2f\x38\xa1\x2c\x36\xdb\x77\x17\x86\xce\x55\xe8\x39\x3a\xea\xd3\x0f\x2c\x64\x51\xd9\x2c\xd2\x60\x8e\xe3\x22\x70\x8f\x3f\x5b\xe3\x08\xf2\x7e\x59\xb6\x19\x53\xd0\x47\xc3\x85\xd1\x85\x2c\x9a\x74\x9e\x1c\x47\xfe\x46\x70\x33\x91\xd8\x8e\x75\x09\x67\xb3\x39\x65\xff\xb2\x41\xbb\x1b\xeb\x80\x33\xca\xe2\xbc\xec\xdf\x9d\xda\x9c\xa9\x9d\xd0\x4b\x7d\xdd\x2d\x7e\x9f\x71\x6f\xf8\x23\x0b\x38\x7e\x2b\xfd\xfc\x2e\xb2\xa4\xe5\x49\x6c\xb6\x4b\xf0\xf1\xce\xcb\x02\x94\xb9\x01\xad\x11\x5e\xb8\xcd\xc6\x66\x93\x6b\xd2\x9c\xd9\xc8\x1e\xe6\x62\x36\x63\xdd\x9c\x0a\x2e\x4c\x3c\x72\xdc\xe3\x97\x62\x4e\xf8\x6f\x10\xdb\x2d\x1c\xce\x5f\xf4\xd6\xef\xff\x00\x00\x00\xff\xff\x8f\x37\x15\x2f\xbb\x03\x00\x00")

func scriptsIntroPiscBytes() ([]byte, error) {
	return bindataRead(
		_scriptsIntroPisc,
		"scripts/intro.pisc",
	)
}

func scriptsIntroPisc() (*asset, error) {
	bytes, err := scriptsIntroPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "scripts/intro.pisc", size: 955, mode: os.FileMode(436), modTime: time.Unix(1504845781, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _scriptsLibPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x91\xcd\x6a\xdc\x30\x14\x85\xd7\x16\xe8\x1d\x0e\xc3\x2c\x52\xc2\x2d\xe9\xd6\x75\x33\x9b\x6e\xb2\x69\x0a\x59\xa4\xe0\x0c\x65\x22\xdd\xda\xaa\x23\xc9\x95\x64\x9c\xbc\x7d\x91\x35\x3f\x86\x40\x76\x96\xce\xa7\xef\xea\xc8\x89\x83\x25\xeb\x35\x63\xf3\x78\xf7\xe3\xfb\xfd\xe3\xc3\x06\xfc\x0f\x2d\xa4\x00\x80\x4d\x54\xc1\x8c\x29\x3e\x3d\x65\xf0\xf7\x6c\xdc\xe7\xd1\x44\xb5\x41\x77\xb0\x4c\x25\x94\x62\x8f\xb9\x67\x27\x85\x14\x2b\xdd\xcf\xfb\x87\xbb\x5f\x1f\xc9\x46\x1f\xcd\xeb\xc7\xba\x1a\xf3\xc1\x24\x62\x97\x38\xe0\x0a\x44\xf8\x04\x29\xaa\x16\x1d\xa7\x81\xdf\x60\x62\xc9\x76\xd8\xa3\x45\x3e\x67\x5e\x58\x8a\xaf\xe5\x6c\x33\x8d\xa4\xfd\xec\xc8\xb2\x9b\x6e\x71\x05\x37\x59\xf2\x63\x8a\x59\xe4\x9f\xff\x16\x59\xed\x26\x2b\x45\x75\x83\xda\x92\xd1\xaf\x52\x54\x09\xb5\xea\xbd\x8f\xc6\x75\xcb\x30\x29\xaa\xea\x38\xb0\x1e\xf2\x62\x3b\xac\x26\xb7\xf8\x73\xe1\x51\xee\x8e\x0b\x75\x08\xc1\xcf\x3b\xb4\x79\xe7\x6c\xd1\x26\x2c\xeb\xad\x36\x21\x43\xd3\x98\x3d\x44\xcb\x0d\x70\xea\xbf\x02\x72\x8d\x8c\x5c\x5f\xbf\x47\xca\xce\xd6\x4d\x16\xd6\xeb\x4b\x8d\x73\x74\x83\x06\x6d\x01\xbe\x80\x8e\xc0\x4a\x71\xfe\xda\xe7\x22\xac\x72\xc7\x46\x1b\x95\x6e\xcb\x63\x6f\x57\xed\x9a\x86\xb4\x77\xbc\x2b\xc1\xc9\xd4\x34\xa4\x7a\x1f\xd9\x1d\x47\xb7\x58\x3c\x25\x19\x83\x57\x34\xf0\xdb\xfa\xc8\x37\xb4\x78\x3e\xa8\x81\xe6\xde\x24\x3e\xbd\xda\x82\xf7\xa6\xeb\x5f\x4c\xd7\xa7\xe5\x3f\xfe\x0f\x00\x00\xff\xff\x55\xdb\xba\xd7\xa0\x02\x00\x00")

func scriptsLibPiscBytes() ([]byte, error) {
	return bindataRead(
		_scriptsLibPisc,
		"scripts/lib.pisc",
	)
}

func scriptsLibPisc() (*asset, error) {
	bytes, err := scriptsLibPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "scripts/lib.pisc", size: 672, mode: os.FileMode(436), modTime: time.Unix(1506682674, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _scriptsMainPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x93\x4f\x6f\xea\x38\x14\xc5\xd7\x89\x94\xef\x70\x94\x61\xf1\xde\x13\xa1\xf3\x6f\x95\x57\x75\x34\xa2\x74\xa6\x12\x05\x69\xda\xae\x28\x0b\xc7\xb9\x24\x16\x8e\x9d\xb1\x0d\x14\x55\xfd\xee\x23\x3b\xa1\xd0\x99\x8a\xe9\x06\x9c\xeb\xdf\x3d\xbe\xf7\xfa\xf8\x07\x3c\xd4\xc2\x42\x58\xac\x84\x62\x12\x2b\xa3\x95\x13\x64\x86\x60\xa8\x58\x43\x10\xca\xb6\xc2\x50\xc9\x51\xec\x61\x5b\xc6\x69\x08\x67\x58\x49\x3b\xa1\x4a\x3b\x04\x53\x25\x18\xa4\x70\x4e\x12\x0a\xe1\xa0\x57\x90\x4c\x51\x56\x30\x4b\x25\xb8\x6e\x0a\xe6\x92\xf8\xe2\x5b\x12\xdf\x5e\x4f\x7e\xbf\xcf\x71\xc7\xf6\x05\xf9\xe3\x4a\x58\xdd\x10\x76\x6c\x0f\xa7\x21\x94\xa3\xca\x30\x47\x90\x5a\x55\x70\xa2\x21\x7f\xd0\x96\xa4\xdf\xd2\x70\x35\x81\x6f\xa4\xdb\x18\xf2\x67\x84\x52\x56\xcc\x90\xb1\x49\xfc\xed\x22\x89\x93\x38\xb5\xdc\x88\xd6\xd9\xa7\x27\x29\x8a\x51\x2b\x2c\x4f\x43\x0f\x59\x17\x3f\x05\x1a\x66\xd6\xe4\xec\x79\x48\x28\x67\xf4\x79\xc4\xb2\xad\x50\xd5\x47\x4c\x12\xe7\xd0\x2d\x29\xa1\xaa\xac\x21\xb5\xc1\x97\x6e\x9e\x59\x06\x45\xcf\x0e\x5f\x93\x38\xca\x7d\x24\x89\xa3\x5f\x71\xb9\x69\xb3\x52\xef\x54\x40\xaf\x90\x37\x49\x1c\x0d\x1a\x64\x57\xb5\xa8\x6a\x29\xaa\xda\x21\xbf\x9b\xcc\x1e\x93\x18\xd1\x02\x05\xe3\xeb\xac\x90\x8c\xaf\xb1\x44\x3e\xfe\x73\x7e\x3b\x9e\xf8\x9d\x6e\x85\xd6\x08\x15\x2a\xf0\xec\xa0\xc1\xa8\xd4\x8a\x7e\xc3\x32\x04\x92\x38\x8a\xc6\xd3\x7b\xff\x37\x9b\x4d\xfd\xdf\xe0\xc5\xff\x46\x7c\xcf\x14\xd2\x9b\xe0\x82\x9b\xde\x05\x29\x7a\x26\x32\x54\x22\x2c\x52\x20\xc5\x8f\xf0\xc5\x20\x9d\xd1\x0e\x7f\xb0\x86\x52\xf4\x47\x1f\xf0\x40\xfd\xd4\x53\x53\xcd\xca\x33\xd8\xcf\x3d\x36\x6f\x9d\xd0\xca\x7e\x0c\xfd\xd2\x43\x7f\x91\xdb\x18\xe5\xfd\x62\x88\x49\x48\xb1\xfa\xaf\xea\xae\x16\x8e\x90\x3e\xb6\x17\xd7\x7a\x17\x58\x5e\x6b\x6d\x69\x88\x89\x72\x64\x42\x40\xab\x95\x30\x0d\x52\x74\x39\xaf\xc7\xa1\x45\x7e\xf0\xa3\xd6\x68\x9e\xad\x69\x9f\xc4\xd1\x12\xbb\x5a\x48\x7f\x4f\x2f\x61\x04\x58\x20\x38\x03\xcb\xc3\xa7\xd4\xac\xcc\xc2\xed\x2e\xfb\x88\xee\x7a\x79\xfb\xa6\x67\xe1\x8e\xc4\x6b\xb8\x15\x5e\x6b\x4b\x2a\x13\xe5\x33\xb6\xc4\x33\xe6\x90\xc4\xdf\x3b\xe3\x1c\x05\x8f\xae\xc1\x57\x04\xbf\x60\x3c\xbd\xc7\xe0\x05\xe9\xc3\xfc\x7a\x9e\xe3\xb6\x69\x25\x35\xa4\x5c\x67\x3f\x9f\x69\x7d\x57\xe8\x5b\x92\x0a\x0b\xa4\x48\x31\xc2\x12\xdf\xbd\xb8\x65\x5b\xfa\xb7\xf8\xa7\xb4\x7d\xe2\xff\x68\x1f\xfa\xfe\xf2\x59\xd1\x43\xc6\x79\xd9\xe3\xf8\x4e\x4b\x3e\x36\xf2\xf7\xe6\xb0\xdf\x0f\xb0\x61\x42\xf5\x45\x24\x31\x00\x5c\x96\x82\xbb\xab\xf7\x2f\x32\xe7\x1b\x63\x32\xeb\x98\xa3\x77\x50\xff\x2c\x7d\x64\x01\x87\x25\x16\x18\x04\xf1\xc1\x31\x01\x9c\x49\x79\xaa\x80\x37\x9b\xf8\xbc\x8a\x5c\x30\x8f\x5f\x9f\xbc\xd6\x43\x7b\x7e\x22\xdd\xe6\x5b\xe5\xfd\xdd\xfb\xc2\x93\xf8\x9f\x00\x00\x00\xff\xff\x1f\xb5\xba\x12\x96\x05\x00\x00")

func scriptsMainPiscBytes() ([]byte, error) {
	return bindataRead(
		_scriptsMainPisc,
		"scripts/main.pisc",
	)
}

func scriptsMainPisc() (*asset, error) {
	bytes, err := scriptsMainPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "scripts/main.pisc", size: 1430, mode: os.FileMode(436), modTime: time.Unix(1506683028, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _scriptsMapPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x90\x5f\x8b\x13\x31\x14\xc5\x9f\x33\x90\xef\x70\xa8\x03\xae\x8b\xb1\xfa\x9a\x95\xfa\x50\x16\x14\xd6\x0a\xca\xe2\x43\xe9\x43\x9a\x5c\x9b\xb0\xf9\x33\x24\xa9\xb3\x20\x7e\x77\x49\xa6\xe2\x22\xfb\x30\x19\x72\xcf\xb9\xe7\xde\xfc\xd6\xd7\x7c\xe0\xc3\x57\x8a\x86\x32\x14\x4e\xca\xab\xea\x34\x82\x9a\xf0\x23\xa7\x00\x4b\x99\x9a\xe3\x7a\xdd\x4e\x89\x52\x55\x16\x4d\xbd\xc2\x49\x05\x82\x10\x88\xf4\x58\xf1\x0a\x7c\x60\x7c\xb8\x69\xae\xee\xb3\x69\x16\x73\xca\xde\xe0\x0a\x93\x57\x91\xea\x33\x0d\xb2\x97\xe4\xa2\xb7\x46\x36\x5e\xbc\x62\x63\xa8\xe8\xec\xa6\xea\x52\xc4\x94\x5d\xac\x3e\xfe\xe7\xf0\x49\xab\x26\x17\x98\xf3\xd4\xbf\x3d\xc4\x26\xb6\xc8\x03\x7e\x92\xee\x7b\x4a\x9f\x74\xe9\x82\x4e\x21\xa8\x68\x9e\x6a\xda\x26\xa7\xa9\xb4\xd4\x6e\xf3\x14\xf1\x0e\x02\xef\xcf\x93\x30\x69\x8e\x22\x50\x3c\x6f\x20\xc3\x32\x39\x40\x6c\xac\x3b\x59\xef\x4e\xb6\x42\x7e\xbe\xdd\xdd\xf3\x01\x6c\x8f\xa3\xd2\x0f\xe2\xe8\x95\x7e\xc0\x01\x72\xfb\xf1\xcb\xa7\xed\xed\x42\x82\xed\x31\x06\xbc\x31\x29\xd2\x07\x1c\xf8\xc0\x5e\xe0\x3b\xbd\xcc\x84\x4c\xe2\x78\x76\xde\xb8\x78\x42\xb5\x84\x36\x09\xa4\xb4\x45\x75\x81\x30\xbb\x6a\xa1\x90\xa9\x54\xd4\x84\xd1\xf5\x28\x3e\x30\xb6\xbd\xfb\xd6\x7f\x7d\xc8\x3f\x32\x8c\xbd\x85\x6c\x2e\x36\xfe\x6a\xe7\x13\x4e\x9d\xc8\x6e\x77\xd7\xcb\x99\xcc\x22\x5f\xb8\x48\xdf\xaf\x6c\x74\x68\xef\xc1\x0a\x58\x61\xf4\xb8\xe4\xff\x6d\x5b\xa0\xb5\xfd\xfa\x75\xb6\xae\x12\x56\xf7\xd3\xba\x61\x6a\x1b\x16\xf2\xa4\xeb\x6b\x50\xac\x94\x5b\x41\xdb\x94\x0a\xad\xb0\x04\xfc\xe6\x03\x3b\x60\xb6\xce\xd3\xc2\xf2\x82\xbe\xd3\xd1\x36\x15\x8a\xc2\x99\xc7\x3e\x45\x55\x3e\xdc\xe0\x4f\x00\x00\x00\xff\xff\xb8\x77\xfd\xe3\x9a\x02\x00\x00")

func scriptsMapPiscBytes() ([]byte, error) {
	return bindataRead(
		_scriptsMapPisc,
		"scripts/map.pisc",
	)
}

func scriptsMapPisc() (*asset, error) {
	bytes, err := scriptsMapPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "scripts/map.pisc", size: 666, mode: os.FileMode(436), modTime: time.Unix(1504845781, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _scriptsMarketsPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x92\x31\x6f\xdb\x4e\x0c\xc5\xf7\x03\xee\x3b\x10\xf0\x92\x04\x7f\xc3\x7b\xfe\x43\x01\x2b\x71\x9a\xc1\x68\x50\x17\xcd\x4c\x9f\x18\x1d\x91\xd3\x51\xe0\xf1\xec\xfa\xdb\x17\x27\xbb\x70\x81\x74\xc8\xc2\x41\xd4\xfb\xbd\x27\x3e\x2d\xc0\x3b\xef\x56\x77\x6d\xbe\x46\x34\xe0\x02\x16\x09\x28\x48\x96\xf1\x04\x83\x70\x1e\xc0\x04\xf6\x04\x89\xdf\x09\x38\x83\x45\x2e\x30\xe0\x48\x5f\x9a\x6a\xb1\x80\x35\x16\x0e\xf0\x24\xd2\x97\x99\x83\x46\xea\xdd\x46\xa4\xf7\x6e\x53\x29\x79\xf7\x4d\x69\xb5\x0b\x8a\xd3\x45\xf1\x80\x86\xd0\xe1\x54\x6a\xa2\x59\xf3\xa2\x32\x28\x8e\xc5\xbb\x9f\xdc\x93\x14\xef\x9e\x70\x6c\xab\x2d\x4e\x65\xd5\x45\x54\x2b\x17\xed\x57\xc2\xc3\xe9\xea\xf6\x5d\xf6\xd2\x76\xdb\x9a\xd9\x58\x72\xf1\x6e\x5d\x39\xf5\xcb\x4e\xc9\xc8\xbb\xc7\x7c\x60\x95\x65\x89\x4c\xa9\xe7\x3c\x5c\x28\x1b\xc5\x81\x13\x5d\x39\x3b\x49\xa8\xf0\x82\x99\x52\xf1\xae\x93\x71\xaa\x46\x0a\x5d\xe4\xa9\x78\xf7\x20\xa1\x8e\x94\x9b\xd1\x2e\xd4\x34\x59\xd5\x73\xf0\xbb\x55\x9b\xf7\x50\xa2\x1c\x97\x23\xea\x3b\x19\xdc\xc0\x72\x09\xb7\xf0\xff\x9f\xd3\xbe\x8a\xa6\x1e\x50\x43\x24\x3b\x4d\x67\x5d\x27\x49\xf2\xe9\xde\xbb\xc7\x5f\x93\xa8\x15\xd8\xcf\x47\x1c\x5a\x9c\xff\xe0\xc8\x16\x01\x41\x31\xf7\x32\x42\x88\x98\x03\x81\xbc\x01\xcd\x2f\xb7\x4a\x24\x13\x88\x45\x52\x68\xc8\xb6\x6b\x52\x40\x03\x84\x24\x47\x98\x94\x03\x35\xa3\xad\x64\x2c\xc6\x01\x7e\x50\x88\x59\x82\x62\x68\xb6\xcf\xe3\x3f\x6c\xe9\x92\xa5\x6f\xf5\x84\x4b\x3d\x8d\x7d\x40\x65\xa9\x05\xfe\x8a\xaf\x93\x28\x1a\x17\x83\xe7\xdc\xd7\x62\x9f\x23\xc7\xb9\xbc\xf9\xe1\xfc\xe7\x75\x4a\x67\xc8\x06\xf7\xca\x9f\x84\x7c\xe8\x6e\x4d\x55\x9b\xb4\x7d\xe6\x96\x4c\x3f\x60\xe8\x40\x7a\xb2\xc8\x79\xb8\x52\x26\x39\x92\xae\x38\xbf\xa5\x4a\xed\xbc\x37\x91\xe2\xed\xb9\xd2\xdf\x01\x00\x00\xff\xff\x8c\x0c\x77\x50\x16\x03\x00\x00")

func scriptsMarketsPiscBytes() ([]byte, error) {
	return bindataRead(
		_scriptsMarketsPisc,
		"scripts/markets.pisc",
	)
}

func scriptsMarketsPisc() (*asset, error) {
	bytes, err := scriptsMarketsPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "scripts/markets.pisc", size: 790, mode: os.FileMode(436), modTime: time.Unix(1504845781, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _scriptsSavingPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x56\x41\x6f\xdb\x38\x13\x3d\x4b\x80\xfe\xc3\x2b\xab\x83\xdd\xef\x53\xb2\x7b\x95\x83\x2c\x92\xa6\x28\x7a\x0a\xb0\xeb\xec\xc5\xf6\x81\x96\xc7\x31\x61\x45\x54\x48\xca\xae\x11\xe4\xbf\x2f\x86\xa4\x6d\xb9\x4d\x5c\x14\x08\x2c\x92\xc3\x37\x9c\x79\xf3\x86\xcc\xe5\x27\x64\x69\x96\x2e\xbb\xa6\xc2\x40\xe1\x5b\xe3\xe8\x91\xcc\x10\xe3\x5d\x4b\x83\x21\xac\x33\xaa\x79\xc4\x4b\x96\x26\x86\x5c\x67\x1a\x88\xb8\x45\x64\xe9\xeb\x11\xb9\xc0\x9d\xee\xe6\x35\x9d\x03\x86\x1d\xa7\x38\x89\x1b\x63\xe4\xee\x1c\xec\x5f\xaa\x9c\xfe\xf1\x38\x55\x39\xdc\xa9\xca\x9d\x3d\x4f\x55\x4e\xe9\x46\x9a\xdd\x29\x78\x8e\x5b\xad\x6b\x92\xcd\x39\x70\xdc\x72\x8a\xb4\xf8\xc7\xef\x3c\x07\x0c\x3b\xf6\xb8\x4f\x97\xfc\x5b\xc2\x92\x51\xb2\x2e\x9e\x64\xdb\x32\x60\x80\xa2\xc0\x7e\x32\xcc\xd2\xe4\x8a\x33\xba\xce\xd2\x24\x99\x60\x6b\x94\xa3\xc2\xa7\x38\xc3\xd5\x55\x71\xcc\xa3\x6f\xdf\x50\x15\xcc\x81\x9f\xbe\x49\x35\x11\x19\x4b\x75\xe2\xd6\x17\x21\x3a\xf6\xe3\xbe\x35\xe6\xe3\xad\x21\x91\xbe\x75\xae\x75\x1d\x6c\x91\x9d\x2c\x4d\x4a\x57\x38\xe9\xbd\x64\x69\x32\x41\xb9\x41\x96\x26\x40\x1e\x97\x91\x6f\xe0\x76\x2d\xe9\x25\x38\xa1\x62\x25\x6d\xb1\xa6\xdd\x5f\xc1\xed\x7b\xbb\x1e\xc9\x61\x16\xb7\xbc\x40\x30\xd9\x10\xbd\x4d\x02\x95\x6c\x1a\xed\x30\x27\x58\xb9\xa1\xc5\x85\xc0\x2b\xc8\x18\x6d\x3c\x0e\x50\xcb\x2c\x4d\x66\xc8\xd2\x51\xe4\x5f\x6e\x38\x3b\xe9\x08\x03\xb4\xd2\xad\x10\x26\x45\x11\x07\x43\x94\x61\x50\xb2\x35\x4b\x93\x3c\x4c\xe3\x89\x25\x7f\xb3\x34\x59\xa2\xb4\x5d\x55\x91\xb5\x3e\xdd\xdc\xbb\xd2\x2d\x35\xc5\x52\xd5\x54\x78\x9e\x0c\xca\xfb\x87\x31\x87\x2f\x4a\x5c\x60\xe0\x73\xc2\x46\xd6\x1d\x61\x4d\x3b\x3e\xd3\xaf\x0c\x43\xb2\x6d\x67\x57\x18\x09\xe4\xf7\x0f\x63\x5c\x04\xa6\x6b\xd5\xf8\xba\x04\x59\x30\xa5\x49\xe2\xed\x57\x57\x45\xf4\x9d\xfc\xc1\x13\x27\xe7\x3e\xd1\xf2\x91\x5c\xa1\x3b\xd7\x76\xce\x07\x46\xcf\x58\x74\x2d\xf2\x18\x2c\xb4\x39\x04\x8e\x19\x4a\x7a\xe6\xda\xe5\xce\x13\xdb\xeb\x13\xd0\x73\x83\x09\x8e\xce\x10\x69\x38\xd1\xe4\x76\x45\x3d\x78\xec\xcf\x5f\x40\x83\x5c\xf7\xc8\x23\x87\xc9\x04\x62\xda\x04\x9e\x24\x53\x33\xc4\xc2\xe8\x16\x23\xfc\xcc\x48\x5f\x13\x9f\x83\x00\xbc\x31\x72\xab\x97\xbe\x5a\x25\x23\x7d\x68\x7d\x49\x78\x41\x04\x87\x55\xad\x2d\x45\x65\x7c\xc4\xdf\xd4\xd6\xb2\x62\x7d\x6d\x95\x5b\x61\x2a\xa0\x1a\xb8\x15\xc5\xde\xfe\x3f\x9c\xc6\x9a\xa8\x85\x72\x58\x1a\xfd\x84\xb9\x21\xb9\xe6\x2e\xe9\x5a\x56\xd6\x73\xa7\xb9\x71\xe4\x92\x95\x65\x9d\x09\x92\x32\x18\x42\x4c\xa7\x82\x7f\xf8\x63\x9d\x29\xcc\xfe\xa4\xa9\x08\xeb\xe2\x74\x7d\xc4\xee\xb6\x46\xb6\x85\xf7\x69\x7f\xf6\xc7\x80\xad\x6c\x3d\xaa\xd2\x4d\x25\x5d\x5c\x3c\xce\xa3\xde\x7b\xf5\x1a\xa0\x72\xdf\x83\xe2\x3c\xbd\xdc\xb4\xad\x54\xc6\x7a\x85\x94\x6c\x2c\xae\x99\x98\xa8\xda\x8f\xf8\xd6\x54\x86\xa4\x25\x4f\x83\x93\xf3\x42\x35\x0b\x6a\x58\x58\xb9\x77\xd5\xb5\x28\xae\x9d\x9c\xe3\x4f\xfc\x0f\x5e\x83\xfe\x0d\x49\x7e\xb8\xe4\xca\x85\xb2\xad\x74\xd5\x2a\xb4\x4a\xaf\x98\x87\x6b\xa6\xec\x49\x56\x4c\x9d\x40\x1e\xc2\x61\x97\x91\x1a\x92\x0e\x51\x50\x33\x94\xe3\x9b\x5b\x7f\x94\x98\x36\x02\x07\xf0\xf8\xe6\x16\x22\xf4\xca\x71\x95\xc3\x0d\x79\x4e\x50\xae\x11\xc7\xc5\x75\xbe\x46\xb9\x61\x21\xe5\x1b\xec\x23\x44\xe9\x03\xf3\x3d\x7b\xf4\x0c\xef\x97\xc3\x3a\x9c\x14\x18\xc8\x37\x51\x78\x1e\x80\x13\xfb\xba\xaf\x88\x7e\x35\x8f\x7b\x04\x2e\x0e\x47\xf8\xee\xf5\xf7\x00\xc9\x6a\xc5\x77\xe3\x5b\x34\x17\x07\x9a\x47\x59\x9a\x1c\x0b\xcc\x5d\x15\xea\xcb\x23\x2e\x2f\x57\x97\x6a\x7a\x7a\xaf\xba\x67\x2a\xf8\x5b\x35\x38\x57\xec\x73\x0a\xfa\x95\x10\xb8\xb6\x2f\x7d\x76\xf2\x90\xcd\x04\x25\xbd\xc1\xb6\xaf\x06\xf1\xdf\xa1\x94\x95\xac\xeb\x40\xeb\x86\x2a\xcf\x2a\xfb\xc4\x6b\x0f\x77\x9e\x5f\xf4\x5b\x88\xdf\xd2\xc0\x30\x8f\x7c\x03\x5d\xc7\xa8\x7d\x2b\x06\x72\x4f\xd3\x19\x1d\xe1\x71\x25\x78\x88\xdd\x3c\x7c\x4f\x21\xef\x3b\x44\xaf\xa7\xc3\x03\x1e\xbb\x3a\x4c\x8a\x02\x18\xe2\xb7\x02\xf3\x6f\x79\x70\xe2\x87\xc1\xc5\x24\x28\x86\x15\xd9\x62\x02\xe1\x04\x66\xfc\x5d\xf2\x57\x2d\xf7\xd2\x78\xd3\x73\xb8\x4e\xef\xbe\xdc\x3e\x7c\xcd\xd2\xcb\x4f\x59\x2a\x74\xe7\x2e\xdc\x77\x27\xa0\x9e\x5a\x6d\x1c\xca\x05\xef\x39\x2e\xe7\x8b\xde\xbb\xec\x4d\xe3\xfb\xbb\xfb\x12\x37\x8b\x05\x1c\x59\x67\x3f\x7c\x10\x68\x8d\x6a\x5c\xdd\x1c\x8c\x9f\x75\x63\xd5\x82\x0c\xec\x56\xb9\x6a\xc5\x87\x73\xfb\x58\xbe\xa7\x3b\x4b\xa8\x8c\x72\x73\xe5\xe0\x0c\x91\xed\xc1\xf9\x3f\xb1\x8f\xf8\xfa\x70\xfb\xe5\x2e\x4b\xff\x0b\x00\x00\xff\xff\x80\xeb\xb1\x62\xf6\x0a\x00\x00")

func scriptsSavingPiscBytes() ([]byte, error) {
	return bindataRead(
		_scriptsSavingPisc,
		"scripts/saving.pisc",
	)
}

func scriptsSavingPisc() (*asset, error) {
	bytes, err := scriptsSavingPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "scripts/saving.pisc", size: 2806, mode: os.FileMode(436), modTime: time.Unix(1506683130, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _scriptsShipsPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x56\x4d\x6f\xdc\x36\x10\x3d\x5b\x80\xfe\xc3\x03\x12\xa0\xb6\xb1\x6b\xc7\x75\x4f\xea\x22\x45\xea\x24\x68\x80\xe4\xd2\x04\xc8\xa1\xe8\x61\x24\x8e\x24\x76\x25\x52\xe5\x50\xbb\x56\x8b\xfe\xf7\x62\x48\x6d\xec\x24\x6d\x81\xc2\x30\x56\x22\xe7\xe3\x71\xe6\xcd\xa3\x9e\xe0\x63\x4f\x11\x56\x10\x7b\xc6\xe8\x0d\x0f\x68\x7d\x80\xf4\x76\x12\x74\xde\xba\x0e\xd1\xa3\xe6\x1f\xca\xa2\x2c\x9e\xe0\x2d\x39\x46\x5c\x26\x16\x34\xe4\x50\x33\x6e\xe0\xdb\xe4\xfc\x1d\x46\xfa\xcd\x87\xbc\x9b\xad\x9f\x61\x8b\x1f\x49\x6c\x53\xe1\x8e\x1c\x1a\x0a\x61\x41\xad\x0b\xfa\xdc\x79\xb5\xb9\xc1\x16\x2f\x29\xd2\x63\x13\x43\x91\x34\xec\x81\x82\xf5\xb3\x60\x6f\x9d\x91\x8d\xa2\x0c\x64\x2c\x45\xeb\x9d\x22\xe4\xc1\xb0\xb9\xc2\x0b\x34\xbe\xd9\x4f\x36\xa2\x27\xc1\x4d\xf6\x96\xc1\x47\xd4\x0b\x0c\xb7\x34\x0f\x51\x33\x7d\x8b\x2d\x7e\x62\x3a\x2c\xff\x82\x66\x03\x1f\xd0\x33\x1d\x2c\x07\x74\xde\x1b\x81\xba\xdd\x62\x8b\xd7\x81\x3a\x3b\x70\x85\x37\x82\x7a\xb6\x43\xc4\xd1\xc6\x1e\xd2\xfb\x66\x0f\xaa\xc5\x87\x5a\x14\x54\xf4\xa0\x61\xf0\x47\xc4\x40\x4e\x26\x1f\xa2\x1e\xa3\xcd\xde\x39\xa6\x56\xa6\xc2\x6e\x20\xc7\xcf\x71\x0e\xb1\x7f\xe4\x82\x62\xbb\x85\x2e\xe2\x02\x65\x71\x56\xa5\xa5\x4a\x77\xcb\xe2\xec\x4f\x3c\x4d\x76\xbf\xa0\xc5\xaf\x88\x76\x64\xc1\x5f\xa8\xd6\x1a\x9e\xed\x8c\x6d\xe2\xf3\xb2\x38\x3b\x7b\x9a\x96\xb0\xdb\x6d\x4f\x7b\x67\x4f\x53\xa4\xdd\x6e\xab\xbf\x65\xf1\xfd\x9a\x5f\x1b\xac\xf9\x1d\x8d\x9c\xf2\x8a\x02\xd0\xd5\x15\x40\x5e\xab\x74\xff\xf3\x14\x79\x63\xb7\xdb\xa6\x87\xb4\x94\x82\xec\x76\xdb\x6c\x9c\x52\x5c\x5f\x96\xc5\x2b\x6a\xfa\x1c\xd2\x9e\xca\xe6\xe7\x54\x91\xd5\xf5\xc1\x40\x3b\x47\x30\xc1\x3b\xc6\xe0\xc9\xa8\x5d\xe3\x5d\x0c\x7e\x18\xd8\x68\x23\x95\x62\x77\xb9\xcf\x65\xf1\x26\x53\xee\xd4\x77\x2b\x30\x2c\x31\xf8\x85\xcd\x06\x8b\x9f\xd1\x29\x22\x2b\xf0\x07\x0e\x57\x28\x8b\x77\x5e\xe2\x4a\x6a\xe3\xdd\x37\x11\x31\x2c\xda\xad\xd5\x0d\xf4\xc0\x21\x7f\xe4\x03\x87\x0d\xca\x62\x0a\xdc\x72\x08\xeb\x0c\x0c\x4c\x07\x4e\xc1\x7b\x1e\xa6\x81\x45\x94\x2f\x0d\x4d\x71\x0e\x69\xfd\x4a\xcf\xfd\x3e\xe5\xd0\xd9\xe8\xd5\xfc\xe6\xfe\x56\x7d\x6f\xef\x6f\x9e\xc1\x3a\x18\x3b\xb2\x53\xfa\xca\x06\xe4\x0c\x5a\x9b\x8e\x97\xc8\x64\x6c\xdb\x72\x60\x17\x21\xdc\xa9\x59\xa2\xca\xdb\x54\x6d\x8d\xd7\x78\x3d\x92\xc3\x6d\xe2\x8c\x80\x04\x47\x1e\x86\x0d\xde\x8f\xa4\x3f\xef\xd8\xd8\x31\x45\x7d\x4b\xa1\xe3\x04\x26\x07\x5a\x07\xf6\xfc\x12\xd6\x19\xdb\x50\x64\x8c\xe4\x0c\x45\x1f\x96\x53\xb2\x8b\x0a\x29\x9d\x6d\x79\x2b\xf3\xa4\xd4\xbd\x5e\xcb\x7d\xa9\xb5\x78\xe5\x3a\xeb\x58\x2e\x37\x65\xf1\x7a\xe6\x01\x1f\xc8\xed\x2f\xcb\x22\xf3\x6d\xf2\xa6\x2c\xee\x02\x1f\xf1\xfb\x4c\x21\x72\xc0\xf9\x0d\x1a\x7d\x1f\x79\xac\x39\x60\xe2\x00\xe1\x46\x4f\x7e\x51\x16\xb9\xcd\x93\x37\x6a\xb6\xbe\x7c\x66\x50\x16\x1f\x7a\x0e\x0c\xd2\xff\x41\x34\x81\x88\xad\x07\x86\xf3\x6e\x2b\x51\xc1\x07\xf3\xa9\x4e\x55\x42\xee\x5d\x87\x40\xae\x63\x08\x3b\xf1\x41\x70\x0e\xbe\x8f\x41\x5b\x3b\xd6\x14\x11\xfc\xec\x0c\x2e\xca\xe2\x4e\x89\x45\xb5\x96\x2a\x81\x40\x4b\x01\x35\x47\x05\xde\xf4\xe4\x1a\x56\x8e\x4e\x24\xa2\xad\x27\x07\xeb\x64\xca\xe0\xd4\x5d\x5b\x0c\x69\xc8\x39\x3d\x68\x9a\x77\x49\xbc\x88\x1e\xc2\xda\x23\x7d\x48\x46\x2b\xc0\x8b\xb2\xf8\xe0\x8f\x98\xa8\xd9\x53\xc7\x5f\xfa\xf4\x34\x0f\x99\x9b\xd7\x31\x90\x1d\x38\x08\x28\x81\xbd\x78\xd4\x44\xc9\x84\x3a\x50\x58\x14\xd5\xc0\x07\x1e\x44\x71\x52\x18\x7d\xa8\xca\x62\xf0\xc7\x2c\x6c\x35\xa3\x0e\x4c\x4d\x9f\x07\x87\xdc\x02\x8a\xb1\xd9\x97\xc5\xc8\xc6\xce\x63\x85\x8f\x76\x18\x12\xe9\x52\x29\x41\x18\xad\xb3\xe3\x3c\x6a\xb8\x1b\xc8\xdc\x34\x2c\xd2\xce\x83\xfa\x51\xb3\xbf\x2a\x8b\x3e\xeb\xe6\x7f\x39\xde\x7e\xed\x28\x69\x24\x5e\x6a\x87\xe5\x11\x7f\xb3\xe6\x26\x52\xa6\xd6\xbd\x48\xc6\x15\xde\xf7\xde\x47\x81\xc4\xb9\x6d\xcb\xe2\x25\xb7\xec\x1a\xae\x90\x1e\x8c\x80\x3a\xb2\x4e\xe2\x1a\x3b\x13\x47\x36\xe0\x2c\x22\x3e\x6a\xef\x42\xc7\x82\x79\x52\x64\xdc\xd1\xb6\x66\x1a\xcb\xe2\x8d\x77\x95\x5a\x84\x28\x5b\x15\x96\xec\xa9\xa3\x72\xed\x3f\xd1\x2e\x4d\xdb\x0b\x73\xd0\xf6\x9b\xd5\xa4\xc2\xcf\x64\x0d\x07\xdd\xca\x4f\x27\x5f\xe3\x41\xe9\x7a\xe2\xb8\xe4\x0b\xd0\xba\x4e\x36\x30\x3c\xb1\x33\xda\x20\xef\x70\xec\x6d\xd3\x67\x71\xf7\xed\x89\x0c\x2a\x5c\x8b\xce\x9f\x32\x41\xbb\xaf\x7a\x76\x52\xb4\x45\x5f\xf1\xd9\x10\xae\xba\xb4\xc9\xdb\x91\xf6\x9c\x44\x2d\xe9\x9f\x92\x46\x87\x33\x27\x5a\x59\x65\x63\xbe\xb1\x21\x03\x1d\xd8\xe8\xcb\xe2\xe7\x20\xe9\x5e\x7f\xb8\x97\x56\x8e\x2e\x14\xf2\x9d\xf4\x18\x00\x81\xd3\xb8\xeb\x78\xa4\xc4\xf0\xd3\xe4\xd3\x34\x24\x5e\x1f\x95\x06\x29\x83\x3f\x6a\xb1\xfc\xd1\x7d\x1d\x22\xc9\x44\x24\xb7\xdf\x28\xb2\x14\xa5\xd5\x25\xeb\x10\xf5\x9b\x43\xb7\xd2\x87\x87\x42\x52\xe5\xfb\x04\x35\x27\x71\x7c\x1f\x11\xe7\xf0\x0f\xa1\xb3\xea\xd4\xb4\x64\x70\xf9\xf5\x14\xb7\xa6\xe5\x21\x2c\xfd\xaf\xb0\x81\x8f\xdb\x55\xc1\xd6\xc8\x8f\x34\xec\x14\xff\x24\x71\x56\xc0\x36\xf6\x1c\xa0\x32\x98\x6e\x01\xa3\x37\xc2\x3e\x69\xfa\x17\x54\xb0\x6d\xbe\x39\x74\x84\x65\xa2\x26\xb5\x3e\x7f\x81\xc4\x9e\x47\xf5\x73\x3e\xa6\x71\xf9\xfa\xef\xef\x00\x00\x00\xff\xff\x2f\xdf\x8e\xdf\xa5\x09\x00\x00")

func scriptsShipsPiscBytes() ([]byte, error) {
	return bindataRead(
		_scriptsShipsPisc,
		"scripts/ships.pisc",
	)
}

func scriptsShipsPisc() (*asset, error) {
	bytes, err := scriptsShipsPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "scripts/ships.pisc", size: 2469, mode: os.FileMode(436), modTime: time.Unix(1504845781, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _scriptsTerm_posixPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x94\x41\x8f\xda\x30\x10\x85\xef\xf9\x15\x4f\xde\x3d\x90\x43\xa4\x0d\x78\xa1\x0d\x42\x7b\x40\xad\xaa\x0a\x71\xd9\x23\xcb\x21\x98\x81\x8d\x08\x31\x72\x4c\x51\x54\xf5\xbf\x57\xb6\xe9\x3a\xae\x61\x25\x24\x3c\xf3\x3e\x8f\x67\xde\x48\x29\x20\x64\x2d\x55\x26\xe4\x96\x30\x80\xfd\xcb\xb2\x6b\x92\x5a\x81\x14\x85\x4d\x3e\xfe\xc6\xb7\xd7\x39\xd8\x8a\xe1\xd1\x26\xd8\x91\xe1\x0f\xa6\x49\xf2\x80\x79\x4d\xa5\x42\x2b\x14\x51\x83\xb2\xd9\xe2\x28\x7f\x11\xc4\x59\xb5\x52\x41\x4b\x68\x79\xca\x6a\xda\xe9\xa4\xc0\x7c\xf1\x8a\x81\x79\x21\xf5\x15\x87\x3f\xd9\xf5\x34\xfd\x61\x6a\x9e\x54\xd5\x68\x4c\x93\x02\xcb\x85\x83\x97\x0b\xa4\x60\x6f\xea\xad\x61\x2e\x1f\x08\xcb\x85\xf9\xd9\x4e\xbe\x4b\x45\x99\x6d\xbe\x4d\x0a\x6c\xea\x52\x1c\x1c\x48\xad\xc8\x5c\x98\x82\x8d\x9e\x58\x7f\x6c\x53\x51\xd1\xd6\x83\x26\x30\x58\x1e\x61\x7b\x3b\xe2\x07\xe8\x42\x83\x0e\x23\xb4\xa3\xba\x96\x17\xcf\x5e\x63\x03\x8f\x22\x78\x53\x9f\xa9\xdf\xe8\x99\x2c\xc8\x23\xf0\x58\xee\xa9\xd1\xa5\x67\xff\x25\x0c\xfe\x1c\xe1\xa2\x2b\x7b\xed\xda\xc8\x80\xe3\x08\xbc\xbc\x57\xba\xd7\x81\x0b\x0d\x3a\xf9\x0f\x4d\x1e\xb0\x29\xc5\xa1\x67\xb2\x89\xee\x39\xcd\x63\xa7\x2d\x7f\xcb\x6e\x1e\xdb\x6d\xd9\x7b\x9e\xf3\xd8\x73\xcb\xdf\x37\x9e\xdf\x30\xde\x75\x7f\xcb\x7d\x1e\xbb\x6f\xe9\xcf\x56\xc0\xe3\x15\x38\xb7\x6e\xee\x81\xc7\x7b\xb0\xf4\xbd\x65\xf0\x68\x19\x05\xaa\x36\xa3\x46\x93\x7a\xc1\x00\x07\x73\xe3\x05\x29\xf2\x11\x66\xb6\x5c\xd5\x66\xa5\x52\xf2\x12\xa8\xc3\x09\x66\x58\x61\x4f\xfa\x40\x1d\xbe\xe6\x98\x61\x8d\x15\x76\x58\xa3\xda\x7d\x54\x3d\x9f\x82\x4b\xe3\x67\x5f\x72\x2b\x2f\x4d\x28\x8e\xbd\xa8\xaa\xfd\xbb\x0e\xd5\x89\x57\xcd\x67\x20\x14\xbf\x58\xd1\xa9\x5d\x38\xc5\x30\xf7\x17\xc3\x07\xf3\xfc\xc9\x4b\x5d\xa8\x61\x75\x2d\xb5\x76\xa7\xc6\x9c\x36\x15\xa4\xc2\x34\xf9\x1b\x00\x00\xff\xff\x61\x7b\xb6\x42\xf0\x04\x00\x00")

func scriptsTerm_posixPiscBytes() ([]byte, error) {
	return bindataRead(
		_scriptsTerm_posixPisc,
		"scripts/term_posix.pisc",
	)
}

func scriptsTerm_posixPisc() (*asset, error) {
	bytes, err := scriptsTerm_posixPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "scripts/term_posix.pisc", size: 1264, mode: os.FileMode(436), modTime: time.Unix(1506682689, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _scriptsTerm_winPisc = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x93\x41\x8b\xdb\x30\x10\x85\xef\xfe\x15\x0f\xed\x1e\xe2\x83\x61\xed\x68\x9b\xe2\xa5\xec\x21\xb4\x94\x12\x72\xd9\xe3\x6e\x0f\x8e\x32\x4d\x4c\x1c\x2b\xc8\x4a\x43\x28\xfd\xef\x65\xa4\xb4\xb2\xaa\x64\x21\x10\xcd\xbc\x4f\x33\xa3\x37\xb8\x86\xd2\x9d\x36\x85\xd2\x6b\xc2\x04\xee\xaf\x28\x2e\x49\x1a\x14\x72\xd4\x2e\x79\xff\x0b\x9f\x5f\xe6\x10\xaf\x02\xf7\x2e\x21\xf6\x02\xbf\xf1\x94\x65\x77\x98\x77\xd4\x18\x0c\xca\x10\xf5\x68\xfa\x35\xf6\xfa\x27\x41\x1d\xcd\xa0\x0d\xac\x86\xd5\x87\xa2\xa3\x1f\x36\xab\x31\x5f\xbc\x60\xc2\x1d\xf2\x50\xb1\xfa\x26\x2e\xa7\xaf\x5c\xf2\x60\xda\xde\xe2\x29\xab\xb1\x5c\x78\x76\xb9\x40\x0e\xf1\x66\xde\x7a\xe1\xf3\x91\xb0\x5c\xf0\xcf\x0d\xf2\x45\x1b\x2a\xdc\xec\x43\x56\x63\xd5\x35\x6a\xe7\x41\x1a\x54\xe1\xc3\x1c\x62\xfa\x20\xc6\xaf\xe6\x8a\x86\xd6\x01\xe4\x80\xb1\x32\xc1\x36\xee\x85\xff\x40\x1f\x32\x5a\x25\xe8\x99\xba\x4e\x9f\x02\x7b\x89\x19\x9e\x26\xf0\xaa\x3b\xd2\x78\xd0\x23\x39\x50\x26\xe0\xbe\xd9\x50\x6f\x9b\xc0\xfe\x4d\x30\xfe\x98\xe0\xea\xdc\x8c\xc6\x75\x11\x83\x1f\x12\xf0\xb4\x6d\xed\x68\x02\x1f\x32\x3a\xfb\x0f\xcd\xee\xb0\x6a\xd4\x6e\x64\x32\x47\xb7\x9c\x96\xa9\xd3\x8e\xbf\x66\xb7\x4c\xed\x76\xec\x2d\xcf\x65\xea\xb9\xe3\x6f\x1b\x2f\xaf\x18\xef\xa7\xbf\xe6\xbe\x4c\xdd\x77\xf4\x7b\x2b\x90\xe9\x0a\xbc\x5b\x57\xf7\x20\xd3\x3d\x38\xfa\xd6\x32\x64\xb2\x8c\x1a\xed\x50\x50\x6f\xc9\x3c\x63\x82\x1d\xdf\x78\x46\x8e\x72\x8a\x4f\xae\x5c\x3b\x14\x8d\x31\xfa\x14\xa9\x55\x25\x9d\xec\xf5\xe3\x21\x12\x67\x55\xb8\xba\xd6\xa7\x3e\x12\x3f\x3e\x04\xd1\xb4\x9b\xad\x8d\xaf\xce\x82\xca\x5f\x7b\x2c\x3e\x8e\x7a\x9e\xe3\x69\xab\x32\x5c\x8c\x1b\x96\xe5\xa8\xe3\x39\xd6\xf0\x7a\x29\xf5\xdd\x9f\x7a\x3e\xad\x5a\x68\xc3\x7d\xfe\x04\x00\x00\xff\xff\x86\xb3\x64\xa9\xd8\x04\x00\x00")

func scriptsTerm_winPiscBytes() ([]byte, error) {
	return bindataRead(
		_scriptsTerm_winPisc,
		"scripts/term_win.pisc",
	)
}

func scriptsTerm_winPisc() (*asset, error) {
	bytes, err := scriptsTerm_winPiscBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "scripts/term_win.pisc", size: 1240, mode: os.FileMode(436), modTime: time.Unix(1506682723, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

// Asset loads and returns the asset for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func Asset(name string) ([]byte, error) {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[cannonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
		}
		return a.bytes, nil
	}
	return nil, fmt.Errorf("Asset %s not found", name)
}

// MustAsset is like Asset but panics when Asset would return an error.
// It simplifies safe initialization of global variables.
func MustAsset(name string) []byte {
	a, err := Asset(name)
	if err != nil {
		panic("asset: Asset(" + name + "): " + err.Error())
	}

	return a
}

// AssetInfo loads and returns the asset info for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func AssetInfo(name string) (os.FileInfo, error) {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[cannonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
		}
		return a.info, nil
	}
	return nil, fmt.Errorf("AssetInfo %s not found", name)
}

// AssetNames returns the names of the assets.
func AssetNames() []string {
	names := make([]string, 0, len(_bindata))
	for name := range _bindata {
		names = append(names, name)
	}
	return names
}

// _bindata is a table, holding each asset generator, mapped to its name.
var _bindata = map[string]func() (*asset, error){
	"scripts/backstory.txt": scriptsBackstoryTxt,
	"scripts/gamesave.pisc": scriptsGamesavePisc,
	"scripts/intro.pisc": scriptsIntroPisc,
	"scripts/lib.pisc": scriptsLibPisc,
	"scripts/main.pisc": scriptsMainPisc,
	"scripts/map.pisc": scriptsMapPisc,
	"scripts/markets.pisc": scriptsMarketsPisc,
	"scripts/saving.pisc": scriptsSavingPisc,
	"scripts/ships.pisc": scriptsShipsPisc,
	"scripts/term_posix.pisc": scriptsTerm_posixPisc,
	"scripts/term_win.pisc": scriptsTerm_winPisc,
}

// AssetDir returns the file names below a certain
// directory embedded in the file by go-bindata.
// For example if you run go-bindata on data/... and data contains the
// following hierarchy:
//     data/
//       foo.txt
//       img/
//         a.png
//         b.png
// then AssetDir("data") would return []string{"foo.txt", "img"}
// AssetDir("data/img") would return []string{"a.png", "b.png"}
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
// AssetDir("") will return []string{"data"}.
func AssetDir(name string) ([]string, error) {
	node := _bintree
	if len(name) != 0 {
		cannonicalName := strings.Replace(name, "\\", "/", -1)
		pathList := strings.Split(cannonicalName, "/")
		for _, p := range pathList {
			node = node.Children[p]
			if node == nil {
				return nil, fmt.Errorf("Asset %s not found", name)
			}
		}
	}
	if node.Func != nil {
		return nil, fmt.Errorf("Asset %s not found", name)
	}
	rv := make([]string, 0, len(node.Children))
	for childName := range node.Children {
		rv = append(rv, childName)
	}
	return rv, nil
}

type bintree struct {
	Func     func() (*asset, error)
	Children map[string]*bintree
}
var _bintree = &bintree{nil, map[string]*bintree{
	"scripts": &bintree{nil, map[string]*bintree{
		"backstory.txt": &bintree{scriptsBackstoryTxt, map[string]*bintree{}},
		"gamesave.pisc": &bintree{scriptsGamesavePisc, map[string]*bintree{}},
		"intro.pisc": &bintree{scriptsIntroPisc, map[string]*bintree{}},
		"lib.pisc": &bintree{scriptsLibPisc, map[string]*bintree{}},
		"main.pisc": &bintree{scriptsMainPisc, map[string]*bintree{}},
		"map.pisc": &bintree{scriptsMapPisc, map[string]*bintree{}},
		"markets.pisc": &bintree{scriptsMarketsPisc, map[string]*bintree{}},
		"saving.pisc": &bintree{scriptsSavingPisc, map[string]*bintree{}},
		"ships.pisc": &bintree{scriptsShipsPisc, map[string]*bintree{}},
		"term_posix.pisc": &bintree{scriptsTerm_posixPisc, map[string]*bintree{}},
		"term_win.pisc": &bintree{scriptsTerm_winPisc, map[string]*bintree{}},
	}},
}}

// RestoreAsset restores an asset under the given directory
func RestoreAsset(dir, name string) error {
	data, err := Asset(name)
	if err != nil {
		return err
	}
	info, err := AssetInfo(name)
	if err != nil {
		return err
	}
	err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
	if err != nil {
		return err
	}
	err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
	if err != nil {
		return err
	}
	err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
	if err != nil {
		return err
	}
	return nil
}

// RestoreAssets restores an asset under the given directory recursively
func RestoreAssets(dir, name string) error {
	children, err := AssetDir(name)
	// File
	if err != nil {
		return RestoreAsset(dir, name)
	}
	// Dir
	for _, child := range children {
		err = RestoreAssets(dir, filepath.Join(name, child))
		if err != nil {
			return err
		}
	}
	return nil
}

func _filePath(dir, name string) string {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
}

Added cmd/FinalFrontier/build.sh.

































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#! /bin/bash
function older_than() {
  local target="$1"
  shift
  if [ ! -e "$target" ]
  then
    echo "updating $target" >&2
    return 0  # success
  fi
  local f
  for f in "$@"
  do
    if [ "$f" -nt "$target" ]
    then
      echo "updating $target" >&2
      return 0  # success
    fi
  done
  return 1  # failure
}

# For now, force re-packing of bindata
rm bindata.go

older_than bindata.go strings/*.pisc && {
  echo "Packing scripts"
  go-bindata -pkg main -o bindata.go scripts/...
}

case "$1" in
  build)
  older_than game.exe *.go && {
    go build -o game.exe
  }
  ;;
  run)
  older_than game.exe main.go finalFrontier.go && {
    rm game.exe
    go build -o game.exe
  }
  ./game.exe
  ;;
esac
  




Added cmd/FinalFrontier/finalFrontier.go.

































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package main

import (
	"os"
	"pisc"
)

func loadGameScript(m *pisc.Machine) error {
	assetKey := m.PopValue().String()
	data, err := Asset(string(assetKey))
	if err != nil {
		return err
	}
	err = m.ExecuteString(string(data), pisc.CodePosition{Source: "file:" + string(assetKey)})
	if err != nil {
		return err
	}
	return nil
}

func getTermMode(m *pisc.Machine) error {
	m.PushValue(pisc.String(mode))
	return nil
}

func exit(m *pisc.Machine) error {
	de_init_term()
	os.Exit(0)
	return nil
}

var ModFinalFrontier = pisc.Module{
	Author:    "Andrew Owen",
	Name:      "ConsoleIO",
	License:   "MIT",
	DocString: "Provides basic OS-interaction words",
	Load:      loadFinalFrontier,
}

func loadFinalFrontier(m *pisc.Machine) error {
	init_term()
	m.AddGoWord("term-mode", "( -- mode )", getTermMode)
	m.AddGoWord("getkey", "( -- keyval )", getch)
	m.AddGoWord("game-script", "( filename -- ? ) ", loadGameScript)
	m.AddGoWord("quit-game", "( -- )", exit)
    os_overload(m)
	return nil
}

Added cmd/FinalFrontier/init_posix.go.



























































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// +build !windows

package main

import (
	"fmt"
	"github.com/pkg/term"
	"pisc"
)

var mode = "POSIX"

var pty *term.Term
var buf = make([]byte, 1)

func init_term() error {
	var err error
	pty, err = term.Open("/dev/tty", term.RawMode)
	if err != nil {
		return err
	}
	return nil
}

func de_init_term() error {
	return pty.Restore()
}

func os_overload(m *pisc.Machine) error {
    return nil
}

func getch(m *pisc.Machine) error {
	num, err := pty.Read(buf)

	if err != nil {
		return err
	}
	if num != 1 {
		return fmt.Errorf("Didn't read at least 1 byte from the pty!")
	}

	m.PushValue(pisc.Integer(int(buf[0])))
	return nil
}

Added cmd/FinalFrontier/init_windows.go.



























































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// +build windows

package main

import (
	"pisc"
    "github.com/mattn/go-colorable"
    "io"
    "fmt"
)

//#include <conio.h>
import "C"

var mode = "WINDOWS"
var writer io.Writer 

func init_term() error {
    writer = colorable.NewColorableStdout()
	return nil
	// stub, so that compilation doesn't fail
}

func de_init_term() error {
	return nil
}

func printWithAnsiColor(m *pisc.Machine) error {
    str := m.PopValue().(pisc.String)
    _, err := fmt.Fprint(writer, str)
    return err
}

func os_overload(m *pisc.Machine) error {
    // Overwritting priv_puts to handle ANSI color codes on windows
    m.AddGoWord("priv_puts", "( str -- )", printWithAnsiColor)
    return nil
}


func getch(m *pisc.Machine) error {
	char := C.getch()
	m.PushValue(pisc.Integer(char))
    return nil
}

Added cmd/FinalFrontier/main.go.























































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package main

import (
	"fmt"
	"pisc"
)

func main() {
	m := &pisc.Machine{
		Values:               make([]pisc.StackEntry, 0),
		DefinedWords:         make(map[string]*pisc.CodeQuotation),
		DefinedStackComments: make(map[string]string),
		PredefinedWords:      make(map[string]pisc.GoWord),
		PrefixWords:          make(map[string]*pisc.CodeQuotation),
		HelpDocs:             make(map[string]string),
	}

	m.LoadModules(append(
		pisc.StandardModules,
		pisc.ModDebugCore,
		pisc.ModIOCore,
		ModFinalFrontier)...)
	err := m.ExecuteString(`"scripts/main.pisc" game-script`, pisc.CodePosition{Source: "main.go"})
	if err != nil {
		fmt.Println(err.Error())
	}
}

Added cmd/FinalFrontier/scripts/backstory.txt.



>
1
Explorers are even now mapping out the various lanes of slipspace. Most people seem to be content to stay on the planet of their birth, as both subspace and slipspace are treacherous places. Pirates, freighters, and smugglers alike vie for fattest, quickest buck. Planetary fleets mostly protect their homes. There used to be a system-wise empire around Sol, but logistics makes a galaxy-wide one near-impossible. Even if galactic rule was possible, the early slipspace instabilities spread people far and wide throughout space. This factured the society left behind. It took decades for a slipspace drive to be stable enough for more experimental use. It was only with the aging and death of those who witnessed the slipspace fracturing that the slipspace came to be accepted as a means of travel. The last 15 years have shown wondrous things.

Added cmd/FinalFrontier/scripts/gamesave.pisc.

Added cmd/FinalFrontier/scripts/intro.pisc.







































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

: intro ( game -- next )
:game
CLS

"Space, the Final Frontier

The stars have beckoned you, even when you were but a wee child.
It's a risky life, spacefaring, what with pirates, smugglers, and planetary police
in a constant struggle, not to mention asteriods, navigation difficulty, and the utter
void of space. You've prepared for this day. Your reading time was dedicated to charts
and ship operation, your spare time to training in simulators, and your savings
have amounted to $5000. Will you explore the stars? (Y/n)
" println

0 :k [ $k is-yn? not ] [ getkey :k ] while

$k is-n? [ 
	"Though, perhaps the stars are for another time. After all, they won't be going anywhere" println
	wait-enter
		[ opening-menu ] 
] when
$k is-y? [ [ pick-ship ] ] when
;

: pick-ship ( game -- next ) 
	CLS
	" You're going to need a ship before you can travel through space, however. " println
	wait-enter
	[ quit-game ]
;




Added cmd/FinalFrontier/scripts/lib.pisc.



































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
term-mode "WINDOWS" eq [ 
    "scripts\\term_win.pisc" game-script
] when

term-mode "POSIX" eq [ 
    "scripts\\term_posix.pisc" game-script
] when

: wait-enter ( -- ) 
	[ getkey is-enter? ] [ ] while
;

: <up-down-menu> ( num-opts -- obj ) 
	:num
	0 :m-idx
	t :choosing
	[ 
		getkey :k
		$k is-enter? [ f :choosing ] when 
		$k is-arrow? [
			getkey :dir
			$dir is-up? [ --m-idx ] when
			$dir is-down? [ ++m-idx ] when
			$m-idx $num mod :m-idx
			$m-idx 0 < [ $num 1 - :m-idx ] when
		] when
	] :check
	<dict> 
	[ $choosing ] <<-done?
	[ $m-idx ] <<-chosen-idx
	[ check ] <<-proc-key
	[ $m-idx = [ back-white ] when ] <<-highlight
;

Added cmd/FinalFrontier/scripts/main.pisc.

















































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# This is final frontier, a game inspiredc by space, tradewinds, and a little bit of lane-based combat
/*
IDEAS: Maybe find some way to integrate long time travel into the culture of spacefarers
*/

"scripts\\lib.pisc" game-script
"scripts\\markets.pisc" game-script
"scripts\\intro.pisc" game-script
"scripts\\saving.pisc" game-script

: opening-menu ( game -- next )
	:game
	4 <up-down-menu> :m
	$m ->highlight :MENU
 	[ back-black ] :CHOICE
 	CHOICE print

 	[ $m .done? ]
 	[
		CLS
		NNL
		${
			cyan "Final Frontier" NNL
			red 
			"  " 0 MENU "New Game" CHOICE NNL
			"  " 1 MENU "Load Game" CHOICE NNL
			"  " 2 MENU "Options" CHOICE NNL
			"  " 3 MENU "Return to real life" CHOICE NNL
			white "Up/Down to choose, Enter to confirm " NL
		} print

		$m .proc-key
	] while
	{ 
		 [ intro ] 
		 [ load-game ]
		 [ options ]
		 [ exit-game ]
	} $m .chosen-idx vec-at 
;

: load-game ( game --  ) :game CLS ${ "TODO: Implement game-loads" NL } println [ " " drop ] ;
: save-game ( game -- ) :game CLS ${ "TODO: Implement game-saves" NL } println [ " " drop ] ;
: options ( -- ) :game CLS ${ "TODO: Implement game options" NL } println [ " " drop ] ;
: exit-game ( game -- ) save-game quit-game ;

: main ( -- )
    <dict> opening-menu :curr-state
    <dict> :game
    [ t ] [ $game $curr-state call :curr-state ] while
    getkey
    back-black println CLS 
    quit-game
;

main

Added cmd/FinalFrontier/scripts/map.pisc.



















































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*

Render a galatic map from here

*/

: star-map ( game -- next ) 
	
;


: show-world ( planet game -- next ) 
	:game :planet

	$planet ->description println

	$planet ->locations dup dup [ ->name ] vec-map :locs [ ->command ] vec-map :choices
	$locs len 1 - <up-down-menu> :m

	$m ->highlight :MENU
 	[ back-black ] :CHOICE


	[ $m .done? ]
	# We're re-building the menu each time with a rest to $i
	[ 
		CLS
		CHOICE println
		0 :i
		${
			$planet ->name NNL
			red
			$locs [ :l
				$i MENU "  " $l CHOICE NNL
			] vec-each
			white "Up/down to select, enter to choose" NL
		}
	] while

	$choices $m .chosen-idx vec-at
; 

Added cmd/FinalFrontier/scripts/markets.pisc.



















































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 

/*

What is the economy going to be like in this game?

## Basic Goods

Water
Food
Fuel
Ore/Scrap

## Data Capsules

Programs
Videos
Games
Maps/Charts

## Heavy Goods

Robots
Munitions
Build-Crete
Enviro-shielding

## Fragile Goods

Solar Panels
Computer Chips
Documents
Sculptures

*/

: show-market ( -- ) ;

/*
World archetypes

Colony:
Exports basic goods, with a random chance of exporting one other type of good at a low price

Monastic Technocracy:
Imports basic goods, exports data capsules of various types

Corporatist Industocracy:
Imports basic goods, exports heavy goods 

Creatist Fabritocracy:
Imports basic goods, exports Fragile Goods

Beurocratic Metrocracy:
Imports everything, exports power/influence (heh)

*/

Added cmd/FinalFrontier/scripts/saving.pisc.



























































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/* 

func (i Integer) Type() string {
	return "Integer"
}

func (d Double) Type() string {
	return "Double"
}

func (a Array) Type() string {
	return "Vector"
}

func (dict Dict) Type() string {
	return "Dictionary"
}

func (b Boolean) Type() string {
	return "Boolean"
}

func (s String) Type() string {
	return "String"
}

*/

: serial-mapping ( -- mapping )
	<dict>
		[ write-dict ] <<-Dictionary
		[ write-vec ] <<-Vector
		[ write-int ] <<-Integer
		[ write-double ] <<-Double
		[ write-string ] <<-String
		[ write-bool ] <<-Boolean
	:t-table

	[ :v 
	  $t-table $v typeof dict-has-key?
		[ $t-table $v typeof dict-get ]
		[ ${ "Type " $v typeof " cannot be saved." } error ]
	  if
	] 
;

: save-state ( path state -- state ) :state :path
	$state typeof :type
	f :success
	[ $path open-file-writer :OUT
		": . ( dict value key -- dict ) dict-push ;" $OUT .write-line
		<dict> 
			$OUT <<-OUT
			0 <<-tab
	] :get-output
	[ eq dup $success or :success ] :eqn
	$type "Dictionary" eqn [ get-output $state write-dict ] when
	$type "Vector" eqn [ get-output $state write-vec ] when
	$success not
		[ ${ "Cannot write value of type: " $type } error ]
	when	
	$OUT .close
;

# Replace " with \" in the string, to keep it from breaking up
: quote-safe ( str -- str ) "\\" "\\\\" str-replace "\"" "\\\"" str-replace ;
: wrap-quotes ( str -- str ) "\"" swap str-concat "\"" str-concat ;

: write-dict ( ctx dict -- ) 
	:pairs dup :ctx ->OUT :OUT
	# Increase the tab-indent
	$ctx dup ->tab 1 + <-tab 

	serial-mapping :dispatch
	[ $OUT .write-string ] :output
	[ "\t" $ctx ->tab str-repeat output ] :TAB

	"\n" output
	TAB "<dict>" output

	$pairs [ :k $pairs ->$k :v
		$v dispatch :write
		"\n" output TAB "\t" output
		$ctx $v write 
		" " output
		$k quote-safe wrap-quotes output
		" ." output 
	] dict-each-key
	$ctx dup ->tab 1 - <-tab 
;
	
: write-vec ( ctx vec -- )
	:elems dup :ctx ->OUT :OUT
	$ctx dup ->tab 1 + <-tab 
	[ "\t" $ctx ->tab str-repeat output ] :TAB
	serial-mapping :dispatch
	# Increase the tab-indent
	[ $OUT .write-string ] :output

	"{" output 
	$elems [ :e
		" " output
		$ctx $e $e dispatch call 
	] vec-each
	" }" output
	$ctx dup ->tab 1 - <-tab 
;
 

: write-int ( ctx int -- ) >string swap ->OUT .write-string ;
: write-string ( ctx str -- ) quote-safe wrap-quotes swap ->OUT .write-string ; 
: write-double ( ctx double -- ) >string swap ->OUT .write-string ;
: write-bool ( ctx bool --  ) [ :ctx ] dip [ "t" ] [ "f" ] if $ctx ->OUT .write-string ;


# DEBUG
/*
"out.txt" import :d

"out.txt" $d save-state

"TODO: Add tests!!" println
"TODO: Consider switching dicts to use critbit trees" println
*/
# GUBED

Added cmd/FinalFrontier/scripts/ships.pisc.















































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# What is the model for ships going to be?

# Lane types can be 1 of the 4 major types

# 0 - Basic: Can carry basic cargo
# 1 - Data: Can carry data of various kinds, is radiation shielded. A cockpit has 1 data slot by default
# 2 - Heavy: Can carry basic cargo, or heavier goods 
# 3 - Fragile: Is built with shock absorbsion to allow transport of fragile goods

: <lane> ( size type -- lane ) 
	:type :size
	{ $size [ f ] times } :cargo
	<dict>
		$cargo <<-cargo
		$type <<-type
;

: <ship> ( name lanes -- ship ) 
	:lanes :name
	<dict>
		$lanes <<-lanes
		$name <<-name
;

/*
Each ship is built out of lanes
Each ship has a drone loadout controlled by the Cockpit
If the cockpit is destroyed, you game is over. 
Most ships don't try to destroy a cockpit however, 
preferring to leave you helpless or capture you.

Ships can have 1x3 to 3x10 in dimentions, and filled with different segments

Lanes can come in 3 sizes as well, Small, Medim and Large

Segment types (* indicate mandatory segment): 

Life-support/Cockpit*, 
Engines*,
Fuel Tank*
cargo pod
Crew quarter (1 crew member per section)
drone pod (1 drone per section)

There are also possible non-standard segments:

Long range sensors ( extra combat round )
Contraband pod ( far better chance of passing an inspection )
Ship scanner (allows you to see into ship segments)
Tow package (allows you to haul ships/trailers around)

Segments have varying levels of armor:
low: Can be breached by any attck
medium: Will withstand a minimum of 1 successful attack.
heavy: Will withstand a minimum of 3 successful attacks.

Drones come in 3 basic types:

Attack: Shoots stuff
Defence: Defends against attack drones, each shot charges up a mega-beam
Ion: shorts-out drones and/or sections

Advanced drones: Raider

Raider drones do a variety of things, depending on which type of segment they manage to hit

If they hit Life-support/cockpit, they take over the ship, 
which allows it to be slaved to yours for transport to shipyards

If they hit a engine pod, the opposing ship will be slowed down

If they hit a Fuel tank, all the fuel in that tank is transfered to your ship next turn

If they hit a cargo bay, the cargo in that bay is transfared to your ship next turn

If they hit a crew-quarter, the crew member in that quarter is either 
captured or killed, depending on if you have space to carry them or not.










Added cmd/FinalFrontier/scripts/term_posix.pisc.













































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
: color-code ( code -- color-esc ) :code ${ ESC "[" $code "m" } ;

# Clear screen and move cursor to top-left
: CLS ( -- ) ${ ESC "[2J" ESC "[;H" } print ;
: NL ( -- NL ) "\r\n" ;
: NNL ( -- NL ) NL NL ;

# Fore-colors
: black ( -- esc-black ) "30" color-code ;
: red ( -- esc-red ) "31" color-code ;
: green ( -- esc-green ) "32" color-code ;
: yellow ( -- esc-yellow ) "33" color-code ;
: blue ( -- esc-blue ) "34" color-code ;
: magenta ( -- esc-magenta ) "35" color-code ;
: cyan ( -- esc-cyan ) "36" color-code ;
: white ( -- esc-white ) "37" color-code ;

# back-colors
: back-black ( -- esc-black ) "40" color-code ;
: back-red ( -- esc-red ) "41" color-code ;
: back-green ( -- esc-green ) "42" color-code ;
: back-yellow ( -- esc-yellow ) "43" color-code ;
: back-blue ( -- esc-blue ) "44" color-code ;
: back-magenta ( -- esc-magenta ) "45" color-code ;
: back-cyan ( -- esc-cyan ) "46" color-code ;
: back-white ( -- esc-white ) "47" color-code ;

: is-enter? ( k -- ? ) 13 = ;
: is-arrow? ( k -- ? ) 27 = [ getkey 91 = ] [ f ] if ;

: is-up? ( k -- ? ) 65 = ;
: is-down? ( k -- ? ) 66 = ;
: is-right? ( k -- ? ) 67 = ;
: is-left? ( k -- ? ) 68 = ;

: is-y? ( k -- ? ) 121 = ;
: is-n? ( k -- ? ) 110 = ;
: is-yn? ( k -- ? )  [ is-y? ] [ is-n? ] bi or ;

Added cmd/FinalFrontier/scripts/term_win.pisc.















































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
: color-code ( code -- color-esc ) :code ${ ESC "[" $code "m" } ;

# Clear screen and move cursor to top-left
: CLS ( -- ) ${ ESC "[2J" ESC "[H" } print ;
: NL ( -- NL ) "\r\n" ;
: NNL ( -- NL ) NL NL ;

# Fore-colors
: black ( -- esc-black ) "30" color-code ;
: red ( -- esc-red ) "31" color-code ;
: green ( -- esc-green ) "32" color-code ;
: yellow ( -- esc-yellow ) "33" color-code ;
: blue ( -- esc-blue ) "34" color-code ;
: magenta ( -- esc-magenta ) "35" color-code ;
: cyan ( -- esc-cyan ) "36" color-code ;
: white ( -- esc-white ) "37" color-code ;

# back-colors
: back-black ( -- esc-black ) "40" color-code ;
: back-red ( -- esc-red ) "41" color-code ;
: back-green ( -- esc-green ) "42" color-code ;
: back-yellow ( -- esc-yellow ) "43" color-code ;
: back-blue ( -- esc-blue ) "44" color-code ;
: back-magenta ( -- esc-magenta ) "45" color-code ;
: back-cyan ( -- esc-cyan ) "46" color-code ;
: back-white ( -- esc-white ) "47" color-code ;

: is-enter? ( k -- ? ) 13 = ;
: is-arrow? ( k -- ? ) 224 = ;

: is-up? ( k -- ? ) 72 = ;
: is-down? ( k -- ? ) 80 = ;
: is-right? ( k -- ? ) 77 = ;
: is-left? ( k -- ? ) 75 = ;

: is-y? ( k -- ? ) 121 = ;
: is-n? ( k -- ? ) 110 = ;
: is-yn? ( k -- ? )  [ is-y? ] [ is-n? ] bi or ;

Added cmd/build/build.go.































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main

import "pisc"

var ModBuildCore = pisc.Module{
	Author:    "Andrew Owen",
	Name:      "BuildKit",
	License:   "MIT",
	DocString: `commands for running pisc Buildscripts`,
	Load:      loadBuildWords,
}

func loadBuildWords(m *pisc.Machine) error {
	return nil
}

Added cmd/build/main.go.





































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main

import (
	"pisc"
	"pisc/libs/shell"
)

func main() {
	m := &pisc.Machine{
		Values:               make([]pisc.StackEntry, 0),
		DefinedWords:         make(map[string]*pisc.CodeQuotation),
		DefinedStackComments: make(map[string]string),
		PredefinedWords:      make(map[string]pisc.GoWord),
		PrefixWords:          make(map[string]*pisc.CodeQuotation),
		HelpDocs:             make(map[string]string),
	}
	m.LoadModules(append(pisc.StandardModules, shell.ModShellUtils)...)
}

Added cmd/pisc-web-ide/main.go.







































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package main

import (
	"fmt"
	"github.com/pressly/chi"
	"github.com/pressly/chi/middleware"
	"log"
	"net/http"
)

// To try out: https://github.com/pressly/chi

func main() {
	// Simple static webserver:
	r := chi.NewRouter()
	r.Use(middleware.Logger)
	r.Use(middleware.Recoverer)

	r.FileServer("/", http.Dir("./webroot"))
	r.Get("/test", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintln(w, "Testing now!")
	})

	r.Get("/test/:id/arrp/:foo", func(w http.ResponseWriter, r *http.Request) {
		// FIXME: Not safe!!
		fmt.Fprintln(w, chi.URLParam(r, "id"))
		fmt.Fprintln(w, chi.URLParam(r, "foo"))
	})
	r.Get("/test/a", func(w http.ResponseWriter, r *http.Request) {
		// FIXME: Not safe!!
		fmt.Fprintln(w, "foo")
	})

	log.Fatal(http.ListenAndServe(":8080", r))
}

Added cmd/pisc-web-ide/webroot/index.html.





















>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
<html>
  <body>

  	<p>Hello PISC web-ide!</p>
  	
  	<script src="/static/js/reqwest-2.0.5/reqwest.js" type="text/javascript" charset="utf-8" async defer></script>
  	<script src="/static/js/vue-js/vue.js" type="text/javascript" charset="utf-8"></script>
  	<script></script>
  </body>
</html>

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/Makefile.

































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.PHONY: boosh test

boosh:
	@node -e "var json = require('./build');json.JSHINT_OPTS=JSON.parse(require('fs').readFileSync('./.jshintrc'));require('fs').writeFileSync('./build.json', JSON.stringify(json, null, 2))"
	@node_modules/smoosh/bin/smoosh make build.json

test:
	npm test

bump: boosh
	npm version patch
	node make/bump

publish:
	npm publish
	git push origin master --tags

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/README.md.







































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
# It's AJAX

All over again. Includes support for xmlHttpRequest, JSONP, CORS, and CommonJS Promises A.

It is also isomorphic allowing you to `require('reqwest')` in `Node.js` through the peer dependency [xhr2](https://github.com/pwnall/node-xhr2), albeit the original intent of this library is for the browser. For a more thorough solution for Node.js, see [mikeal/request](https://github.com/request/request).

## API

``` js
reqwest('path/to/html', function (resp) {
  qwery('#content').html(resp)
})

reqwest({
    url: 'path/to/html'
  , method: 'post'
  , data: { foo: 'bar', baz: 100 }
  , success: function (resp) {
      qwery('#content').html(resp)
    }
})

reqwest({
    url: 'path/to/html'
  , method: 'get'
  , data: [ { name: 'foo', value: 'bar' }, { name: 'baz', value: 100 } ]
  , success: function (resp) {
      qwery('#content').html(resp)
    }
})

reqwest({
    url: 'path/to/json'
  , type: 'json'
  , method: 'post'
  , error: function (err) { }
  , success: function (resp) {
      qwery('#content').html(resp.content)
    }
})

reqwest({
    url: 'path/to/json'
  , type: 'json'
  , method: 'post'
  , contentType: 'application/json'
  , headers: {
      'X-My-Custom-Header': 'SomethingImportant'
    }
  , error: function (err) { }
  , success: function (resp) {
      qwery('#content').html(resp.content)
    }
})

// Uses XMLHttpRequest2 credentialled requests (cookies, HTTP basic auth) if supported
reqwest({
    url: 'path/to/json'
  , type: 'json'
  , method: 'post'
  , contentType: 'application/json'
  , crossOrigin: true
  , withCredentials: true
  , error: function (err) { }
  , success: function (resp) {
      qwery('#content').html(resp.content)
    }
})

reqwest({
    url: 'path/to/data.jsonp?callback=?'
  , type: 'jsonp'
  , success: function (resp) {
      qwery('#content').html(resp.content)
    }
})

reqwest({
    url: 'path/to/data.jsonp?foo=bar'
  , type: 'jsonp'
  , jsonpCallback: 'foo'
  , jsonpCallbackName: 'bar'
  , success: function (resp) {
      qwery('#content').html(resp.content)
    }
})

reqwest({
    url: 'path/to/data.jsonp?foo=bar'
  , type: 'jsonp'
  , jsonpCallback: 'foo'
  , success: function (resp) {
      qwery('#content').html(resp.content)
    }
  , complete: function (resp) {
      qwery('#hide-this').hide()
    }
})
```

## Promises

``` js
reqwest({
    url: 'path/to/data.jsonp?foo=bar'
  , type: 'jsonp'
  , jsonpCallback: 'foo'
})
  .then(function (resp) {
    qwery('#content').html(resp.content)
  }, function (err, msg) {
    qwery('#errors').html(msg)
  })
  .always(function (resp) {
    qwery('#hide-this').hide()
  })
```

``` js
reqwest({
    url: 'path/to/data.jsonp?foo=bar'
  , type: 'jsonp'
  , jsonpCallback: 'foo'
})
  .then(function (resp) {
    qwery('#content').html(resp.content)
  })
  .fail(function (err, msg) {
    qwery('#errors').html(msg)
  })
  .always(function (resp) {
    qwery('#hide-this').hide()
  })
```

``` js
var r = reqwest({
    url: 'path/to/data.jsonp?foo=bar'
  , type: 'jsonp'
  , jsonpCallback: 'foo'
  , success: function () {
      setTimeout(function () {
        r
          .then(function (resp) {
            qwery('#content').html(resp.content)
          }, function (err) { })
          .always(function (resp) {
             qwery('#hide-this').hide()
          })
      }, 15)
    }
})
```

## Options

  * `url` a fully qualified uri
  * `method` http method (default: `GET`)
  * `headers` http headers (default: `{}`)
  * `data` entity body for `PATCH`, `POST` and `PUT` requests. Must be a query `String` or `JSON` object
  * `type` a string enum. `html`, `xml`, `json`, or `jsonp`. Default is inferred by resource extension. Eg: `.json` will set `type` to `json`. `.xml` to `xml` etc.
  * `contentType` sets the `Content-Type` of the request. Eg: `application/json`
  * `crossOrigin` for cross-origin requests for browsers that support this feature.
  * `success` A function called when the request successfully completes
  * `error` A function called when the request fails.
  * `complete` A function called whether the request is a success or failure. Always called when complete.
  * `jsonpCallback` Specify the callback function name for a `JSONP` request. This value will be used instead of the random (but recommended) name automatically generated by reqwest.

## Security

If you are *still* requiring support for IE6/IE7, consider including [JSON3](https://bestiejs.github.io/json3/) in your project. Or simply do the following

``` html
<script>
(function () {
  if (!window.JSON) {
    document.write('<scr' + 'ipt src="http://cdnjs.cloudflare.com/ajax/libs/json3/3.3.2/json3.min.js"><\/scr' + 'ipt>')
  }
}());
</script>
```


## Contributing

``` sh
$ git clone git://github.com/ded/reqwest.git reqwest
$ cd !$
$ npm install
```

Please keep your local edits to `src/reqwest.js`.
The base `./reqwest.js` and `./reqwest.min.js` will be built upon releases.

## Running Tests

``` sh
make test
```

## Browser support

  * IE6+
  * Chrome 1+
  * Safari 3+
  * Firefox 1+
  * Opera

## Ender Support
Reqwest can be used as an [Ender](http://enderjs.com) module. Add it to your existing build as such:

    $ ender add reqwest

Use it as such:

``` js
$.ajax({ ... })
```

Serialize things:

``` js
$(form).serialize() // returns query string -> x=y&...
$(form).serialize({type:'array'}) // returns array name/value pairs -> [ { name: x, value: y}, ... ]
$(form).serialize({type:'map'}) // returns an object representation -> { x: y, ... }
$(form).serializeArray()
$.toQueryString({
    foo: 'bar'
  , baz: 'thunk'
}) // returns query string -> foo=bar&baz=thunk
```

Or, get a bit fancy:

``` js
$('#myform input[name=myradios]').serialize({type:'map'})['myradios'] // get the selected value
$('input[type=text],#specialthing').serialize() // turn any arbitrary set of form elements into a query string
```

## ajaxSetup
Use the `request.ajaxSetup` to predefine a data filter on all requests. See the example below that demonstrates JSON hijacking prevention:

``` js
$.ajaxSetup({
  dataFilter: function (response, type) {
    if (type == 'json') return response.substring('])}while(1);</x>'.length)
    else return response
  }
})
```

## RequireJs and Jam
Reqwest can also be used with RequireJs and can be installed via jam

```
jam install reqwest
```

```js
define(function(require){
  var reqwest = require('reqwest')
});
```

## spm
Reqwest can also be installed via spm [![](http://spmjs.io/badge/reqwest)](http://spmjs.io/package/reqwest)

```
spm install reqwest
```

## jQuery and Zepto Compatibility
There are some differences between the *Reqwest way* and the
*jQuery/Zepto way*.

### method ###
jQuery/Zepto use `type` to specify the request method while Reqwest uses
`method` and reserves `type` for the response data type.

### dataType ###
When using jQuery/Zepto you use the `dataType` option to specify the type
of data to expect from the server, Reqwest uses `type`. jQuery also can
also take a space-separated list of data types to specify the request,
response and response-conversion types but Reqwest uses the `type`
parameter to infer the response type and leaves conversion up to you.

### JSONP ###
Reqwest also takes optional `jsonpCallback` and `jsonpCallbackName`
options to specify the callback query-string key and the callback function
name respectively while jQuery uses `jsonp` and `jsonpCallback` for
these same options.


But fear not! If you must work the jQuery/Zepto way then Reqwest has
a wrapper that will remap these options for you:

```js
reqwest.compat({
    url: 'path/to/data.jsonp?foo=bar'
  , dataType: 'jsonp'
  , jsonp: 'foo'
  , jsonpCallback: 'bar'
  , success: function (resp) {
      qwery('#content').html(resp.content)
    }
})

// or from Ender:

$.ajax.compat({
  ...
})
```

If you want to install jQuery/Zepto compatibility mode as the default
then simply place this snippet at the top of your code:

```js
$.ajax.compat && $.ender({ ajax: $.ajax.compat });
```


**Happy Ajaxing!**

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/build.json.





















































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
{
  "YO": "This file is built by the Makefile, your edits may not be saved on build",
  "JAVASCRIPT": {
    "DIST_DIR": "./",
    "reqwest": [
      "src/copyright.js",
      "src/reqwest.js"
    ]
  },
  "JSHINT_OPTS": {
    "predef": [
      "define",
      "ActiveXObject",
      "XDomainRequest"
    ],
    "bitwise": true,
    "camelcase": false,
    "curly": false,
    "eqeqeq": false,
    "forin": false,
    "immed": false,
    "latedef": false,
    "newcap": true,
    "noarg": true,
    "noempty": true,
    "nonew": true,
    "plusplus": false,
    "quotmark": true,
    "regexp": false,
    "undef": true,
    "unused": true,
    "strict": false,
    "trailing": true,
    "maxlen": 120,
    "asi": true,
    "boss": true,
    "debug": true,
    "eqnull": true,
    "esnext": true,
    "evil": true,
    "expr": true,
    "funcscope": false,
    "globalstrict": false,
    "iterator": false,
    "lastsemic": true,
    "laxbreak": true,
    "laxcomma": true,
    "loopfunc": true,
    "multistr": false,
    "onecase": false,
    "proto": false,
    "regexdash": false,
    "scripturl": true,
    "smarttabs": false,
    "shadow": false,
    "sub": true,
    "supernew": false,
    "validthis": true,
    "browser": true,
    "couch": false,
    "devel": false,
    "dojo": false,
    "mootools": false,
    "node": true,
    "nonstandard": true,
    "prototypejs": false,
    "rhino": false,
    "worker": true,
    "wsh": false,
    "nomen": false,
    "onevar": false,
    "passfail": false
  }
}

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/make/bump.js.

















>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
var fs = require('fs')
  , version = require('../package.json').version;

['./reqwest.js', './reqwest.min.js'].forEach(function (file) {
  var data = fs.readFileSync(file, 'utf8')
  data = data.replace(/^\/\*\!/, '/*! version: ' + version)
  fs.writeFileSync(file, data)
})

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/make/tests.js.



















































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
var exec = require('child_process').exec
  , fs = require('fs')
  , Connect = require('connect')
  , dispatch = require('dispatch')
  , mime = require('mime')
  , DelayedStream = require('delayed-stream')

  , getMime = function(ext) {
      return mime.lookup(ext == 'jsonp' ? 'js' : ext)
    }

var routes = {
  '/': function (req, res) {
    res.write(fs.readFileSync('./tests/tests.html', 'utf8'))
    res.end()
  },
  '/tests/timeout$': function (req, res) {
      var delayed = DelayedStream.create(req)
      setTimeout(function() {
        res.writeHead(200, {
            'Expires': 0
          , 'Cache-Control': 'max-age=0, no-cache, no-store'
        })
        req.query.callback && res.write(req.query.callback + '(')
        res.write(JSON.stringify({ method: req.method, query: req.query, headers: req.headers }))
        req.query.callback && res.write(');')
        delayed.pipe(res)
      }, 2000)
  },
  '/tests/204': function(req, res) {
    res.writeHead(204);
    res.end();
  },
  '(([\\w\\-\\/\\.]+)\\.(css|js|json|jsonp|html|xml)$)': function (req, res, next, uri, file, ext) {
    res.writeHead(200, {
        'Expires': 0
      , 'Cache-Control': 'max-age=0, no-cache, no-store'
      , 'Content-Type': getMime(ext)
    })
    if (req.query.echo !== undefined) {
      ext == 'jsonp' && res.write((req.query.callback || req.query.testCallback || 'echoCallback') + '(')
      res.write(JSON.stringify({ method: req.method, query: req.query, headers: req.headers }))
      ext == 'jsonp' && res.write(');')
    } else {
      res.write(fs.readFileSync('./' + file + '.' + ext))
    }
    res.end()
  }
}

Connect.createServer(Connect.query(), dispatch(routes)).listen(1234)

var otherOriginRoutes = {
    '/get-value': function (req, res) {
      res.writeHead(200, {
        'Access-Control-Allow-Origin': req.headers.origin,
        'Content-Type': 'text/plain'
      })
      res.end('hello')
    },
    '/set-cookie': function (req, res) {
      res.writeHead(200, {
        'Access-Control-Allow-Origin': req.headers.origin,
        'Access-Control-Allow-Credentials': 'true',
        'Content-Type': 'text/plain',
        'Set-Cookie': 'cookie=hello'
      })
      res.end('Set a cookie!')
    },
    '/get-cookie-value': function (req, res) {
      var cookies = {}
        , value

      req.headers.cookie && req.headers.cookie.split(';').forEach(function( cookie ) {
        var parts = cookie.split('=')
        cookies[ parts[ 0 ].trim() ] = ( parts[ 1 ] || '' ).trim()
      })
      value = cookies.cookie

      res.writeHead(200, {
          'Access-Control-Allow-Origin': req.headers.origin,
          'Access-Control-Allow-Credentials': 'true',
          'Content-Type': 'text/plain'
      })
      res.end(value)
    }
}

Connect.createServer(Connect.query(), dispatch(otherOriginRoutes)).listen(5678)

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/package.json.

































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
  "name": "reqwest",
  "description": "A wrapper for asynchronous http requests",
  "keywords": [
    "ender",
    "ajax",
    "xhr",
    "connection",
    "web 2.0",
    "async",
    "sync"
  ],
  "version": "2.0.5",
  "homepage": "https://github.com/ded/reqwest",
  "author": "Dustin Diaz <dustin@dustindiaz.com> (http://dustindiaz.com)",
  "repository": {
    "type": "git",
    "url": "https://github.com/ded/reqwest.git"
  },
  "main": "./reqwest.js",
  "ender": "./src/ender.js",
  "browser": {
    "xhr2": false
  },
  "devDependencies": {
    "connect": "1.8.x",
    "mime": "1.x.x",
    "sink-test": ">=0.1.2",
    "dispatch": "0.x.x",
    "valentine": ">=1.4.7",
    "smoosh": "0.4.0",
    "delayed-stream": "0.0.5",
    "bump": "0.2.3"
  },
  "scripts": {
    "boosh": "smoosh make ./build.json",
    "test": "node ./test.js"
  },
  "license": "MIT",
  "spm": {
    "main": "reqwest.js",
    "ignore": [
      "vendor",
      "test",
      "make"
    ]
  }
}

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/phantom.js.



































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var page = require('webpage').create()
page.open('http://localhost:1234', function() {

  function f() {
    setTimeout(function () {
      var clsName = page.evaluate(function() {
        var el = document.getElementById('tests')
        return el.className
      })
      if (!clsName.match(/sink-done/)) f()
      else {
        var count = 0
        var fail = page.evaluate(function () {
          var t = ''
          var els = document.querySelectorAll('ol#tests .fail .fail')
          for (var i = 0; i < els.length; i++) {
            t += els[i].textContent + '\n'
          }
          return {text: t, count: els.length}
        })
        var pass = !!clsName.match(/sink-pass/)
        if (pass) console.log('All tests have passed!')
        else {
          console.log(fail.count + ' test(s) failed')
          console.log(fail.text.trim())
        }

        phantom.exit(pass ? 0 : 1)
      }
    }, 10)
  }
  f()
})

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/reqwest.js.













































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
/*!
  * Reqwest! A general purpose XHR connection manager
  * license MIT (c) Dustin Diaz 2015
  * https://github.com/ded/reqwest
  */

!function (name, context, definition) {
  if (typeof module != 'undefined' && module.exports) module.exports = definition()
  else if (typeof define == 'function' && define.amd) define(definition)
  else context[name] = definition()
}('reqwest', this, function () {

  var context = this

  if ('window' in context) {
    var doc = document
      , byTag = 'getElementsByTagName'
      , head = doc[byTag]('head')[0]
  } else {
    var XHR2
    try {
      XHR2 = require('xhr2')
    } catch (ex) {
      throw new Error('Peer dependency `xhr2` required! Please npm install xhr2')
    }
  }


  var httpsRe = /^http/
    , protocolRe = /(^\w+):\/\//
    , twoHundo = /^(20\d|1223)$/ //http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request
    , readyState = 'readyState'
    , contentType = 'Content-Type'
    , requestedWith = 'X-Requested-With'
    , uniqid = 0
    , callbackPrefix = 'reqwest_' + (+new Date())
    , lastValue // data stored by the most recent JSONP callback
    , xmlHttpRequest = 'XMLHttpRequest'
    , xDomainRequest = 'XDomainRequest'
    , noop = function () {}

    , isArray = typeof Array.isArray == 'function'
        ? Array.isArray
        : function (a) {
            return a instanceof Array
          }

    , defaultHeaders = {
          'contentType': 'application/x-www-form-urlencoded'
        , 'requestedWith': xmlHttpRequest
        , 'accept': {
              '*':  'text/javascript, text/html, application/xml, text/xml, */*'
            , 'xml':  'application/xml, text/xml'
            , 'html': 'text/html'
            , 'text': 'text/plain'
            , 'json': 'application/json, text/javascript'
            , 'js':   'application/javascript, text/javascript'
          }
      }

    , xhr = function(o) {
        // is it x-domain
        if (o['crossOrigin'] === true) {
          var xhr = context[xmlHttpRequest] ? new XMLHttpRequest() : null
          if (xhr && 'withCredentials' in xhr) {
            return xhr
          } else if (context[xDomainRequest]) {
            return new XDomainRequest()
          } else {
            throw new Error('Browser does not support cross-origin requests')
          }
        } else if (context[xmlHttpRequest]) {
          return new XMLHttpRequest()
        } else if (XHR2) {
          return new XHR2()
        } else {
          return new ActiveXObject('Microsoft.XMLHTTP')
        }
      }
    , globalSetupOptions = {
        dataFilter: function (data) {
          return data
        }
      }

  function succeed(r) {
    var protocol = protocolRe.exec(r.url)
    protocol = (protocol && protocol[1]) || context.location.protocol
    return httpsRe.test(protocol) ? twoHundo.test(r.request.status) : !!r.request.response
  }

  function handleReadyState(r, success, error) {
    return function () {
      // use _aborted to mitigate against IE err c00c023f
      // (can't read props on aborted request objects)
      if (r._aborted) return error(r.request)
      if (r._timedOut) return error(r.request, 'Request is aborted: timeout')
      if (r.request && r.request[readyState] == 4) {
        r.request.onreadystatechange = noop
        if (succeed(r)) success(r.request)
        else
          error(r.request)
      }
    }
  }

  function setHeaders(http, o) {
    var headers = o['headers'] || {}
      , h

    headers['Accept'] = headers['Accept']
      || defaultHeaders['accept'][o['type']]
      || defaultHeaders['accept']['*']

    var isAFormData = typeof FormData !== 'undefined' && (o['data'] instanceof FormData);
    // breaks cross-origin requests with legacy browsers
    if (!o['crossOrigin'] && !headers[requestedWith]) headers[requestedWith] = defaultHeaders['requestedWith']
    if (!headers[contentType] && !isAFormData) headers[contentType] = o['contentType'] || defaultHeaders['contentType']
    for (h in headers)
      headers.hasOwnProperty(h) && 'setRequestHeader' in http && http.setRequestHeader(h, headers[h])
  }

  function setCredentials(http, o) {
    if (typeof o['withCredentials'] !== 'undefined' && typeof http.withCredentials !== 'undefined') {
      http.withCredentials = !!o['withCredentials']
    }
  }

  function generalCallback(data) {
    lastValue = data
  }

  function urlappend (url, s) {
    return url + (/\?/.test(url) ? '&' : '?') + s
  }

  function handleJsonp(o, fn, err, url) {
    var reqId = uniqid++
      , cbkey = o['jsonpCallback'] || 'callback' // the 'callback' key
      , cbval = o['jsonpCallbackName'] || reqwest.getcallbackPrefix(reqId)
      , cbreg = new RegExp('((^|\\?|&)' + cbkey + ')=([^&]+)')
      , match = url.match(cbreg)
      , script = doc.createElement('script')
      , loaded = 0
      , isIE10 = navigator.userAgent.indexOf('MSIE 10.0') !== -1

    if (match) {
      if (match[3] === '?') {
        url = url.replace(cbreg, '$1=' + cbval) // wildcard callback func name
      } else {
        cbval = match[3] // provided callback func name
      }
    } else {
      url = urlappend(url, cbkey + '=' + cbval) // no callback details, add 'em
    }

    context[cbval] = generalCallback

    script.type = 'text/javascript'
    script.src = url
    script.async = true
    if (typeof script.onreadystatechange !== 'undefined' && !isIE10) {
      // need this for IE due to out-of-order onreadystatechange(), binding script
      // execution to an event listener gives us control over when the script
      // is executed. See http://jaubourg.net/2010/07/loading-script-as-onclick-handler-of.html
      script.htmlFor = script.id = '_reqwest_' + reqId
    }

    script.onload = script.onreadystatechange = function () {
      if ((script[readyState] && script[readyState] !== 'complete' && script[readyState] !== 'loaded') || loaded) {
        return false
      }
      script.onload = script.onreadystatechange = null
      script.onclick && script.onclick()
      // Call the user callback with the last value stored and clean up values and scripts.
      fn(lastValue)
      lastValue = undefined
      head.removeChild(script)
      loaded = 1
    }

    // Add the script to the DOM head
    head.appendChild(script)

    // Enable JSONP timeout
    return {
      abort: function () {
        script.onload = script.onreadystatechange = null
        err({}, 'Request is aborted: timeout', {})
        lastValue = undefined
        head.removeChild(script)
        loaded = 1
      }
    }
  }

  function getRequest(fn, err) {
    var o = this.o
      , method = (o['method'] || 'GET').toUpperCase()
      , url = typeof o === 'string' ? o : o['url']
      // convert non-string objects to query-string form unless o['processData'] is false
      , data = (o['processData'] !== false && o['data'] && typeof o['data'] !== 'string')
        ? reqwest.toQueryString(o['data'])
        : (o['data'] || null)
      , http
      , sendWait = false

    // if we're working on a GET request and we have data then we should append
    // query string to end of URL and not post data
    if ((o['type'] == 'jsonp' || method == 'GET') && data) {
      url = urlappend(url, data)
      data = null
    }

    if (o['type'] == 'jsonp') return handleJsonp(o, fn, err, url)

    // get the xhr from the factory if passed
    // if the factory returns null, fall-back to ours
    http = (o.xhr && o.xhr(o)) || xhr(o)

    http.open(method, url, o['async'] === false ? false : true)
    setHeaders(http, o)
    setCredentials(http, o)
    if (context[xDomainRequest] && http instanceof context[xDomainRequest]) {
        http.onload = fn
        http.onerror = err
        // NOTE: see
        // http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/30ef3add-767c-4436-b8a9-f1ca19b4812e
        http.onprogress = function() {}
        sendWait = true
    } else {
      http.onreadystatechange = handleReadyState(this, fn, err)
    }
    o['before'] && o['before'](http)
    if (sendWait) {
      setTimeout(function () {
        http.send(data)
      }, 200)
    } else {
      http.send(data)
    }
    return http
  }

  function Reqwest(o, fn) {
    this.o = o
    this.fn = fn

    init.apply(this, arguments)
  }

  function setType(header) {
    // json, javascript, text/plain, text/html, xml
    if (header === null) return undefined; //In case of no content-type.
    if (header.match('json')) return 'json'
    if (header.match('javascript')) return 'js'
    if (header.match('text')) return 'html'
    if (header.match('xml')) return 'xml'
  }

  function init(o, fn) {

    this.url = typeof o == 'string' ? o : o['url']
    this.timeout = null

    // whether request has been fulfilled for purpose
    // of tracking the Promises
    this._fulfilled = false
    // success handlers
    this._successHandler = function(){}
    this._fulfillmentHandlers = []
    // error handlers
    this._errorHandlers = []
    // complete (both success and fail) handlers
    this._completeHandlers = []
    this._erred = false
    this._responseArgs = {}

    var self = this

    fn = fn || function () {}

    if (o['timeout']) {
      this.timeout = setTimeout(function () {
        timedOut()
      }, o['timeout'])
    }

    if (o['success']) {
      this._successHandler = function () {
        o['success'].apply(o, arguments)
      }
    }

    if (o['error']) {
      this._errorHandlers.push(function () {
        o['error'].apply(o, arguments)
      })
    }

    if (o['complete']) {
      this._completeHandlers.push(function () {
        o['complete'].apply(o, arguments)
      })
    }

    function complete (resp) {
      o['timeout'] && clearTimeout(self.timeout)
      self.timeout = null
      while (self._completeHandlers.length > 0) {
        self._completeHandlers.shift()(resp)
      }
    }

    function success (resp) {
      var type = o['type'] || resp && setType(resp.getResponseHeader('Content-Type')) // resp can be undefined in IE
      resp = (type !== 'jsonp') ? self.request : resp
      // use global data filter on response text
      var filteredResponse = globalSetupOptions.dataFilter(resp.responseText, type)
        , r = filteredResponse
      try {
        resp.responseText = r
      } catch (e) {
        // can't assign this in IE<=8, just ignore
      }
      if (r) {
        switch (type) {
        case 'json':
          try {
            resp = context.JSON ? context.JSON.parse(r) : eval('(' + r + ')')
          } catch (err) {
            return error(resp, 'Could not parse JSON in response', err)
          }
          break
        case 'js':
          resp = eval(r)
          break
        case 'html':
          resp = r
          break
        case 'xml':
          resp = resp.responseXML
              && resp.responseXML.parseError // IE trololo
              && resp.responseXML.parseError.errorCode
              && resp.responseXML.parseError.reason
            ? null
            : resp.responseXML
          break
        }
      }

      self._responseArgs.resp = resp
      self._fulfilled = true
      fn(resp)
      self._successHandler(resp)
      while (self._fulfillmentHandlers.length > 0) {
        resp = self._fulfillmentHandlers.shift()(resp)
      }

      complete(resp)
    }

    function timedOut() {
      self._timedOut = true
      self.request.abort()
    }

    function error(resp, msg, t) {
      resp = self.request
      self._responseArgs.resp = resp
      self._responseArgs.msg = msg
      self._responseArgs.t = t
      self._erred = true
      while (self._errorHandlers.length > 0) {
        self._errorHandlers.shift()(resp, msg, t)
      }
      complete(resp)
    }

    this.request = getRequest.call(this, success, error)
  }

  Reqwest.prototype = {
    abort: function () {
      this._aborted = true
      this.request.abort()
    }

  , retry: function () {
      init.call(this, this.o, this.fn)
    }

    /**
     * Small deviation from the Promises A CommonJs specification
     * http://wiki.commonjs.org/wiki/Promises/A
     */

    /**
     * `then` will execute upon successful requests
     */
  , then: function (success, fail) {
      success = success || function () {}
      fail = fail || function () {}
      if (this._fulfilled) {
        this._responseArgs.resp = success(this._responseArgs.resp)
      } else if (this._erred) {
        fail(this._responseArgs.resp, this._responseArgs.msg, this._responseArgs.t)
      } else {
        this._fulfillmentHandlers.push(success)
        this._errorHandlers.push(fail)
      }
      return this
    }

    /**
     * `always` will execute whether the request succeeds or fails
     */
  , always: function (fn) {
      if (this._fulfilled || this._erred) {
        fn(this._responseArgs.resp)
      } else {
        this._completeHandlers.push(fn)
      }
      return this
    }

    /**
     * `fail` will execute when the request fails
     */
  , fail: function (fn) {
      if (this._erred) {
        fn(this._responseArgs.resp, this._responseArgs.msg, this._responseArgs.t)
      } else {
        this._errorHandlers.push(fn)
      }
      return this
    }
  , 'catch': function (fn) {
      return this.fail(fn)
    }
  }

  function reqwest(o, fn) {
    return new Reqwest(o, fn)
  }

  // normalize newline variants according to spec -> CRLF
  function normalize(s) {
    return s ? s.replace(/\r?\n/g, '\r\n') : ''
  }

  function serial(el, cb) {
    var n = el.name
      , t = el.tagName.toLowerCase()
      , optCb = function (o) {
          // IE gives value="" even where there is no value attribute
          // 'specified' ref: http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-862529273
          if (o && !o['disabled'])
            cb(n, normalize(o['attributes']['value'] && o['attributes']['value']['specified'] ? o['value'] : o['text']))
        }
      , ch, ra, val, i

    // don't serialize elements that are disabled or without a name
    if (el.disabled || !n) return

    switch (t) {
    case 'input':
      if (!/reset|button|image|file/i.test(el.type)) {
        ch = /checkbox/i.test(el.type)
        ra = /radio/i.test(el.type)
        val = el.value
        // WebKit gives us "" instead of "on" if a checkbox has no value, so correct it here
        ;(!(ch || ra) || el.checked) && cb(n, normalize(ch && val === '' ? 'on' : val))
      }
      break
    case 'textarea':
      cb(n, normalize(el.value))
      break
    case 'select':
      if (el.type.toLowerCase() === 'select-one') {
        optCb(el.selectedIndex >= 0 ? el.options[el.selectedIndex] : null)
      } else {
        for (i = 0; el.length && i < el.length; i++) {
          el.options[i].selected && optCb(el.options[i])
        }
      }
      break
    }
  }

  // collect up all form elements found from the passed argument elements all
  // the way down to child elements; pass a '<form>' or form fields.
  // called with 'this'=callback to use for serial() on each element
  function eachFormElement() {
    var cb = this
      , e, i
      , serializeSubtags = function (e, tags) {
          var i, j, fa
          for (i = 0; i < tags.length; i++) {
            fa = e[byTag](tags[i])
            for (j = 0; j < fa.length; j++) serial(fa[j], cb)
          }
        }

    for (i = 0; i < arguments.length; i++) {
      e = arguments[i]
      if (/input|select|textarea/i.test(e.tagName)) serial(e, cb)
      serializeSubtags(e, [ 'input', 'select', 'textarea' ])
    }
  }

  // standard query string style serialization
  function serializeQueryString() {
    return reqwest.toQueryString(reqwest.serializeArray.apply(null, arguments))
  }

  // { 'name': 'value', ... } style serialization
  function serializeHash() {
    var hash = {}
    eachFormElement.apply(function (name, value) {
      if (name in hash) {
        hash[name] && !isArray(hash[name]) && (hash[name] = [hash[name]])
        hash[name].push(value)
      } else hash[name] = value
    }, arguments)
    return hash
  }

  // [ { name: 'name', value: 'value' }, ... ] style serialization
  reqwest.serializeArray = function () {
    var arr = []
    eachFormElement.apply(function (name, value) {
      arr.push({name: name, value: value})
    }, arguments)
    return arr
  }

  reqwest.serialize = function () {
    if (arguments.length === 0) return ''
    var opt, fn
      , args = Array.prototype.slice.call(arguments, 0)

    opt = args.pop()
    opt && opt.nodeType && args.push(opt) && (opt = null)
    opt && (opt = opt.type)

    if (opt == 'map') fn = serializeHash
    else if (opt == 'array') fn = reqwest.serializeArray
    else fn = serializeQueryString

    return fn.apply(null, args)
  }

  reqwest.toQueryString = function (o, trad) {
    var prefix, i
      , traditional = trad || false
      , s = []
      , enc = encodeURIComponent
      , add = function (key, value) {
          // If value is a function, invoke it and return its value
          value = ('function' === typeof value) ? value() : (value == null ? '' : value)
          s[s.length] = enc(key) + '=' + enc(value)
        }
    // If an array was passed in, assume that it is an array of form elements.
    if (isArray(o)) {
      for (i = 0; o && i < o.length; i++) add(o[i]['name'], o[i]['value'])
    } else {
      // If traditional, encode the "old" way (the way 1.3.2 or older
      // did it), otherwise encode params recursively.
      for (prefix in o) {
        if (o.hasOwnProperty(prefix)) buildParams(prefix, o[prefix], traditional, add)
      }
    }

    // spaces should be + according to spec
    return s.join('&').replace(/%20/g, '+')
  }

  function buildParams(prefix, obj, traditional, add) {
    var name, i, v
      , rbracket = /\[\]$/

    if (isArray(obj)) {
      // Serialize array item.
      for (i = 0; obj && i < obj.length; i++) {
        v = obj[i]
        if (traditional || rbracket.test(prefix)) {
          // Treat each array item as a scalar.
          add(prefix, v)
        } else {
          buildParams(prefix + '[' + (typeof v === 'object' ? i : '') + ']', v, traditional, add)
        }
      }
    } else if (obj && obj.toString() === '[object Object]') {
      // Serialize object item.
      for (name in obj) {
        buildParams(prefix + '[' + name + ']', obj[name], traditional, add)
      }

    } else {
      // Serialize scalar item.
      add(prefix, obj)
    }
  }

  reqwest.getcallbackPrefix = function () {
    return callbackPrefix
  }

  // jQuery and Zepto compatibility, differences can be remapped here so you can call
  // .ajax.compat(options, callback)
  reqwest.compat = function (o, fn) {
    if (o) {
      o['type'] && (o['method'] = o['type']) && delete o['type']
      o['dataType'] && (o['type'] = o['dataType'])
      o['jsonpCallback'] && (o['jsonpCallbackName'] = o['jsonpCallback']) && delete o['jsonpCallback']
      o['jsonp'] && (o['jsonpCallback'] = o['jsonp'])
    }
    return new Reqwest(o, fn)
  }

  reqwest.ajaxSetup = function (options) {
    options = options || {}
    for (var k in options) {
      globalSetupOptions[k] = options[k]
    }
  }

  return reqwest
});

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/reqwest.min.js.

cannot compute difference between binary files

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/src/copyright.js.











>
>
>
>
>
1
2
3
4
5
/*!
  * Reqwest! A general purpose XHR connection manager
  * license MIT (c) Dustin Diaz 2015
  * https://github.com/ded/reqwest
  */

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/src/ender.js.





















































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
!function ($) {
  var r = require('reqwest')
    , integrate = function (method) {
        return function () {
          var args = Array.prototype.slice.call(arguments, 0)
            , i = (this && this.length) || 0
          while (i--) args.unshift(this[i])
          return r[method].apply(null, args)
        }
      }
    , s = integrate('serialize')
    , sa = integrate('serializeArray')

  $.ender({
      ajax: r
    , serialize: r.serialize
    , serializeArray: r.serializeArray
    , toQueryString: r.toQueryString
    , ajaxSetup: r.ajaxSetup
  })

  $.ender({
      serialize: s
    , serializeArray: sa
  }, true)
}(ender);

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/src/reqwest.js.

































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
!function (name, context, definition) {
  if (typeof module != 'undefined' && module.exports) module.exports = definition()
  else if (typeof define == 'function' && define.amd) define(definition)
  else context[name] = definition()
}('reqwest', this, function () {

  var context = this

  if ('window' in context) {
    var doc = document
      , byTag = 'getElementsByTagName'
      , head = doc[byTag]('head')[0]
  } else {
    var XHR2
    try {
      XHR2 = require('xhr2')
    } catch (ex) {
      throw new Error('Peer dependency `xhr2` required! Please npm install xhr2')
    }
  }


  var httpsRe = /^http/
    , protocolRe = /(^\w+):\/\//
    , twoHundo = /^(20\d|1223)$/ //http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request
    , readyState = 'readyState'
    , contentType = 'Content-Type'
    , requestedWith = 'X-Requested-With'
    , uniqid = 0
    , callbackPrefix = 'reqwest_' + (+new Date())
    , lastValue // data stored by the most recent JSONP callback
    , xmlHttpRequest = 'XMLHttpRequest'
    , xDomainRequest = 'XDomainRequest'
    , noop = function () {}

    , isArray = typeof Array.isArray == 'function'
        ? Array.isArray
        : function (a) {
            return a instanceof Array
          }

    , defaultHeaders = {
          'contentType': 'application/x-www-form-urlencoded'
        , 'requestedWith': xmlHttpRequest
        , 'accept': {
              '*':  'text/javascript, text/html, application/xml, text/xml, */*'
            , 'xml':  'application/xml, text/xml'
            , 'html': 'text/html'
            , 'text': 'text/plain'
            , 'json': 'application/json, text/javascript'
            , 'js':   'application/javascript, text/javascript'
          }
      }

    , xhr = function(o) {
        // is it x-domain
        if (o['crossOrigin'] === true) {
          var xhr = context[xmlHttpRequest] ? new XMLHttpRequest() : null
          if (xhr && 'withCredentials' in xhr) {
            return xhr
          } else if (context[xDomainRequest]) {
            return new XDomainRequest()
          } else {
            throw new Error('Browser does not support cross-origin requests')
          }
        } else if (context[xmlHttpRequest]) {
          return new XMLHttpRequest()
        } else if (XHR2) {
          return new XHR2()
        } else {
          return new ActiveXObject('Microsoft.XMLHTTP')
        }
      }
    , globalSetupOptions = {
        dataFilter: function (data) {
          return data
        }
      }

  function succeed(r) {
    var protocol = protocolRe.exec(r.url)
    protocol = (protocol && protocol[1]) || context.location.protocol
    return httpsRe.test(protocol) ? twoHundo.test(r.request.status) : !!r.request.response
  }

  function handleReadyState(r, success, error) {
    return function () {
      // use _aborted to mitigate against IE err c00c023f
      // (can't read props on aborted request objects)
      if (r._aborted) return error(r.request)
      if (r._timedOut) return error(r.request, 'Request is aborted: timeout')
      if (r.request && r.request[readyState] == 4) {
        r.request.onreadystatechange = noop
        if (succeed(r)) success(r.request)
        else
          error(r.request)
      }
    }
  }

  function setHeaders(http, o) {
    var headers = o['headers'] || {}
      , h

    headers['Accept'] = headers['Accept']
      || defaultHeaders['accept'][o['type']]
      || defaultHeaders['accept']['*']

    var isAFormData = typeof FormData !== 'undefined' && (o['data'] instanceof FormData);
    // breaks cross-origin requests with legacy browsers
    if (!o['crossOrigin'] && !headers[requestedWith]) headers[requestedWith] = defaultHeaders['requestedWith']
    if (!headers[contentType] && !isAFormData) headers[contentType] = o['contentType'] || defaultHeaders['contentType']
    for (h in headers)
      headers.hasOwnProperty(h) && 'setRequestHeader' in http && http.setRequestHeader(h, headers[h])
  }

  function setCredentials(http, o) {
    if (typeof o['withCredentials'] !== 'undefined' && typeof http.withCredentials !== 'undefined') {
      http.withCredentials = !!o['withCredentials']
    }
  }

  function generalCallback(data) {
    lastValue = data
  }

  function urlappend (url, s) {
    return url + (/\?/.test(url) ? '&' : '?') + s
  }

  function handleJsonp(o, fn, err, url) {
    var reqId = uniqid++
      , cbkey = o['jsonpCallback'] || 'callback' // the 'callback' key
      , cbval = o['jsonpCallbackName'] || reqwest.getcallbackPrefix(reqId)
      , cbreg = new RegExp('((^|\\?|&)' + cbkey + ')=([^&]+)')
      , match = url.match(cbreg)
      , script = doc.createElement('script')
      , loaded = 0
      , isIE10 = navigator.userAgent.indexOf('MSIE 10.0') !== -1

    if (match) {
      if (match[3] === '?') {
        url = url.replace(cbreg, '$1=' + cbval) // wildcard callback func name
      } else {
        cbval = match[3] // provided callback func name
      }
    } else {
      url = urlappend(url, cbkey + '=' + cbval) // no callback details, add 'em
    }

    context[cbval] = generalCallback

    script.type = 'text/javascript'
    script.src = url
    script.async = true
    if (typeof script.onreadystatechange !== 'undefined' && !isIE10) {
      // need this for IE due to out-of-order onreadystatechange(), binding script
      // execution to an event listener gives us control over when the script
      // is executed. See http://jaubourg.net/2010/07/loading-script-as-onclick-handler-of.html
      script.htmlFor = script.id = '_reqwest_' + reqId
    }

    script.onload = script.onreadystatechange = function () {
      if ((script[readyState] && script[readyState] !== 'complete' && script[readyState] !== 'loaded') || loaded) {
        return false
      }
      script.onload = script.onreadystatechange = null
      script.onclick && script.onclick()
      // Call the user callback with the last value stored and clean up values and scripts.
      fn(lastValue)
      lastValue = undefined
      head.removeChild(script)
      loaded = 1
    }

    // Add the script to the DOM head
    head.appendChild(script)

    // Enable JSONP timeout
    return {
      abort: function () {
        script.onload = script.onreadystatechange = null
        err({}, 'Request is aborted: timeout', {})
        lastValue = undefined
        head.removeChild(script)
        loaded = 1
      }
    }
  }

  function getRequest(fn, err) {
    var o = this.o
      , method = (o['method'] || 'GET').toUpperCase()
      , url = typeof o === 'string' ? o : o['url']
      // convert non-string objects to query-string form unless o['processData'] is false
      , data = (o['processData'] !== false && o['data'] && typeof o['data'] !== 'string')
        ? reqwest.toQueryString(o['data'])
        : (o['data'] || null)
      , http
      , sendWait = false

    // if we're working on a GET request and we have data then we should append
    // query string to end of URL and not post data
    if ((o['type'] == 'jsonp' || method == 'GET') && data) {
      url = urlappend(url, data)
      data = null
    }

    if (o['type'] == 'jsonp') return handleJsonp(o, fn, err, url)

    // get the xhr from the factory if passed
    // if the factory returns null, fall-back to ours
    http = (o.xhr && o.xhr(o)) || xhr(o)

    http.open(method, url, o['async'] === false ? false : true)
    setHeaders(http, o)
    setCredentials(http, o)
    if (context[xDomainRequest] && http instanceof context[xDomainRequest]) {
        http.onload = fn
        http.onerror = err
        // NOTE: see
        // http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/30ef3add-767c-4436-b8a9-f1ca19b4812e
        http.onprogress = function() {}
        sendWait = true
    } else {
      http.onreadystatechange = handleReadyState(this, fn, err)
    }
    o['before'] && o['before'](http)
    if (sendWait) {
      setTimeout(function () {
        http.send(data)
      }, 200)
    } else {
      http.send(data)
    }
    return http
  }

  function Reqwest(o, fn) {
    this.o = o
    this.fn = fn

    init.apply(this, arguments)
  }

  function setType(header) {
    // json, javascript, text/plain, text/html, xml
    if (header === null) return undefined; //In case of no content-type.
    if (header.match('json')) return 'json'
    if (header.match('javascript')) return 'js'
    if (header.match('text')) return 'html'
    if (header.match('xml')) return 'xml'
  }

  function init(o, fn) {

    this.url = typeof o == 'string' ? o : o['url']
    this.timeout = null

    // whether request has been fulfilled for purpose
    // of tracking the Promises
    this._fulfilled = false
    // success handlers
    this._successHandler = function(){}
    this._fulfillmentHandlers = []
    // error handlers
    this._errorHandlers = []
    // complete (both success and fail) handlers
    this._completeHandlers = []
    this._erred = false
    this._responseArgs = {}

    var self = this

    fn = fn || function () {}

    if (o['timeout']) {
      this.timeout = setTimeout(function () {
        timedOut()
      }, o['timeout'])
    }

    if (o['success']) {
      this._successHandler = function () {
        o['success'].apply(o, arguments)
      }
    }

    if (o['error']) {
      this._errorHandlers.push(function () {
        o['error'].apply(o, arguments)
      })
    }

    if (o['complete']) {
      this._completeHandlers.push(function () {
        o['complete'].apply(o, arguments)
      })
    }

    function complete (resp) {
      o['timeout'] && clearTimeout(self.timeout)
      self.timeout = null
      while (self._completeHandlers.length > 0) {
        self._completeHandlers.shift()(resp)
      }
    }

    function success (resp) {
      var type = o['type'] || resp && setType(resp.getResponseHeader('Content-Type')) // resp can be undefined in IE
      resp = (type !== 'jsonp') ? self.request : resp
      // use global data filter on response text
      var filteredResponse = globalSetupOptions.dataFilter(resp.responseText, type)
        , r = filteredResponse
      try {
        resp.responseText = r
      } catch (e) {
        // can't assign this in IE<=8, just ignore
      }
      if (r) {
        switch (type) {
        case 'json':
          try {
            resp = context.JSON ? context.JSON.parse(r) : eval('(' + r + ')')
          } catch (err) {
            return error(resp, 'Could not parse JSON in response', err)
          }
          break
        case 'js':
          resp = eval(r)
          break
        case 'html':
          resp = r
          break
        case 'xml':
          resp = resp.responseXML
              && resp.responseXML.parseError // IE trololo
              && resp.responseXML.parseError.errorCode
              && resp.responseXML.parseError.reason
            ? null
            : resp.responseXML
          break
        }
      }

      self._responseArgs.resp = resp
      self._fulfilled = true
      fn(resp)
      self._successHandler(resp)
      while (self._fulfillmentHandlers.length > 0) {
        resp = self._fulfillmentHandlers.shift()(resp)
      }

      complete(resp)
    }

    function timedOut() {
      self._timedOut = true
      self.request.abort()
    }

    function error(resp, msg, t) {
      resp = self.request
      self._responseArgs.resp = resp
      self._responseArgs.msg = msg
      self._responseArgs.t = t
      self._erred = true
      while (self._errorHandlers.length > 0) {
        self._errorHandlers.shift()(resp, msg, t)
      }
      complete(resp)
    }

    this.request = getRequest.call(this, success, error)
  }

  Reqwest.prototype = {
    abort: function () {
      this._aborted = true
      this.request.abort()
    }

  , retry: function () {
      init.call(this, this.o, this.fn)
    }

    /**
     * Small deviation from the Promises A CommonJs specification
     * http://wiki.commonjs.org/wiki/Promises/A
     */

    /**
     * `then` will execute upon successful requests
     */
  , then: function (success, fail) {
      success = success || function () {}
      fail = fail || function () {}
      if (this._fulfilled) {
        this._responseArgs.resp = success(this._responseArgs.resp)
      } else if (this._erred) {
        fail(this._responseArgs.resp, this._responseArgs.msg, this._responseArgs.t)
      } else {
        this._fulfillmentHandlers.push(success)
        this._errorHandlers.push(fail)
      }
      return this
    }

    /**
     * `always` will execute whether the request succeeds or fails
     */
  , always: function (fn) {
      if (this._fulfilled || this._erred) {
        fn(this._responseArgs.resp)
      } else {
        this._completeHandlers.push(fn)
      }
      return this
    }

    /**
     * `fail` will execute when the request fails
     */
  , fail: function (fn) {
      if (this._erred) {
        fn(this._responseArgs.resp, this._responseArgs.msg, this._responseArgs.t)
      } else {
        this._errorHandlers.push(fn)
      }
      return this
    }
  , 'catch': function (fn) {
      return this.fail(fn)
    }
  }

  function reqwest(o, fn) {
    return new Reqwest(o, fn)
  }

  // normalize newline variants according to spec -> CRLF
  function normalize(s) {
    return s ? s.replace(/\r?\n/g, '\r\n') : ''
  }

  function serial(el, cb) {
    var n = el.name
      , t = el.tagName.toLowerCase()
      , optCb = function (o) {
          // IE gives value="" even where there is no value attribute
          // 'specified' ref: http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-862529273
          if (o && !o['disabled'])
            cb(n, normalize(o['attributes']['value'] && o['attributes']['value']['specified'] ? o['value'] : o['text']))
        }
      , ch, ra, val, i

    // don't serialize elements that are disabled or without a name
    if (el.disabled || !n) return

    switch (t) {
    case 'input':
      if (!/reset|button|image|file/i.test(el.type)) {
        ch = /checkbox/i.test(el.type)
        ra = /radio/i.test(el.type)
        val = el.value
        // WebKit gives us "" instead of "on" if a checkbox has no value, so correct it here
        ;(!(ch || ra) || el.checked) && cb(n, normalize(ch && val === '' ? 'on' : val))
      }
      break
    case 'textarea':
      cb(n, normalize(el.value))
      break
    case 'select':
      if (el.type.toLowerCase() === 'select-one') {
        optCb(el.selectedIndex >= 0 ? el.options[el.selectedIndex] : null)
      } else {
        for (i = 0; el.length && i < el.length; i++) {
          el.options[i].selected && optCb(el.options[i])
        }
      }
      break
    }
  }

  // collect up all form elements found from the passed argument elements all
  // the way down to child elements; pass a '<form>' or form fields.
  // called with 'this'=callback to use for serial() on each element
  function eachFormElement() {
    var cb = this
      , e, i
      , serializeSubtags = function (e, tags) {
          var i, j, fa
          for (i = 0; i < tags.length; i++) {
            fa = e[byTag](tags[i])
            for (j = 0; j < fa.length; j++) serial(fa[j], cb)
          }
        }

    for (i = 0; i < arguments.length; i++) {
      e = arguments[i]
      if (/input|select|textarea/i.test(e.tagName)) serial(e, cb)
      serializeSubtags(e, [ 'input', 'select', 'textarea' ])
    }
  }

  // standard query string style serialization
  function serializeQueryString() {
    return reqwest.toQueryString(reqwest.serializeArray.apply(null, arguments))
  }

  // { 'name': 'value', ... } style serialization
  function serializeHash() {
    var hash = {}
    eachFormElement.apply(function (name, value) {
      if (name in hash) {
        hash[name] && !isArray(hash[name]) && (hash[name] = [hash[name]])
        hash[name].push(value)
      } else hash[name] = value
    }, arguments)
    return hash
  }

  // [ { name: 'name', value: 'value' }, ... ] style serialization
  reqwest.serializeArray = function () {
    var arr = []
    eachFormElement.apply(function (name, value) {
      arr.push({name: name, value: value})
    }, arguments)
    return arr
  }

  reqwest.serialize = function () {
    if (arguments.length === 0) return ''
    var opt, fn
      , args = Array.prototype.slice.call(arguments, 0)

    opt = args.pop()
    opt && opt.nodeType && args.push(opt) && (opt = null)
    opt && (opt = opt.type)

    if (opt == 'map') fn = serializeHash
    else if (opt == 'array') fn = reqwest.serializeArray
    else fn = serializeQueryString

    return fn.apply(null, args)
  }

  reqwest.toQueryString = function (o, trad) {
    var prefix, i
      , traditional = trad || false
      , s = []
      , enc = encodeURIComponent
      , add = function (key, value) {
          // If value is a function, invoke it and return its value
          value = ('function' === typeof value) ? value() : (value == null ? '' : value)
          s[s.length] = enc(key) + '=' + enc(value)
        }
    // If an array was passed in, assume that it is an array of form elements.
    if (isArray(o)) {
      for (i = 0; o && i < o.length; i++) add(o[i]['name'], o[i]['value'])
    } else {
      // If traditional, encode the "old" way (the way 1.3.2 or older
      // did it), otherwise encode params recursively.
      for (prefix in o) {
        if (o.hasOwnProperty(prefix)) buildParams(prefix, o[prefix], traditional, add)
      }
    }

    // spaces should be + according to spec
    return s.join('&').replace(/%20/g, '+')
  }

  function buildParams(prefix, obj, traditional, add) {
    var name, i, v
      , rbracket = /\[\]$/

    if (isArray(obj)) {
      // Serialize array item.
      for (i = 0; obj && i < obj.length; i++) {
        v = obj[i]
        if (traditional || rbracket.test(prefix)) {
          // Treat each array item as a scalar.
          add(prefix, v)
        } else {
          buildParams(prefix + '[' + (typeof v === 'object' ? i : '') + ']', v, traditional, add)
        }
      }
    } else if (obj && obj.toString() === '[object Object]') {
      // Serialize object item.
      for (name in obj) {
        buildParams(prefix + '[' + name + ']', obj[name], traditional, add)
      }

    } else {
      // Serialize scalar item.
      add(prefix, obj)
    }
  }

  reqwest.getcallbackPrefix = function () {
    return callbackPrefix
  }

  // jQuery and Zepto compatibility, differences can be remapped here so you can call
  // .ajax.compat(options, callback)
  reqwest.compat = function (o, fn) {
    if (o) {
      o['type'] && (o['method'] = o['type']) && delete o['type']
      o['dataType'] && (o['type'] = o['dataType'])
      o['jsonpCallback'] && (o['jsonpCallbackName'] = o['jsonpCallback']) && delete o['jsonpCallback']
      o['jsonp'] && (o['jsonpCallback'] = o['jsonp'])
    }
    return new Reqwest(o, fn)
  }

  reqwest.ajaxSetup = function (options) {
    options = options || {}
    for (var k in options) {
      globalSetupOptions[k] = options[k]
    }
  }

  return reqwest
});

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/test.js.































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var spawn = require('child_process').spawn
  , server  = spawn('node', ['make/tests.js'])
  , phantom = spawn('./vendor/phantomjs', ['./phantom.js'])


phantom.stdout.on('data', function (data) {
  console.log('stdout: ' + data);
})

phantom.on('exit', function (code, signal) {
  var outcome = code == 0 ? 'passed' : 'failed'
  console.log('Reqwest tests have %s', outcome, code)
  server.kill('SIGHUP')
  process.exit(code)
})

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/ender.js.











































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/*!
  * Ender: open module JavaScript framework (client-lib)
  * copyright Dustin Diaz & Jacob Thornton 2011-2012 (@ded @fat)
  * http://ender.no.de
  * License MIT
  */
(function (context) {

  // a global object for node.js module compatiblity
  // ============================================

  context['global'] = context

  // Implements simple module system
  // losely based on CommonJS Modules spec v1.1.1
  // ============================================

  var modules = {}
    , old = context['$']
    , oldRequire = context['require']
    , oldProvide = context['provide']

  function require (identifier) {
    // modules can be required from ender's build system, or found on the window
    var module = modules['$' + identifier] || window[identifier]
    if (!module) throw new Error("Ender Error: Requested module '" + identifier + "' has not been defined.")
    return module
  }

  function provide (name, what) {
    return (modules['$' + name] = what)
  }

  context['provide'] = provide
  context['require'] = require

  function aug(o, o2) {
    for (var k in o2) k != 'noConflict' && k != '_VERSION' && (o[k] = o2[k])
    return o
  }

  /**
   * main Ender return object
   * @constructor
   * @param {Array|Node|string} s a CSS selector or DOM node(s)
   * @param {Array.|Node} r a root node(s)
   */
  function Ender(s, r) {
    var elements
      , i

    this.selector = s
    // string || node || nodelist || window
    if (typeof s == 'undefined') {
      elements = []
      this.selector = ''
    } else if (typeof s == 'string' || s.nodeName || (s.length && 'item' in s) || s == window) {
      elements = ender._select(s, r)
    } else {
      elements = isFinite(s.length) ? s : [s]
    }
    this.length = elements.length
    for (i = this.length; i--;) this[i] = elements[i]
  }

  /**
   * @param {function(el, i, inst)} fn
   * @param {Object} opt_scope
   * @returns {Ender}
   */
  Ender.prototype['forEach'] = function (fn, opt_scope) {
    var i, l
    // opt out of native forEach so we can intentionally call our own scope
    // defaulting to the current item and be able to return self
    for (i = 0, l = this.length; i < l; ++i) i in this && fn.call(opt_scope || this[i], this[i], i, this)
    // return self for chaining
    return this
  }

  Ender.prototype.$ = ender // handy reference to self


  function ender(s, r) {
    return new Ender(s, r)
  }

  ender['_VERSION'] = '0.4.3-dev'

  ender.fn = Ender.prototype // for easy compat to jQuery plugins

  ender.ender = function (o, chain) {
    aug(chain ? Ender.prototype : ender, o)
  }

  ender._select = function (s, r) {
    if (typeof s == 'string') return (r || document).querySelectorAll(s)
    if (s.nodeName) return [s]
    return s
  }


  // use callback to receive Ender's require & provide
  ender.noConflict = function (callback) {
    context['$'] = old
    if (callback) {
      context['provide'] = oldProvide
      context['require'] = oldRequire
      callback(require, provide, this)
    }
    return this
  }

  if (typeof module !== 'undefined' && module.exports) module.exports = ender
  // use subscript notation as extern for Closure compilation
  context['ender'] = context['$'] = context['ender'] || ender

}(this));

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/badfixtures.xml.



>
1
><><>Not a valid xml document<><><

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/fixtures.html.



>
1
<p>boosh</p>

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/fixtures.js.



>
1
window.boosh = 'boosh';

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/fixtures.json.



>
1
{ "boosh": "boosh" }

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/fixtures.xml.



>
1
<root><boosh>boosh</boosh></root>

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/fixtures_jsonp.jsonp.



>
1
reqwest_0({ "boosh": "boosh" });

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/fixtures_jsonp2.jsonp.



>
1
bar({ "boosh": "boosh" });

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/fixtures_jsonp3.jsonp.



>
1
reqwest_2({ "boosh": "boosh" });

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/fixtures_jsonp_multi.jsonp.



>
1
reqwest_0({ "a": "a" });

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/fixtures_jsonp_multi_b.jsonp.



>
1
reqwest_0({ "b": "b" });

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/fixtures_jsonp_multi_c.jsonp.



>
1
reqwest_0({ "c": "c" });

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/fixtures_with_prefix.json.



>
1
])}while(1);</x>{ "boosh": "boosh" }

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/fixtures/invalidJSON.json.











>
>
>
>
>
1
2
3
4
5
this is not valid JSON!, there: are ~!_+ punctuation

marks

all, over, the:place ^ 2

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/tests.html.



















































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<!DOCTYPE HTML>
<html lang="en-us">
  <head>
    <title>Reqwest tests</title>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <link rel="stylesheet" href="/node_modules/sink-test/src/sink.css" type="text/css">
    <script src="/node_modules/valentine/valentine.js"></script>
    <script src="/node_modules/sink-test/src/sink.js"></script>
    <script src="/tests/ender.js"></script>
    <script src="/src/reqwest.js"></script>
    <script src="/src/ender.js"></script>
    <style type="text/css">
      #fixtures {
        position: absolute;
        top: -9999em;
      }
    </style>
  </head>
  <body>
    <h1>Reqwest Tests</h1>
    <div id="fixtures">
      <form action="/foo" method="post">
        <input type="submit" value="Continue">
        <input type="text" name="foo" value="bar">
        <input type="hidden" name="bar" value="baz">
        <input type="checkbox" name="wha" checked value="1">
        <input type="checkbox" name="wha" value="2">
        <input type="checkbox" name="wha" checked value="3">
        <input type="radio" name="who" value="one">
        <input type="radio" name="who" checked value="tawoo">
        <input type="radio" name="who" value="three">
        <input type="text" name="$escapable name$" value="escapeme" />
        <select name="choices">
          <option>one</option>
          <option selected>two</option>
          <option>tres</option>
        </select>
        <textarea name="opinions">world peace is not real</textarea>
      </form>
      <form action="/baa" method="get">
        <textarea name="T3" rows="2" cols="15">?
A B
Z</textarea>
        <input type="hidden" name="H1" value="x" />       <!-- 0 -->
        <input type="hidden" name="H2" />                 <!-- 1 -->
        <input type="password" name="PWD1" value="xyz" /> <!-- 2 -->
        <input type="password" name="PWD2" />             <!-- 3 -->
        <input type="text" name="T1" />                   <!-- 4 -->
        <input type="text" name="T2" value="YES" readonly="readonly" /> <!-- 5 -->
        <input type="checkbox" name="C1" value="1" />     <!-- 6 -->
        <input type="checkbox" name="C2" />               <!-- 7 -->
        <input type="radio" name="R1" value="1" />        <!-- 8 -->
        <input type="radio" name="R1" value="" />         <!-- 9 -->
        <input type="text" name="My Name" value="me" />   <!-- 10 -->
        <input type="reset" name="rst" value="NO" />      <!-- 11 -->
        <input type="file" name="file" />                 <!-- 12 -->
        <input type="submit" name="sub" value="NO" />     <!-- 13 -->
        <select name="S1"></select>                       <!-- 0 -->
        <select name="S2">                                <!-- 1 -->
          <option value="abc">ABC</option>
          <option value="def">DEF</option>
          <option value="ghi">GHI</option>
          <option value="jkl">JKL</option>
          <option value="mno">MNO</option>
          <option value="pqr">PQR</option>
          <option value="disco stu">DISCO STU!</option>
          <option value="vwx">VWX</option>
          <option value="yz">YZ</option>
          <option value="">no no no!</option>
        </select>
        <select name="S3">                                <!-- 2 -->
          <option>ABC</option>
          <option>DEF</option>
          <option>GHI</option>
          <option>JKL</option>
          <option>MNO</option>
          <option>PQR</option>
          <option>DISCO STU!</option>
          <option>VWX</option>
          <option>YZ</option>
        </select>
        <select name="S4" multiple="multiple" size="3">   <!-- 3 -->
          <option value="1">One</option>
          <option value="2">Two</option>
          <option value="3">Three</option>
          <option value="4">Four</option>
          <option value="5">Five</option>
          <option value="6">Six</option>
          <option>Seven</option>
          <option>Eight</option>
          <option>Disco Stu!</option>
        </select>
        <input type="text" name="D1" value="NO" disabled="disabled" />  <!-- 14 -->
        <input type="checkbox" name="D2" value="NO" checked="checked" disabled="disabled" />  <!-- 15 -->
        <input type="radio" name="D3" value="NO" checked="checked" disabled="disabled" />  <!-- 16 -->
        <select name="D4" disabled="disabled"><option selected="selected" value="NO">NO</option></select> <!-- 4 -->
        <select name="D5"><option selected="selected" value="NO" disabled="disabled">NO</option></select> <!-- 5 -->
        <select name="D4" disabled="disabled "multiple="multiple" size="3"><option selected="selected" value="NO">NO</option></select> <!-- 6 -->
        <select name="D5" multiple="multiple" size="3"><option selected="selected" value="NO" disabled="disabled">NO</option></select> <!-- 7 -->
      </form>
    </div>
    <ol id="tests"></ol>
    <script src="/tests/tests.js"></script>
  </body>
</html>

Added cmd/pisc-web-ide/webroot/static/js/reqwest-2.0.5/tests/tests.js.























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
/*jshint maxlen:80*/
/*global reqwest:true, sink:true, start:true, ender:true, v:true, boosh:true*/

(function (ajax) {
  var BIND_ARGS = 'bind'
    , PASS_ARGS = 'pass'
    , FakeXHR = (function () {
        function FakeXHR () {
          this.args = {}
          FakeXHR.last = this
        }
        FakeXHR.setup = function () {
          FakeXHR.oldxhr = window['XMLHttpRequest']
          FakeXHR.oldaxo = window['ActiveXObject']
          window['XMLHttpRequest'] = FakeXHR
          window['ActiveXObject'] = FakeXHR
          FakeXHR.last = null
        }
        FakeXHR.restore = function () {
          window['XMLHttpRequest'] = FakeXHR.oldxhr
          window['ActiveXObject'] = FakeXHR.oldaxo
        }
        FakeXHR.prototype.methodCallCount = function (name) {
          return this.args[name] ? this.args[name].length : 0
        }
        FakeXHR.prototype.methodCallArgs = function (name, i, j) {
          var a = this.args[name]
              && this.args[name].length > i ? this.args[name][i] : null
          if (arguments.length > 2) return a && a.length > j ? a[j] : null
          return a
        }
        v.each(['open', 'send', 'setRequestHeader' ], function (f) {
          FakeXHR.prototype[f] = function () {
            if (!this.args[f]) this.args[f] = []
            this.args[f].push(arguments)
          }
        })
        return FakeXHR
      }())

  sink('Setup', function (test, ok, before, after) {
    before(function () {
      ajax.ajaxSetup({
        dataFilter: function (resp, type) {
          // example filter to prevent json hijacking
          return resp.substring('])}while(1);</x>'.length)
        }
      })
    })
    after(function () {
      ajax.ajaxSetup({
        // reset to original data filter
        dataFilter: function (resp, type) {
          return resp
        }
      })
    })
    test('dataFilter', function (complete) {
      ajax({
          url: '/tests/fixtures/fixtures_with_prefix.json'
        , type: 'json'
        , success: function (resp) {
            ok(resp, 'received response')
            ok(
                resp && resp.boosh == 'boosh'
              , 'correctly evaluated response as JSON'
            )
            complete()
          }
      })
    })
  })

  sink('Mime Types', function (test, ok) {
    test('JSON', function (complete) {
      ajax({
          url: '/tests/fixtures/fixtures.json'
        , type: 'json'
        , success: function (resp) {
            ok(resp, 'received response')
            ok(
                resp && resp.boosh == 'boosh'
              , 'correctly evaluated response as JSON'
            )
            complete()
          }
      })
    })

    test('JSONP', function (complete) {
      // stub callback prefix
      reqwest.getcallbackPrefix = function (id) {
        return 'reqwest_' + id
      }
      ajax({
          url: '/tests/fixtures/fixtures_jsonp.jsonp?callback=?'
        , type: 'jsonp'
        , success: function (resp) {
            ok(resp, 'received response for unique generated callback')
            ok(
                resp && resp.boosh == 'boosh'
              , 'correctly evaled response for unique generated cb as JSONP'
            )
            complete()
          }
      })
    })

    test('JS', function (complete) {
      ajax({
          url: '/tests/fixtures/fixtures.js'
        , type: 'js'
        , success: function () {
            ok(
                typeof boosh !== 'undefined' && boosh == 'boosh'
              , 'evaluated response as JavaScript'
            )
            complete()
          }
      })
    })

    test('HTML', function (complete) {
      ajax({
          url: '/tests/fixtures/fixtures.html'
        , type: 'html'
        , success: function (resp) {
            ok(resp == '<p>boosh</p>', 'evaluated response as HTML')
            complete()
          }
      })
    })

    test('XML', function (complete) {
      ajax({
          url: '/tests/fixtures/fixtures.xml'
        , type: 'xml'
        , success: function (resp) {
            ok(resp
                && resp.documentElement
                && resp.documentElement.nodeName == 'root'
              , 'XML Response root is <root>'
            )
            ok(resp
                && resp.documentElement
                && resp.documentElement.hasChildNodes
                && resp.documentElement.firstChild.nodeName == 'boosh'
                && resp.documentElement.firstChild.firstChild.nodeValue
                    == 'boosh'
              , 'Correct XML response'
            )
            complete()
          }
        , error: function (err) {
            ok(false, err.responseText)
            complete()
          }
      })
    })

    test('XML (404)', function (complete) {
      ajax({
          url:'/tests/fixtures/badfixtures.xml'
        , type:'xml'
        , success: function (resp) {
            if (resp == null) {
              ok(true, 'XML response is null')
              complete()
            } else {
              ok(resp
                  && resp.documentElement
                  && resp.documentElement.firstChild
                  && (/error/i).test(resp.documentElement.firstChild.nodeValue)
                , 'XML response reports parsing error'
              )
              complete()
            }
          }
        , error: function () {
            ok(true, 'No XML response (error())')
            complete()
          }
      })
    })
  })

  sink('JSONP', function (test, ok) {
    test('Named callback in query string', function (complete) {
      ajax({
          url: '/tests/fixtures/fixtures_jsonp2.jsonp?foo=bar'
        , type: 'jsonp'
        , jsonpCallback: 'foo'
        , success: function (resp) {
            ok(resp, 'received response for custom callback')
            ok(
                resp && resp.boosh == 'boosh'
              , 'correctly evaluated response as JSONP with custom callback'
            )
            complete()
          }
      })
    })

    test('Unnamed callback in query string', function (complete) {
      ajax({
          url: '/tests/fixtures/fixtures_jsonp3.jsonp?foo=?'
        , type: 'jsonp'
        , jsonpCallback: 'foo'
        , success: function (resp) {
            ok(resp, 'received response for custom wildcard callback')
            ok(
                resp && resp.boosh == 'boosh'
              , 'correctly evaled response as JSONP with custom wildcard cb'
            )
            complete()
          }
      })
    })

    test('No callback, no query string', function (complete) {
      ajax({
          url: '/tests/fixtures/fixtures_jsonp3.jsonp'
        , type: 'jsonp'
        , jsonpCallback: 'foo'
        , success: function (resp) {
            ok(resp, 'received response for custom wildcard callback')
            ok(
                resp && resp.boosh == 'boosh'
              , 'correctly evaled response as JSONP with custom cb not in url'
            )
            complete()
          }
      })
    })

    test('No callback in existing query string', function (complete) {
      ajax({
          url: '/tests/none.jsonp?echo&somevar=some+long+str+here'
        , type: 'jsonp'
        , jsonpCallbackName: 'yohoho'
        , success: function (resp) {
            ok(resp && resp.query, 'received response from echo callback')
            ok(
                resp && resp.query && resp.query.somevar == 'some long str here'
              , 'correctly evaluated response as JSONP with echo callback'
            )
            complete()
          }
      })
    })

    test('Append data to existing query string', function (complete) {
      ajax({
          url: '/tests/none.jsonp?echo' // should append &somevar...
        , type: 'jsonp'
        , data: { somevar: 'some long str here', anothervar: 'yo ho ho!' }
        , success: function (resp) {
            ok(resp && resp.query, 'received response from echo callback')
            ok(
                resp && resp.query && resp.query.somevar == 'some long str here'
              , 'correctly sent and received data object from JSONP echo (1)'
            )
            ok(
                resp && resp.query && resp.query.anothervar == 'yo ho ho!'
              , 'correctly sent and received data object from JSONP echo (2)'
            )
            complete()
          }
      })
    })

    test('Generate complete query string from data', function (complete) {
      ajax({
          url: '/tests/none.jsonp' // should append ?echo...etc.
        , type: 'jsonp'
        , data: [
              { name: 'somevar', value: 'some long str here' }
            , { name: 'anothervar', value: 'yo ho ho!' }
            , { name: 'echo', value: true }
          ]
        , success: function (resp) {
            ok(resp && resp.query, 'received response from echo callback')
            ok(
                resp && resp.query && resp.query.somevar == 'some long str here'
              , 'correctly sent and received data array from JSONP echo (1)'
            )
            ok(
                resp && resp.query && resp.query.anothervar == 'yo ho ho!'
              , 'correctly sent and received data array from JSONP echo (2)'
            )
            complete()
          }
      })
    })

    test('Append data to query string and insert callback name'
        , function (complete) {

      ajax({
          // should append data and match callback correctly
          url: '/tests/none.jsonp?callback=?'
        , type: 'jsonp'
        , jsonpCallbackName: 'reqwest_foo'
        , data: { foo: 'bar', boo: 'baz', echo: true }
        , success: function (resp) {
            ok(resp && resp.query, 'received response from echo callback')
            ok(
                resp && resp.query && resp.query.callback == 'reqwest_foo'
              , 'correctly matched callback in URL'
            )
            complete()
          }
      })
    })
  })

  sink('Callbacks', function (test, ok) {

    test('sync version', function (done) {
      var r = ajax({
        method: 'get'
      , url: '/tests/fixtures/fixtures.json'
      , type: 'json'
      , async: false
      })
      var request = r.request,
        responseText = request.response !== undefined ? request.response : request.responseText
      ok(eval('(' + responseText + ')').boosh == 'boosh', 'can make sync calls')
      done()
    })

    test('no callbacks', function (complete) {
      var pass = true
      try {
        ajax('/tests/fixtures/fixtures.js')
      } catch (ex) {
        pass = false
      } finally {
        ok(pass, 'successfully doesnt fail without callback')
        complete()
      }
    })

    test('complete is called', function (complete) {
      ajax({
          url: '/tests/fixtures/fixtures.js'
        , complete: function () {
            ok(true, 'called complete')
            complete()
          }
      })
    })

    test('invalid JSON sets error on resp object', function (complete) {
      ajax({
          url: '/tests/fixtures/invalidJSON.json'
        , type: 'json'
        , success: function () {
            ok(false, 'success callback fired')
            complete()
          }
        , error: function (resp, msg) {
            ok(
                msg == 'Could not parse JSON in response'
              , 'error callback fired'
            )
            complete()
          }
      })
    })

    test('multiple parallel named JSONP callbacks', 8, function () {
      ajax({
          url: '/tests/fixtures/fixtures_jsonp_multi.jsonp?callback=reqwest_0'
        , type: 'jsonp'
        , success: function (resp) {
            ok(resp, 'received response from call #1')
            ok(
                resp && resp.a == 'a'
              , 'evaluated response from call #1 as JSONP'
            )
          }
      })
      ajax({
          url: '/tests/fixtures/fixtures_jsonp_multi_b.jsonp?callback=reqwest_0'
        , type: 'jsonp'
        , success: function (resp) {
            ok(resp, 'received response from call #2')
            ok(
                resp && resp.b == 'b'
              , 'evaluated response from call #2 as JSONP'
            )
          }
      })
      ajax({
          url: '/tests/fixtures/fixtures_jsonp_multi_c.jsonp?callback=reqwest_0'
        , type: 'jsonp'
        , success: function (resp) {
            ok(resp, 'received response from call #2')
            ok(
                resp && resp.c == 'c'
              , 'evaluated response from call #3 as JSONP'
            )
          }
      })
      ajax({
          url: '/tests/fixtures/fixtures_jsonp_multi.jsonp?callback=reqwest_0'
        , type: 'jsonp'
        , success: function (resp) {
            ok(resp, 'received response from call #2')
            ok(
                resp && resp.a == 'a'
              , 'evaluated response from call #4 as JSONP'
            )
          }
      })
    })

    test('JSONP also supports success promises', function (complete) {
      ajax({
          url: '/tests/none.jsonp?echo'
        , type: 'jsonp'
        , success: function (resp) {
            ok(resp, 'received response in constructor success callback')
          }
      })
        .then(function (resp) {
            ok(resp, 'received response in promise success callback')
            return resp;
        })
        .then(function (resp) {
            ok(resp, 'received response in second promise success callback')
            complete()
        })
    })

    test('JSONP also supports error promises', function (complete) {
      ajax({
          url: '/tests/timeout/'
        , type: 'jsonp'
        , error: function (err) {
            ok(err, 'received error response in constructor error callback')
          }
      })
        .fail(function (err) {
            ok(err, 'received error response in promise error callback')
        })
        .fail(function (err) {
            ok(err, 'received error response in second promise error callback')
            complete()
        })
        .abort()
    })

  })

  if (window.XMLHttpRequest
    && ('withCredentials' in new window.XMLHttpRequest())) {

    sink('Cross-origin Resource Sharing', function (test, ok) {
      test('make request to another origin', 1, function () {
        ajax({
            url: 'http://' + window.location.hostname + ':5678/get-value'
          , type: 'text'
          , method: 'get'
          , crossOrigin: true
          , complete: function (resp) {
              ok(resp.responseText === 'hello', 'request made successfully')
            }
        })
      })

      test('set cookie on other origin', 2, function () {
        ajax({
            url: 'http://' + window.location.hostname + ':5678/set-cookie'
          , type: 'text'
          , method: 'get'
          , crossOrigin: true
          , withCredentials: true
          , before: function (http) {
              ok(
                  http.withCredentials === true
                , 'has set withCredentials on connection object'
              )
            }
          , complete: function (resp) {
              ok(resp.status === 200, 'cookie set successfully')
            }
        })
      })

      test('get cookie from other origin', 1, function () {
        ajax({
              url: 'http://'
                  + window.location.hostname
                  + ':5678/get-cookie-value'
            , type: 'text'
            , method: 'get'
            , crossOrigin: true
            , withCredentials: true
            , complete: function (resp) {
                ok(
                    resp.responseText == 'hello'
                  , 'cookie value retrieved successfully'
                )
              }
        })
      })

    })
  }

  sink('Connection Object', function (test, ok) {

    test('use xhr factory provided in the options', function (complete) {
      var reqwest
      , xhr

      if (typeof XMLHttpRequest !== 'undefined') {
          xhr = new XMLHttpRequest()
      } else if (typeof ActiveXObject !== 'undefined') {
          xhr = new ActiveXObject('Microsoft.XMLHTTP')
      } else {
        ok(false, 'browser not supported')
      }

      reqwest = ajax({
          url: '/tests/fixtures/fixtures.html',
          xhr: function () {
            return xhr
          }
      })

      ok(reqwest.request === xhr, 'uses factory')
      complete()
    })

    test('fallbacks to own xhr factory if falsy is returned', function (complete) {
      var reqwest

      FakeXHR.setup()
      try {
        reqwest = ajax({
            url: '/tests/fixtures/fixtures.html',
            xhr: function () {
              return null
            }
        })

        ok(reqwest.request instanceof FakeXHR, 'fallbacks correctly')
        complete()
      } finally {
        FakeXHR.restore()
      }
    })

    test('setRequestHeaders', function (complete) {
      ajax({
          url: '/tests/fixtures/fixtures.html'
        , data: 'foo=bar&baz=thunk'
        , method: 'post'
        , headers: {
            'Accept': 'application/x-foo'
          }
        , success: function () {
            ok(true, 'can post headers')
            complete()
          }
      })
    })

    test('can inspect http before send', function (complete) {
      var connection = ajax({
          url: '/tests/fixtures/fixtures.js'
        , method: 'post'
        , type: 'js'
        , before: function (http) {
            ok(http.readyState == 1, 'received http connection object')
          }
        , success: function () {
            // Microsoft.XMLHTTP appears not to run this async in IE6&7, it
            // processes the request and triggers success() before ajax() even
            // returns. Perhaps a better solution would be to defer the calls
            // within handleReadyState()
            setTimeout(function () {
              ok(
                  connection.request.readyState == 4
                , 'success callback has readyState of 4'
              )
              complete()
            }, 0)
        }
      })
    })

    test('ajax() encodes array `data`', function (complete) {
      FakeXHR.setup()
      try {
       ajax({
            url: '/tests/fixtures/fixtures.html'
          , method: 'post'
          , data: [
                { name: 'foo', value: 'bar' }
              , { name: 'baz', value: 'thunk' }
            ]
        })
        ok(FakeXHR.last.methodCallCount('send') == 1, 'send called')
        ok(
            FakeXHR.last.methodCallArgs('send', 0).length == 1
          , 'send called with 1 arg'
        )
        ok(
            FakeXHR.last.methodCallArgs('send', 0, 0) == 'foo=bar&baz=thunk'
          , 'send called with encoded array'
        )
        complete()
      } finally {
        FakeXHR.restore()
      }
    })

    test('ajax() encodes hash `data`', function (complete) {
      FakeXHR.setup()
      try {
        ajax({
            url: '/tests/fixtures/fixtures.html'
          , method: 'post'
          , data: { bar: 'foo', thunk: 'baz' }
        })
        ok(FakeXHR.last.methodCallCount('send') == 1, 'send called')
        ok(
            FakeXHR.last.methodCallArgs('send', 0).length == 1
          , 'send called with 1 arg'
        )
        ok(
            FakeXHR.last.methodCallArgs('send', 0, 0) == 'bar=foo&thunk=baz'
          , 'send called with encoded array'
        )
        complete()
      } finally {
        FakeXHR.restore()
      }
    })

    test('ajax() obeys `processData`', function (complete) {
      FakeXHR.setup()
      try {
        var d = { bar: 'foo', thunk: 'baz' }
        ajax({
            url: '/tests/fixtures/fixtures.html'
          , processData: false
          , method: 'post'
          , data: d
        })
        ok(FakeXHR.last.methodCallCount('send') == 1, 'send called')
        ok(
            FakeXHR.last.methodCallArgs('send', 0).length == 1
          , 'send called with 1 arg'
        )
        ok(
            FakeXHR.last.methodCallArgs('send', 0, 0) === d
          , 'send called with exact `data` object'
        )
        complete()
      } finally {
        FakeXHR.restore()
      }
    })

    function testXhrGetUrlAdjustment(url, data, expectedUrl, complete) {
      FakeXHR.setup()
      try {
        ajax({ url: url, data: data })
        ok(FakeXHR.last.methodCallCount('open') == 1, 'open called')
        ok(
            FakeXHR.last.methodCallArgs('open', 0).length == 3
          , 'open called with 3 args'
        )
        ok(
            FakeXHR.last.methodCallArgs('open', 0, 0) == 'GET'
          , 'first arg of open() is "GET"'
        )
        ok(FakeXHR.last.methodCallArgs('open', 0, 1) == expectedUrl
          , 'second arg of open() is URL with query string')
        ok(
            FakeXHR.last.methodCallArgs('open', 0, 2) === true
          , 'third arg of open() is `true`'
        )
        ok(FakeXHR.last.methodCallCount('send') == 1, 'send called')
        ok(
            FakeXHR.last.methodCallArgs('send', 0).length == 1
          , 'send called with 1 arg'
        )
        ok(
            FakeXHR.last.methodCallArgs('send', 0, 0) === null
          , 'send called with null'
        )
        complete()
      } finally {
        FakeXHR.restore()
      }
    }

    test('ajax() appends GET URL with ?`data`', function (complete) {
      testXhrGetUrlAdjustment(
          '/tests/fixtures/fixtures.html'
        , 'bar=foo&thunk=baz'
        , '/tests/fixtures/fixtures.html?bar=foo&thunk=baz'
        , complete
      )
    })

    test('ajax() appends GET URL with ?`data` (serialized object)'
          , function (complete) {

      testXhrGetUrlAdjustment(
          '/tests/fixtures/fixtures.html'
        , { bar: 'foo', thunk: 'baz' }
        , '/tests/fixtures/fixtures.html?bar=foo&thunk=baz'
        , complete
      )
    })

    test('ajax() appends GET URL with &`data` (serialized array)'
          , function (complete) {

      testXhrGetUrlAdjustment(
          '/tests/fixtures/fixtures.html?x=y'
        , [ { name: 'bar', value: 'foo'}, {name: 'thunk', value: 'baz' } ]
        , '/tests/fixtures/fixtures.html?x=y&bar=foo&thunk=baz'
        , complete
      )
    })
  })

  sink('Standard vs compat mode', function (test, ok) {
    function methodMatch(resp, method) {
       return resp && resp.method === method
    }
    function headerMatch(resp, key, expected) {
      return resp && resp.headers && resp.headers[key] === expected
    }
    function queryMatch(resp, key, expected) {
      return resp && resp.query && resp.query[key] === expected
    }

    test('standard mode default', function (complete) {
      ajax({
          url: '/tests/none.json?echo'
        , success: function (resp) {
            ok(methodMatch(resp, 'GET'), 'correct request method (GET)')
            ok(
                headerMatch(
                    resp
                  , 'content-type'
                  , 'application/x-www-form-urlencoded'
                )
              , 'correct Content-Type request header'
            )
            ok(
                headerMatch(resp, 'x-requested-with', 'XMLHttpRequest')
              , 'correct X-Requested-With header'
            )
            ok(
                headerMatch(
                    resp
                  , 'accept'
                  , 'text/javascript, text/html, application/xml, text/xml, */*'
                )
              , 'correct Accept header'
            )
            complete()
          }
      })
    })

    test('standard mode custom content-type', function (complete) {
      ajax({
          url: '/tests/none.json?echo'
        , contentType: 'yapplication/foobar'
        , success: function (resp) {
            ok(methodMatch(resp, 'GET'), 'correct request method (GET)')
            ok(
                headerMatch(resp, 'content-type', 'yapplication/foobar')
              , 'correct Content-Type request header'
            )
            ok(
                headerMatch(resp, 'x-requested-with', 'XMLHttpRequest')
              , 'correct X-Requested-With header'
            )
            ok(
                headerMatch(
                    resp
                  , 'accept'
                  , 'text/javascript, text/html, application/xml, text/xml, */*'
                )
              , 'correct Accept header'
            )
            complete()
          }
      })
    })

    test('standard mode on no content-type', function (complete) {
      ajax({
        url: '/tests/204'
          , success: function (resp) {
            ok(true, 'Nothing blew up.')
          }
        })
    })

    test('compat mode "dataType=json" headers', function (complete) {
      ajax.compat({
          url: '/tests/none.json?echo'
        , dataType: 'json' // should map to 'type'
        , success: function (resp) {
            ok(methodMatch(resp, 'GET'), 'correct request method (GET)')
            ok(
                headerMatch(
                    resp
                  , 'content-type'
                  , 'application/x-www-form-urlencoded'
                )
              , 'correct Content-Type request header'
            )
            ok(
                headerMatch(resp, 'x-requested-with', 'XMLHttpRequest')
              , 'correct X-Requested-With header'
            )
            ok(
                headerMatch(resp, 'accept', 'application/json, text/javascript')
              , 'correct Accept header'
            )
            complete()
          }
      })
    })

    test('compat mode "dataType=json" with "type=post" headers'
        , function (complete) {
      ajax.compat({
          url: '/tests/none.json?echo'
        , type: 'post'
        , dataType: 'json' // should map to 'type'
        , success: function (resp) {
            ok(methodMatch(resp, 'POST'), 'correct request method (POST)')
            ok(
                headerMatch(
                    resp
                  , 'content-type'
                  , 'application/x-www-form-urlencoded'
                )
              , 'correct Content-Type request header'
            )
            ok(
                headerMatch(resp, 'x-requested-with', 'XMLHttpRequest')
              , 'correct X-Requested-With header'
            )
            ok(
                headerMatch(resp, 'accept', 'application/json, text/javascript')
              , 'correct Accept header'
            )
            complete()
          }
      })
    })

    test('compat mode "dataType=json" headers (with additional headers)'
        , function (complete) {

      ajax.compat({
          url: '/tests/none.json?echo'
        , dataType: 'json' // should map to 'type'
          // verify that these are left intact and nothing screwy
          // happens with headers
        , headers: { one: 1, two: 2 }
        , success: function (resp) {
            ok(
                headerMatch(
                    resp
                  , 'content-type'
                  , 'application/x-www-form-urlencoded'
                )
              , 'correct Content-Type request header'
            )
            ok(
                headerMatch(resp, 'x-requested-with', 'XMLHttpRequest')
              , 'correct X-Requested-With header'
            )
            ok(
                headerMatch(resp, 'accept', 'application/json, text/javascript')
              , 'correct Accept header'
            )
            ok(
                headerMatch(resp, 'one', '1') && headerMatch(resp, 'two', '2')
              , 'left additional headers intact'
            )
            complete()
          }
      })
    })

    test('compat mode "dataType=jsonp" query string', function (complete) {
      ajax.compat({
          url: '/tests/none.jsonp?echo'
        , dataType: 'jsonp'
        , jsonp: 'testCallback' // should map to jsonpCallback
        , jsonpCallback: 'foobar' // should map to jsonpCallbackName
        , success: function (resp) {
            ok(
                queryMatch(resp, 'echo', '')
              , 'correct Content-Type request header'
            )
            ok(
                queryMatch(resp, 'testCallback', 'foobar')
              , 'correct X-Requested-With header'
            )
            complete()
          }
      })
    })
  })

  /***************** SERIALIZER TESTS ***********************/

  // define some helpers for the serializer tests that are used often and
  // shared with the ender integration tests

  function createSerializeHelper(ok) {
    var forms = document.forms
      , foo = forms[0].getElementsByTagName('input')[1]
      , bar = forms[0].getElementsByTagName('input')[2]
      , choices = forms[0].getElementsByTagName('select')[0]
      , BIND_ARGS = 'bind'
      , PASS_ARGS = 'pass'

    function reset() {
      forms[1].reset()
    }

    function formElements(formIndex, tagName, elementIndex) {
      return forms[formIndex].getElementsByTagName(tagName)[elementIndex]
    }

    function isArray(a) {
      return Object.prototype.toString.call(a) == '[object Array]'
    }

    function sameValue(value, expected) {
      if (expected == null) {
        return value === null
      } else if (isArray(expected)) {
        if (value.length !== expected.length) return false
        for (var i = 0; i < expected.length; i++) {
          if (value[i] != expected[i]) return false
        }
        return true
      } else return value == expected
    }

    function testInput(input, name, value, str) {
      var sa = ajax.serialize(input, { type: 'array' })
        , sh = ajax.serialize(input, { type: 'map' })
        , av, i

      if (value != null) {
        av = isArray(value) ? value : [ value ]

        ok(
            sa.length == av.length
          ,   'serialize(' + str + ', {type:\'array\'}) returns array '
            + '[{name,value}]'
        )

        for (i = 0; i < av.length; i++) {
          ok(
              name == sa[i].name
            , 'serialize(' + str + ', {type:\'array\'})[' + i + '].name'
          )
          ok(
              av[i] == sa[i].value
            , 'serialize(' + str + ', {type:\'array\'})[' + i + '].value'
          )
        }

        ok(sameValue(sh[name], value), 'serialize(' + str + ', {type:\'map\'})')
      } else {
        // the cases where an element shouldn't show up at all, checkbox not
        // checked for example
        ok(sa.length === 0, 'serialize(' + str + ', {type:\'array\'}) is []')
        ok(
            v.keys(sh).length === 0
          , 'serialize(' + str + ', {type:\'map\'}) is {}'
        )
      }
    }

    function testFormSerialize(method, type) {
      var expected =
            'foo=bar&bar=baz&wha=1&wha=3&who=tawoo&%24escapable+name'
          + '%24=escapeme&choices=two&opinions=world+peace+is+not+real'

      ok(method, 'serialize() bound to context')
      ok(
          (method ? method(forms[0]) : null) == expected
        , 'serialized form (' + type + ')'
      )
    }

    function executeMultiArgumentMethod(method, argType, options) {
      var els = [ foo, bar, choices ]
        , ths = argType === BIND_ARGS ? ender(els) : null
        , args = argType === PASS_ARGS ? els : []

      if (!!options) args.push(options)

      return method.apply(ths, args)
    }

    function testMultiArgumentSerialize(method, type, argType) {
      ok(method, 'serialize() bound in context')
      var result = method ? executeMultiArgumentMethod(method, argType) : null
      ok(
          result == 'foo=bar&bar=baz&choices=two'
        , 'serialized all 3 arguments together'
      )
    }

    function verifyFormSerializeArray(result, type) {
      var expected = [
              { name: 'foo', value: 'bar' }
            , { name: 'bar', value: 'baz' }
            , { name: 'wha', value: 1 }
            , { name: 'wha', value: 3 }
            , { name: 'who', value: 'tawoo' }
            , { name: '$escapable name$', value: 'escapeme' }
            , { name: 'choices', value: 'two' }
            , { name: 'opinions', value: 'world peace is not real' }
          ]
        , i

    for (i = 0; i < expected.length; i++) {
        ok(v.some(result, function (v) {
          return v.name == expected[i].name && v.value == expected[i].value
        }), 'serialized ' + expected[i].name + ' (' + type + ')')
      }
    }

    function testFormSerializeArray(method, type) {
      ok(method, 'serialize(..., {type:\'array\'}) bound to context')

      var result = method ? method(forms[0], { type: 'array' }) : []
      if (!result) result = []

      verifyFormSerializeArray(result, type)
    }

    function testMultiArgumentSerializeArray(method, type, argType) {
        ok(method, 'serialize(..., {type:\'array\'}) bound to context')
        var result = method
          ? executeMultiArgumentMethod(method, argType, { type: 'array' })
          : []

        if (!result) result = []

        ok(result.length == 3, 'serialized as array of 3')
        ok(
            result.length == 3
            && result[0].name == 'foo'
            && result[0].value == 'bar'
          , 'serialized first element (' + type + ')'
        )
        ok(
            result.length == 3
            && result[1].name == 'bar'
            && result[1].value == 'baz'
          , 'serialized second element (' + type + ')'
        )
        ok(
            result.length == 3
            && result[2].name == 'choices'
            && result[2].value == 'two'
          , 'serialized third element (' + type + ')'
        )
      }

    function testFormSerializeHash(method, type) {
      var expected = {
              foo: 'bar'
            , bar: 'baz'
            , wha: [ '1', '3' ]
            , who: 'tawoo'
            , '$escapable name$': 'escapeme'
            , choices: 'two'
            , opinions: 'world peace is not real'
          }
        , result

      ok(method, 'serialize({type:\'map\'}) bound to context')

      result = method ? method(forms[0], { type: 'map' }) : {}
      if (!result) result = {}

      ok(
          v.keys(expected).length === v.keys(result).length
        , 'same number of keys (' + type + ')'
      )

      v.each(v.keys(expected), function (k) {
        ok(
            sameValue(expected[k], result[k])
          , 'same value for ' + k + ' (' + type + ')'
        )
      })
    }

    function testMultiArgumentSerializeHash(method, type, argType) {
      ok(method, 'serialize({type:\'map\'}) bound to context')
      var result = method
        ? executeMultiArgumentMethod(method, argType, { type: 'map' })
        : {}
      if (!result) result = {}
      ok(result.foo == 'bar', 'serialized first element (' + type + ')')
      ok(result.bar == 'baz', 'serialized second element (' + type + ')')
      ok(result.choices == 'two', 'serialized third element (' + type + ')')
    }

    return {
      reset: reset
      , formElements: formElements
      , testInput: testInput
      , testFormSerialize: testFormSerialize
      , testMultiArgumentSerialize: testMultiArgumentSerialize
      , testFormSerializeArray: testFormSerializeArray
      , verifyFormSerializeArray: verifyFormSerializeArray
      , testMultiArgumentSerializeArray: testMultiArgumentSerializeArray
      , testFormSerializeHash: testFormSerializeHash
      , testMultiArgumentSerializeHash: testMultiArgumentSerializeHash
    }
  }

  sink('Serializing', function (test, ok) {

    /*
     * Serialize forms according to spec.
     *  * reqwest.serialize(ele[, ele...]) returns a query string style
     *    serialization
     *  * reqwest.serialize(ele[, ele...], {type:'array'}) returns a
     *    [ { name: 'name', value: 'value'}, ... ] style serialization,
     *    compatible with jQuery.serializeArray()
     *  * reqwest.serialize(ele[, ele...], {type:\'map\'}) returns a
     *    { 'name': 'value', ... } style serialization, compatible with
     *    Prototype Form.serializeElements({hash:true})
     * Some tests based on spec notes here:
     *    http://malsup.com/jquery/form/comp/test.html
     */

    var sHelper = createSerializeHelper(ok)
    sHelper.reset()

    test('correctly serialize textarea', function (complete) {
      var textarea = sHelper.formElements(1, 'textarea', 0)
        , sa

      // the texarea has 2 different newline styles, should come out as
      // normalized CRLF as per forms spec
      ok(
          'T3=%3F%0D%0AA+B%0D%0AZ' == ajax.serialize(textarea)
        , 'serialize(textarea)'
      )
      sa = ajax.serialize(textarea, { type: 'array' })
      ok(sa.length == 1, 'serialize(textarea, {type:\'array\'}) returns array')
      sa = sa[0]
      ok('T3' == sa.name, 'serialize(textarea, {type:\'array\'}).name')
      ok(
          '?\r\nA B\r\nZ' == sa.value
        , 'serialize(textarea, {type:\'array\'}).value'
      )
      ok(
          '?\r\nA B\r\nZ' == ajax.serialize(textarea, { type: 'map' }).T3
        , 'serialize(textarea, {type:\'map\'})'
      )
      complete()
    })

    test('correctly serialize input[type=hidden]', function (complete) {
      sHelper.testInput(
          sHelper.formElements(1, 'input', 0)
        , 'H1'
        , 'x'
        , 'hidden'
      )
      sHelper.testInput(
          sHelper.formElements(1, 'input', 1)
        , 'H2'
        , ''
        , 'hidden[no value]'
      )
      complete()
    })

    test('correctly serialize input[type=password]', function (complete) {
      sHelper.testInput(
          sHelper.formElements(1, 'input', 2)
        , 'PWD1'
        , 'xyz'
        , 'password'
      )
      sHelper.testInput(
          sHelper.formElements(1, 'input', 3)
        , 'PWD2'
        , ''
        , 'password[no value]'
      )
      complete()
    })

    test('correctly serialize input[type=text]', function (complete) {
      sHelper.testInput(
          sHelper.formElements(1, 'input', 4)
        , 'T1'
        , ''
        , 'text[no value]'
      )
      sHelper.testInput(
          sHelper.formElements(1, 'input', 5)
        , 'T2'
        , 'YES'
        , 'text[readonly]'
      )
      sHelper.testInput(
          sHelper.formElements(1, 'input', 10)
        , 'My Name'
        , 'me'
        , 'text[space name]'
      )
      complete()
    })

    test('correctly serialize input[type=checkbox]', function (complete) {
      var cb1 = sHelper.formElements(1, 'input', 6)
        , cb2 = sHelper.formElements(1, 'input', 7)
      sHelper.testInput(cb1, 'C1', null, 'checkbox[not checked]')
      cb1.checked = true
      sHelper.testInput(cb1, 'C1', '1', 'checkbox[checked]')
      // special case here, checkbox with no value='' should give you 'on'
      // for cb.value
      sHelper.testInput(cb2, 'C2', null, 'checkbox[no value, not checked]')
      cb2.checked = true
      sHelper.testInput(cb2, 'C2', 'on', 'checkbox[no value, checked]')
      complete()
    })

    test('correctly serialize input[type=radio]', function (complete) {
      var r1 = sHelper.formElements(1, 'input', 8)
        , r2 = sHelper.formElements(1, 'input', 9)
      sHelper.testInput(r1, 'R1', null, 'radio[not checked]')
      r1.checked = true
      sHelper.testInput(r1, 'R1', '1', 'radio[not checked]')
      sHelper.testInput(r2, 'R1', null, 'radio[no value, not checked]')
      r2.checked = true
      sHelper.testInput(r2, 'R1', '', 'radio[no value, checked]')
      complete()
    })

    test('correctly serialize input[type=reset]', function (complete) {
      sHelper.testInput(
          sHelper.formElements(1, 'input', 11)
        , 'rst'
        , null
        , 'reset'
      )
      complete()
    })

    test('correctly serialize input[type=file]', function (complete) {
      sHelper.testInput(
          sHelper.formElements(1, 'input', 12)
        , 'file'
        , null
        , 'file'
      )
      complete()
    })

    test('correctly serialize input[type=submit]', function (complete) {
      // we're only supposed to serialize a submit button if it was clicked to
      // perform this serialization:
      // http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2
      // but we'll pretend to be oblivious to this part of the spec...
      sHelper.testInput(
          sHelper.formElements(1, 'input', 13)
        , 'sub'
        , 'NO'
        , 'submit'
      )
      complete()
    })

    test('correctly serialize select with no options', function (complete) {
      var select = sHelper.formElements(1, 'select', 0)
      sHelper.testInput(select, 'S1', null, 'select, no options')
      complete()
    })

    test('correctly serialize select with values', function (complete) {
      var select = sHelper.formElements(1, 'select', 1)
      sHelper.testInput(select, 'S2', 'abc', 'select option 1 (default)')
      select.selectedIndex = 1
      sHelper.testInput(select, 'S2', 'def', 'select option 2')
      select.selectedIndex = 6
      sHelper.testInput(select, 'S2', 'disco stu', 'select option 7')
      // a special case where we have <option value=''>X</option>, should
      // return '' rather than X which will happen if you just do a simple
      // `value=(option.value||option.text)`
      select.selectedIndex = 9
      sHelper.testInput(
          select
        , 'S2'
        , ''
        , 'select option 9, value="" should yield ""'
      )
      select.selectedIndex = -1
      sHelper.testInput(select, 'S2', null, 'select, unselected')
      complete()
    })

    test('correctly serialize select without explicit values'
        , function (complete) {

      var select = sHelper.formElements(1, 'select', 2)
      sHelper.testInput(select, 'S3', 'ABC', 'select option 1 (default)')
      select.selectedIndex = 1
      sHelper.testInput(select, 'S3', 'DEF', 'select option 2')
      select.selectedIndex = 6
      sHelper.testInput(select, 'S3', 'DISCO STU!', 'select option 7')
      select.selectedIndex = -1
      sHelper.testInput(select, 'S3', null, 'select, unselected')
      complete()
    })

    test('correctly serialize select multiple', function (complete) {
      var select = sHelper.formElements(1, 'select', 3)
      sHelper.testInput(select, 'S4', null, 'select, unselected (default)')
      select.options[1].selected = true
      sHelper.testInput(select, 'S4', '2', 'select option 2')
      select.options[3].selected = true
      sHelper.testInput(select, 'S4', [ '2', '4' ], 'select options 2 & 4')
      select.options[8].selected = true
      sHelper.testInput(
          select
        , 'S4'
        , [ '2', '4', 'Disco Stu!' ]
        , 'select option 2 & 4 & 9'
      )
      select.options[3].selected = false
      sHelper.testInput(
          select
        , 'S4'
        , [ '2', 'Disco Stu!' ]
        , 'select option 2 & 9'
      )
      select.options[1].selected = false
      select.options[8].selected = false
      sHelper.testInput(select, 'S4', null, 'select, all unselected')
      complete()
     })

    test('correctly serialize options', function (complete) {
      var option = sHelper.formElements(1, 'select', 1).options[6]
      sHelper.testInput(
          option
        , '-'
        , null
        , 'just option (with value), shouldn\'t serialize'
      )

      option = sHelper.formElements(1, 'select', 2).options[6]
      sHelper.testInput(
          option
        , '-'
        , null
        , 'option (without value), shouldn\'t serialize'
      )

      complete()
    })

    test('correctly serialize disabled', function (complete) {
      var input = sHelper.formElements(1, 'input', 14)
        , select

      sHelper.testInput(input, 'D1', null, 'disabled text input')
      input = sHelper.formElements(1, 'input', 15)
      sHelper.testInput(input, 'D2', null, 'disabled checkbox')
      input = sHelper.formElements(1, 'input', 16)
      sHelper.testInput(input, 'D3', null, 'disabled radio')

      select = sHelper.formElements(1, 'select', 4)
      sHelper.testInput(select, 'D4', null, 'disabled select')
      select = sHelper.formElements(1, 'select', 3)
      sHelper.testInput(select, 'D5', null, 'disabled select option')
      select = sHelper.formElements(1, 'select', 6)
      sHelper.testInput(select, 'D6', null, 'disabled multi select')
      select = sHelper.formElements(1, 'select', 7)
      sHelper.testInput(select, 'D7', null, 'disabled multi select option')
      complete()
    })

    test('serialize(form)', function (complete) {
      sHelper.testFormSerialize(ajax.serialize, 'direct')
      complete()
    })

    test('serialize(form, {type:\'array\'})', function (complete) {
      sHelper.testFormSerializeArray(ajax.serialize, 'direct')
      complete()
    })

    test('serialize(form, {type:\'map\'})', function (complete) {
      sHelper.testFormSerializeHash(ajax.serialize, 'direct')
      complete()
    })

    // mainly for Ender integration, so you can do this:
    // $('input[name=T2],input[name=who],input[name=wha]').serialize()
    test('serialize(element, element, element...)', function (complete) {
      sHelper.testMultiArgumentSerialize(ajax.serialize, 'direct', PASS_ARGS)
      complete()
    })

    // mainly for Ender integration, so you can do this:
    // $('input[name=T2],input[name=who],input[name=wha]')
    //    .serialize({type:'array'})
    test('serialize(element, element, element..., {type:\'array\'})'
        , function (complete) {
      sHelper.testMultiArgumentSerializeArray(
          ajax.serialize
        , 'direct'
        , PASS_ARGS
      )
      complete()
    })

    // mainly for Ender integration, so you can do this:
    // $('input[name=T2],input[name=who],input[name=wha]')
    //     .serialize({type:'map'})
    test('serialize(element, element, element...)', function (complete) {
      sHelper.testMultiArgumentSerializeHash(
          ajax.serialize
        , 'direct'
        , PASS_ARGS
      )
      complete()
    })

    test('toQueryString([{ name: x, value: y }, ... ]) name/value array'
        , function (complete) {

      var arr = [
          { name: 'foo', value: 'bar' }
        , { name: 'baz', value: '' }
        , { name: 'x', value: -20 }
        , { name: 'x', value: 20 }
      ]

      ok(ajax.toQueryString(arr) == 'foo=bar&baz=&x=-20&x=20', 'simple')

      arr = [
          { name: 'dotted.name.intact', value: '$@%' }
        , { name: '$ $', value: 20 }
        , { name: 'leave britney alone', value: 'waa haa haa' }
      ]

      ok(
          ajax.toQueryString(arr) ==
              'dotted.name.intact=%24%40%25&%24+%24=20'
            + '&leave+britney+alone=waa+haa+haa'
        , 'escaping required'
      )

      complete()
    })

    test('toQueryString({name: value,...} complex object', function (complete) {
      var obj = { 'foo': 'bar', 'baz': '', 'x': -20 }

      ok(ajax.toQueryString(obj) == 'foo=bar&baz=&x=-20', 'simple')

      obj = {
          'dotted.name.intact': '$@%'
        , '$ $': 20
        , 'leave britney alone': 'waa haa haa'
      }
      ok(
          ajax.toQueryString(obj) ==
              'dotted.name.intact=%24%40%25&%24+%24=20'
            + '&leave+britney+alone=waa+haa+haa'
        , 'escaping required'
      )

      complete()
    })

    test('toQueryString({name: [ value1, value2 ...],...} object with arrays', function (complete) {
      var obj = { 'foo': 'bar', 'baz': [ '', '', 'boo!' ], 'x': [ -20, 2.2, 20 ] }
      ok(ajax.toQueryString(obj, true) == "foo=bar&baz=&baz=&baz=boo!&x=-20&x=2.2&x=20", "object with arrays")
      ok(ajax.toQueryString(obj) == "foo=bar&baz%5B%5D=&baz%5B%5D=&baz%5B%5D=boo!&x%5B%5D=-20&x%5B%5D=2.2&x%5B%5D=20")
      complete()
    })

    test('toQueryString({name: { nestedName: value },...} object with objects', function(complete) {
      var obj = { 'foo': { 'bar': 'baz' }, 'x': [ { 'bar': 'baz' }, { 'boo': 'hiss' } ] }
      ok(ajax.toQueryString(obj) == "foo%5Bbar%5D=baz&x%5B0%5D%5Bbar%5D=baz&x%5B1%5D%5Bboo%5D=hiss", "object with objects")
      complete()
    })

  })

  sink('Ender Integration', function (test, ok) {
    var sHelper = createSerializeHelper(ok)
    sHelper.reset()

    test('$.ajax alias for reqwest, not bound to boosh', 1, function () {
      ok(ender.ajax === ajax, '$.ajax is reqwest')
    })

    // sHelper.test that you can do $.serialize(form)
    test('$.serialize(form)', function (complete) {
      sHelper.testFormSerialize(ender.serialize, 'ender')
      complete()
    })

    // sHelper.test that you can do $.serialize(form)
    test('$.serialize(form, {type:\'array\'})', function (complete) {
      sHelper.testFormSerializeArray(ender.serialize, 'ender')
      complete()
    })

    // sHelper.test that you can do $.serialize(form)
    test('$.serialize(form, {type:\'map\'})', function (complete) {
      sHelper.testFormSerializeHash(ender.serialize, 'ender')
      complete()
    })

    // sHelper.test that you can do $.serializeObject(form)
    test('$.serializeArray(...) alias for serialize(..., {type:\'map\'}'
        , function (complete) {
      sHelper.verifyFormSerializeArray(
          ender.serializeArray(document.forms[0])
        , 'ender'
      )
      complete()
    })

    test('$.serialize(element, element, element...)', function (complete) {
      sHelper.testMultiArgumentSerialize(ender.serialize, 'ender', PASS_ARGS)
      complete()
    })

    test('$.serialize(element, element, element..., {type:\'array\'})'
        , function (complete) {
      sHelper.testMultiArgumentSerializeArray(
          ender.serialize
        , 'ender'
        , PASS_ARGS
      )
      complete()
    })

    test('$.serialize(element, element, element..., {type:\'map\'})'
        , function (complete) {
      sHelper.testMultiArgumentSerializeHash(
          ender.serialize
        , 'ender'
        , PASS_ARGS
      )
      complete()
    })

    test('$(element, element, element...).serialize()', function (complete) {
      sHelper.testMultiArgumentSerialize(ender.fn.serialize, 'ender', BIND_ARGS)
      complete()
    })

    test('$(element, element, element...).serialize({type:\'array\'})'
        , function (complete) {
      sHelper.testMultiArgumentSerializeArray(
          ender.fn.serialize
        , 'ender'
        , BIND_ARGS
      )
      complete()
    })

    test('$(element, element, element...).serialize({type:\'map\'})'
        , function (complete) {
      sHelper.testMultiArgumentSerializeHash(
          ender.fn.serialize
        , 'ender'
        , BIND_ARGS
      )
      complete()
    })

    test('$.toQueryString alias for reqwest.toQueryString, not bound to boosh'
          , function (complete) {
      ok(
          ender.toQueryString === ajax.toQueryString
        , '$.toQueryString is reqwest.toQueryString'
      )
      complete()
    })
  })


  /**
   * Promise tests for `then` `fail` and `always`
   */
  sink('Promises', function (test, ok) {

    test('always callback is called', function (complete) {
      ajax({
        url: '/tests/fixtures/fixtures.js'
      })
        .always(function () {
          ok(true, 'called complete')
          complete()
        })
    })

    test('success and error handlers are called', 3, function () {
      ajax({
          url: '/tests/fixtures/invalidJSON.json'
        , type: 'json'
      })
        .then(
            function () {
              ok(false, 'success callback fired')
            }
          , function (resp, msg) {
              ok(
                  msg == 'Could not parse JSON in response'
                , 'error callback fired'
              )
            }
        )

      ajax({
          url: '/tests/fixtures/invalidJSON.json'
        , type: 'json'
      })
        .fail(function (resp, msg) {
          ok(msg == 'Could not parse JSON in response', 'fail callback fired')
        })

      ajax({
          url: '/tests/fixtures/fixtures.json'
        , type: 'json'
      })
        .then(
            function () {
              ok(true, 'success callback fired')
            }
          , function () {
              ok(false, 'error callback fired')
            }
        )
    })

    test('then is chainable', 2, function () {
      ajax({
          url: '/tests/fixtures/fixtures.json'
        , type: 'json'
      })
        .then(
            function (resp) {
              ok(true, 'first success callback fired')
              return 'new value';
            }
        )
        .then(
            function (resp) {
              ok(resp === 'new value', 'second success callback fired')
            }
        )
    })

    test('success does not chain with then', 2, function () {
      ajax({
          url: '/tests/fixtures/fixtures.json'
        , type: 'json'
        , success: function() {
          ok(true, 'success callback fired')
          return 'some independent value';
        }
      })
        .then(
            function (resp) {
              ok(
                resp && resp !== 'some independent value'
                , 'then callback fired'
              )
            }
        )
    })

    test('then & always handlers can be added after a response is received'
          , 2
          , function () {

      var a = ajax({
          url: '/tests/fixtures/fixtures.json'
        , type: 'json'
      })
        .always(function () {
          setTimeout(function () {
            a.then(
                  function () {
                    ok(true, 'success callback called')
                  }
                , function () {
                    ok(false, 'error callback called')
                  }
              ).always(function () {
                ok(true, 'complete callback called')
              })
          }, 1)
        })
    })

    test('then is chainable after a response is received'
          , 2
          , function () {

      var a = ajax({
          url: '/tests/fixtures/fixtures.json'
        , type: 'json'
      })
        .always(function () {
          setTimeout(function () {
            a.then(function () {
              ok(true, 'first success callback called')
              return 'new value';
            }).then(function (resp) {
              ok(resp === 'new value', 'second success callback called')
            })
          }, 1)
        })
    })

    test('failure handlers can be added after a response is received'
        , function (complete) {

      var a = ajax({
          url: '/tests/fixtures/invalidJSON.json'
        , type: 'json'
      })
        .always(function () {
          setTimeout(function () {
            a
              .fail(function () {
                ok(true, 'fail callback called')
                complete()
              })
          }, 1)
        })
    })

    test('.then success and fail are optional parameters', 1, function () {
      try {
        ajax({
            url: '/tests/fixtures/invalidJSON.json'
          , type: 'json'
        })
          .then()
      } catch (ex) {
        ok(false, '.then() parameters should be optional')
      } finally {
        ok(true, 'passed .then() optional parameters')
      }
    })

  })



  sink('Timeout', function (test, ok) {
    test('xmlHttpRequest', function (complete) {
      var ts = +new Date()
      ajax({
          url: '/tests/timeout'
        , type: 'json'
        , timeout: 250
        , error: function (err, msg) {
            ok(err, 'received error response')
            try {
              ok(err && err.status === 0, 'correctly caught timeout')
              ok(msg && msg === 'Request is aborted: timeout', 'timeout message received')
            } catch (e) {
              ok(true, 'IE is a troll')
            }
            var tt = Math.abs(+new Date() - ts)
            ok(
                tt > 200 && tt < 300
              , 'timeout close enough to 250 (' + tt + ')'
            )
            complete()
          }
      })
    })

    test('jsonpRequest', function (complete) {
      var ts = +new Date()
      ajax({
          url: '/tests/timeout'
        , type: 'jsonp'
        , timeout: 250
        , error: function (err) {
            ok(err, 'received error response')
            var tt = Math.abs(+new Date() - ts)
            ok(
                tt > 200 && tt < 300
              , 'timeout close enough to 250 (' + tt + ')'
            )
            complete()
          }
      })
    })
  })

  start()

}(reqwest))

Added cmd/pisc-web-ide/webroot/static/js/vue-js/vue.js.















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
/*!
 * Vue.js v2.2.0
 * (c) 2014-2017 Evan You
 * Released under the MIT License.
 */
(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
	typeof define === 'function' && define.amd ? define(factory) :
	(global.Vue = factory());
}(this, (function () { 'use strict';

/*  */

/**
 * Convert a value to a string that is actually rendered.
 */
function _toString (val) {
  return val == null
    ? ''
    : typeof val === 'object'
      ? JSON.stringify(val, null, 2)
      : String(val)
}

/**
 * Convert a input value to a number for persistence.
 * If the conversion fails, return original string.
 */
function toNumber (val) {
  var n = parseFloat(val);
  return isNaN(n) ? val : n
}

/**
 * Make a map and return a function for checking if a key
 * is in that map.
 */
function makeMap (
  str,
  expectsLowerCase
) {
  var map = Object.create(null);
  var list = str.split(',');
  for (var i = 0; i < list.length; i++) {
    map[list[i]] = true;
  }
  return expectsLowerCase
    ? function (val) { return map[val.toLowerCase()]; }
    : function (val) { return map[val]; }
}

/**
 * Check if a tag is a built-in tag.
 */
var isBuiltInTag = makeMap('slot,component', true);

/**
 * Remove an item from an array
 */
function remove (arr, item) {
  if (arr.length) {
    var index = arr.indexOf(item);
    if (index > -1) {
      return arr.splice(index, 1)
    }
  }
}

/**
 * Check whether the object has the property.
 */
var hasOwnProperty = Object.prototype.hasOwnProperty;
function hasOwn (obj, key) {
  return hasOwnProperty.call(obj, key)
}

/**
 * Check if value is primitive
 */
function isPrimitive (value) {
  return typeof value === 'string' || typeof value === 'number'
}

/**
 * Create a cached version of a pure function.
 */
function cached (fn) {
  var cache = Object.create(null);
  return (function cachedFn (str) {
    var hit = cache[str];
    return hit || (cache[str] = fn(str))
  })
}

/**
 * Camelize a hyphen-delimited string.
 */
var camelizeRE = /-(\w)/g;
var camelize = cached(function (str) {
  return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
});

/**
 * Capitalize a string.
 */
var capitalize = cached(function (str) {
  return str.charAt(0).toUpperCase() + str.slice(1)
});

/**
 * Hyphenate a camelCase string.
 */
var hyphenateRE = /([^-])([A-Z])/g;
var hyphenate = cached(function (str) {
  return str
    .replace(hyphenateRE, '$1-$2')
    .replace(hyphenateRE, '$1-$2')
    .toLowerCase()
});

/**
 * Simple bind, faster than native
 */
function bind (fn, ctx) {
  function boundFn (a) {
    var l = arguments.length;
    return l
      ? l > 1
        ? fn.apply(ctx, arguments)
        : fn.call(ctx, a)
      : fn.call(ctx)
  }
  // record original fn length
  boundFn._length = fn.length;
  return boundFn
}

/**
 * Convert an Array-like object to a real Array.
 */
function toArray (list, start) {
  start = start || 0;
  var i = list.length - start;
  var ret = new Array(i);
  while (i--) {
    ret[i] = list[i + start];
  }
  return ret
}

/**
 * Mix properties into target object.
 */
function extend (to, _from) {
  for (var key in _from) {
    to[key] = _from[key];
  }
  return to
}

/**
 * Quick object check - this is primarily used to tell
 * Objects from primitive values when we know the value
 * is a JSON-compliant type.
 */
function isObject (obj) {
  return obj !== null && typeof obj === 'object'
}

/**
 * Strict object type check. Only returns true
 * for plain JavaScript objects.
 */
var toString = Object.prototype.toString;
var OBJECT_STRING = '[object Object]';
function isPlainObject (obj) {
  return toString.call(obj) === OBJECT_STRING
}

/**
 * Merge an Array of Objects into a single Object.
 */
function toObject (arr) {
  var res = {};
  for (var i = 0; i < arr.length; i++) {
    if (arr[i]) {
      extend(res, arr[i]);
    }
  }
  return res
}

/**
 * Perform no operation.
 */
function noop () {}

/**
 * Always return false.
 */
var no = function () { return false; };

/**
 * Return same value
 */
var identity = function (_) { return _; };

/**
 * Generate a static keys string from compiler modules.
 */
function genStaticKeys (modules) {
  return modules.reduce(function (keys, m) {
    return keys.concat(m.staticKeys || [])
  }, []).join(',')
}

/**
 * Check if two values are loosely equal - that is,
 * if they are plain objects, do they have the same shape?
 */
function looseEqual (a, b) {
  var isObjectA = isObject(a);
  var isObjectB = isObject(b);
  if (isObjectA && isObjectB) {
    return JSON.stringify(a) === JSON.stringify(b)
  } else if (!isObjectA && !isObjectB) {
    return String(a) === String(b)
  } else {
    return false
  }
}

function looseIndexOf (arr, val) {
  for (var i = 0; i < arr.length; i++) {
    if (looseEqual(arr[i], val)) { return i }
  }
  return -1
}

/**
 * Ensure a function is called only once.
 */
function once (fn) {
  var called = false;
  return function () {
    if (!called) {
      called = true;
      fn();
    }
  }
}

/*  */

var config = {
  /**
   * Option merge strategies (used in core/util/options)
   */
  optionMergeStrategies: Object.create(null),

  /**
   * Whether to suppress warnings.
   */
  silent: false,

  /**
   * Show production mode tip message on boot?
   */
  productionTip: "development" !== 'production',

  /**
   * Whether to enable devtools
   */
  devtools: "development" !== 'production',

  /**
   * Whether to record perf
   */
  performance: "development" !== 'production',

  /**
   * Error handler for watcher errors
   */
  errorHandler: null,

  /**
   * Ignore certain custom elements
   */
  ignoredElements: [],

  /**
   * Custom user key aliases for v-on
   */
  keyCodes: Object.create(null),

  /**
   * Check if a tag is reserved so that it cannot be registered as a
   * component. This is platform-dependent and may be overwritten.
   */
  isReservedTag: no,

  /**
   * Check if a tag is an unknown element.
   * Platform-dependent.
   */
  isUnknownElement: no,

  /**
   * Get the namespace of an element
   */
  getTagNamespace: noop,

  /**
   * Parse the real tag name for the specific platform.
   */
  parsePlatformTagName: identity,

  /**
   * Check if an attribute must be bound using property, e.g. value
   * Platform-dependent.
   */
  mustUseProp: no,

  /**
   * List of asset types that a component can own.
   */
  _assetTypes: [
    'component',
    'directive',
    'filter'
  ],

  /**
   * List of lifecycle hooks.
   */
  _lifecycleHooks: [
    'beforeCreate',
    'created',
    'beforeMount',
    'mounted',
    'beforeUpdate',
    'updated',
    'beforeDestroy',
    'destroyed',
    'activated',
    'deactivated'
  ],

  /**
   * Max circular updates allowed in a scheduler flush cycle.
   */
  _maxUpdateCount: 100
};

/*  */
/* globals MutationObserver */

// can we use __proto__?
var hasProto = '__proto__' in {};

// Browser environment sniffing
var inBrowser = typeof window !== 'undefined';
var UA = inBrowser && window.navigator.userAgent.toLowerCase();
var isIE = UA && /msie|trident/.test(UA);
var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
var isEdge = UA && UA.indexOf('edge/') > 0;
var isAndroid = UA && UA.indexOf('android') > 0;
var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);
var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;

// this needs to be lazy-evaled because vue may be required before
// vue-server-renderer can set VUE_ENV
var _isServer;
var isServerRendering = function () {
  if (_isServer === undefined) {
    /* istanbul ignore if */
    if (!inBrowser && typeof global !== 'undefined') {
      // detect presence of vue-server-renderer and avoid
      // Webpack shimming the process
      _isServer = global['process'].env.VUE_ENV === 'server';
    } else {
      _isServer = false;
    }
  }
  return _isServer
};

// detect devtools
var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;

/* istanbul ignore next */
function isNative (Ctor) {
  return /native code/.test(Ctor.toString())
}

var hasSymbol =
  typeof Symbol !== 'undefined' && isNative(Symbol) &&
  typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);

/**
 * Defer a task to execute it asynchronously.
 */
var nextTick = (function () {
  var callbacks = [];
  var pending = false;
  var timerFunc;

  function nextTickHandler () {
    pending = false;
    var copies = callbacks.slice(0);
    callbacks.length = 0;
    for (var i = 0; i < copies.length; i++) {
      copies[i]();
    }
  }

  // the nextTick behavior leverages the microtask queue, which can be accessed
  // via either native Promise.then or MutationObserver.
  // MutationObserver has wider support, however it is seriously bugged in
  // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It
  // completely stops working after triggering a few times... so, if native
  // Promise is available, we will use it:
  /* istanbul ignore if */
  if (typeof Promise !== 'undefined' && isNative(Promise)) {
    var p = Promise.resolve();
    var logError = function (err) { console.error(err); };
    timerFunc = function () {
      p.then(nextTickHandler).catch(logError);
      // in problematic UIWebViews, Promise.then doesn't completely break, but
      // it can get stuck in a weird state where callbacks are pushed into the
      // microtask queue but the queue isn't being flushed, until the browser
      // needs to do some other work, e.g. handle a timer. Therefore we can
      // "force" the microtask queue to be flushed by adding an empty timer.
      if (isIOS) { setTimeout(noop); }
    };
  } else if (typeof MutationObserver !== 'undefined' && (
    isNative(MutationObserver) ||
    // PhantomJS and iOS 7.x
    MutationObserver.toString() === '[object MutationObserverConstructor]'
  )) {
    // use MutationObserver where native Promise is not available,
    // e.g. PhantomJS IE11, iOS7, Android 4.4
    var counter = 1;
    var observer = new MutationObserver(nextTickHandler);
    var textNode = document.createTextNode(String(counter));
    observer.observe(textNode, {
      characterData: true
    });
    timerFunc = function () {
      counter = (counter + 1) % 2;
      textNode.data = String(counter);
    };
  } else {
    // fallback to setTimeout
    /* istanbul ignore next */
    timerFunc = function () {
      setTimeout(nextTickHandler, 0);
    };
  }

  return function queueNextTick (cb, ctx) {
    var _resolve;
    callbacks.push(function () {
      if (cb) { cb.call(ctx); }
      if (_resolve) { _resolve(ctx); }
    });
    if (!pending) {
      pending = true;
      timerFunc();
    }
    if (!cb && typeof Promise !== 'undefined') {
      return new Promise(function (resolve) {
        _resolve = resolve;
      })
    }
  }
})();

var _Set;
/* istanbul ignore if */
if (typeof Set !== 'undefined' && isNative(Set)) {
  // use native Set when available.
  _Set = Set;
} else {
  // a non-standard Set polyfill that only works with primitive keys.
  _Set = (function () {
    function Set () {
      this.set = Object.create(null);
    }
    Set.prototype.has = function has (key) {
      return this.set[key] === true
    };
    Set.prototype.add = function add (key) {
      this.set[key] = true;
    };
    Set.prototype.clear = function clear () {
      this.set = Object.create(null);
    };

    return Set;
  }());
}

var perf;

{
  perf = inBrowser && window.performance;
  if (perf && (!perf.mark || !perf.measure)) {
    perf = undefined;
  }
}

/*  */

var emptyObject = Object.freeze({});

/**
 * Check if a string starts with $ or _
 */
function isReserved (str) {
  var c = (str + '').charCodeAt(0);
  return c === 0x24 || c === 0x5F
}

/**
 * Define a property.
 */
function def (obj, key, val, enumerable) {
  Object.defineProperty(obj, key, {
    value: val,
    enumerable: !!enumerable,
    writable: true,
    configurable: true
  });
}

/**
 * Parse simple path.
 */
var bailRE = /[^\w.$]/;
function parsePath (path) {
  if (bailRE.test(path)) {
    return
  } else {
    var segments = path.split('.');
    return function (obj) {
      for (var i = 0; i < segments.length; i++) {
        if (!obj) { return }
        obj = obj[segments[i]];
      }
      return obj
    }
  }
}

var warn = noop;
var tip = noop;
var formatComponentName;

{
  var hasConsole = typeof console !== 'undefined';
  var classifyRE = /(?:^|[-_])(\w)/g;
  var classify = function (str) { return str
    .replace(classifyRE, function (c) { return c.toUpperCase(); })
    .replace(/[-_]/g, ''); };

  warn = function (msg, vm) {
    if (hasConsole && (!config.silent)) {
      console.error("[Vue warn]: " + msg + " " + (
        vm ? formatLocation(formatComponentName(vm)) : ''
      ));
    }
  };

  tip = function (msg, vm) {
    if (hasConsole && (!config.silent)) {
      console.warn("[Vue tip]: " + msg + " " + (
        vm ? formatLocation(formatComponentName(vm)) : ''
      ));
    }
  };

  formatComponentName = function (vm, includeFile) {
    if (vm.$root === vm) {
      return '<Root>'
    }
    var name = vm._isVue
      ? vm.$options.name || vm.$options._componentTag
      : vm.name;

    var file = vm._isVue && vm.$options.__file;
    if (!name && file) {
      var match = file.match(/([^/\\]+)\.vue$/);
      name = match && match[1];
    }

    return (
      (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
      (file && includeFile !== false ? (" at " + file) : '')
    )
  };

  var formatLocation = function (str) {
    if (str === "<Anonymous>") {
      str += " - use the \"name\" option for better debugging messages.";
    }
    return ("\n(found in " + str + ")")
  };
}

/*  */


var uid$1 = 0;

/**
 * A dep is an observable that can have multiple
 * directives subscribing to it.
 */
var Dep = function Dep () {
  this.id = uid$1++;
  this.subs = [];
};

Dep.prototype.addSub = function addSub (sub) {
  this.subs.push(sub);
};

Dep.prototype.removeSub = function removeSub (sub) {
  remove(this.subs, sub);
};

Dep.prototype.depend = function depend () {
  if (Dep.target) {
    Dep.target.addDep(this);
  }
};

Dep.prototype.notify = function notify () {
  // stablize the subscriber list first
  var subs = this.subs.slice();
  for (var i = 0, l = subs.length; i < l; i++) {
    subs[i].update();
  }
};

// the current target watcher being evaluated.
// this is globally unique because there could be only one
// watcher being evaluated at any time.
Dep.target = null;
var targetStack = [];

function pushTarget (_target) {
  if (Dep.target) { targetStack.push(Dep.target); }
  Dep.target = _target;
}

function popTarget () {
  Dep.target = targetStack.pop();
}

/*
 * not type checking this file because flow doesn't play well with
 * dynamically accessing methods on Array prototype
 */

var arrayProto = Array.prototype;
var arrayMethods = Object.create(arrayProto);[
  'push',
  'pop',
  'shift',
  'unshift',
  'splice',
  'sort',
  'reverse'
]
.forEach(function (method) {
  // cache original method
  var original = arrayProto[method];
  def(arrayMethods, method, function mutator () {
    var arguments$1 = arguments;

    // avoid leaking arguments:
    // http://jsperf.com/closure-with-arguments
    var i = arguments.length;
    var args = new Array(i);
    while (i--) {
      args[i] = arguments$1[i];
    }
    var result = original.apply(this, args);
    var ob = this.__ob__;
    var inserted;
    switch (method) {
      case 'push':
        inserted = args;
        break
      case 'unshift':
        inserted = args;
        break
      case 'splice':
        inserted = args.slice(2);
        break
    }
    if (inserted) { ob.observeArray(inserted); }
    // notify change
    ob.dep.notify();
    return result
  });
});

/*  */

var arrayKeys = Object.getOwnPropertyNames(arrayMethods);

/**
 * By default, when a reactive property is set, the new value is
 * also converted to become reactive. However when passing down props,
 * we don't want to force conversion because the value may be a nested value
 * under a frozen data structure. Converting it would defeat the optimization.
 */
var observerState = {
  shouldConvert: true,
  isSettingProps: false
};

/**
 * Observer class that are attached to each observed
 * object. Once attached, the observer converts target
 * object's property keys into getter/setters that
 * collect dependencies and dispatches updates.
 */
var Observer = function Observer (value) {
  this.value = value;
  this.dep = new Dep();
  this.vmCount = 0;
  def(value, '__ob__', this);
  if (Array.isArray(value)) {
    var augment = hasProto
      ? protoAugment
      : copyAugment;
    augment(value, arrayMethods, arrayKeys);
    this.observeArray(value);
  } else {
    this.walk(value);
  }
};

/**
 * Walk through each property and convert them into
 * getter/setters. This method should only be called when
 * value type is Object.
 */
Observer.prototype.walk = function walk (obj) {
  var keys = Object.keys(obj);
  for (var i = 0; i < keys.length; i++) {
    defineReactive$$1(obj, keys[i], obj[keys[i]]);
  }
};

/**
 * Observe a list of Array items.
 */
Observer.prototype.observeArray = function observeArray (items) {
  for (var i = 0, l = items.length; i < l; i++) {
    observe(items[i]);
  }
};

// helpers

/**
 * Augment an target Object or Array by intercepting
 * the prototype chain using __proto__
 */
function protoAugment (target, src) {
  /* eslint-disable no-proto */
  target.__proto__ = src;
  /* eslint-enable no-proto */
}

/**
 * Augment an target Object or Array by defining
 * hidden properties.
 */
/* istanbul ignore next */
function copyAugment (target, src, keys) {
  for (var i = 0, l = keys.length; i < l; i++) {
    var key = keys[i];
    def(target, key, src[key]);
  }
}

/**
 * Attempt to create an observer instance for a value,
 * returns the new observer if successfully observed,
 * or the existing observer if the value already has one.
 */
function observe (value, asRootData) {
  if (!isObject(value)) {
    return
  }
  var ob;
  if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
    ob = value.__ob__;
  } else if (
    observerState.shouldConvert &&
    !isServerRendering() &&
    (Array.isArray(value) || isPlainObject(value)) &&
    Object.isExtensible(value) &&
    !value._isVue
  ) {
    ob = new Observer(value);
  }
  if (asRootData && ob) {
    ob.vmCount++;
  }
  return ob
}

/**
 * Define a reactive property on an Object.
 */
function defineReactive$$1 (
  obj,
  key,
  val,
  customSetter
) {
  var dep = new Dep();

  var property = Object.getOwnPropertyDescriptor(obj, key);
  if (property && property.configurable === false) {
    return
  }

  // cater for pre-defined getter/setters
  var getter = property && property.get;
  var setter = property && property.set;

  var childOb = observe(val);
  Object.defineProperty(obj, key, {
    enumerable: true,
    configurable: true,
    get: function reactiveGetter () {
      var value = getter ? getter.call(obj) : val;
      if (Dep.target) {
        dep.depend();
        if (childOb) {
          childOb.dep.depend();
        }
        if (Array.isArray(value)) {
          dependArray(value);
        }
      }
      return value
    },
    set: function reactiveSetter (newVal) {
      var value = getter ? getter.call(obj) : val;
      /* eslint-disable no-self-compare */
      if (newVal === value || (newVal !== newVal && value !== value)) {
        return
      }
      /* eslint-enable no-self-compare */
      if ("development" !== 'production' && customSetter) {
        customSetter();
      }
      if (setter) {
        setter.call(obj, newVal);
      } else {
        val = newVal;
      }
      childOb = observe(newVal);
      dep.notify();
    }
  });
}

/**
 * Set a property on an object. Adds the new property and
 * triggers change notification if the property doesn't
 * already exist.
 */
function set (obj, key, val) {
  if (Array.isArray(obj)) {
    obj.length = Math.max(obj.length, key);
    obj.splice(key, 1, val);
    return val
  }
  if (hasOwn(obj, key)) {
    obj[key] = val;
    return
  }
  var ob = obj.__ob__;
  if (obj._isVue || (ob && ob.vmCount)) {
    "development" !== 'production' && warn(
      'Avoid adding reactive properties to a Vue instance or its root $data ' +
      'at runtime - declare it upfront in the data option.'
    );
    return
  }
  if (!ob) {
    obj[key] = val;
    return
  }
  defineReactive$$1(ob.value, key, val);
  ob.dep.notify();
  return val
}

/**
 * Delete a property and trigger change if necessary.
 */
function del (obj, key) {
  if (Array.isArray(obj)) {
    obj.splice(key, 1);
    return
  }
  var ob = obj.__ob__;
  if (obj._isVue || (ob && ob.vmCount)) {
    "development" !== 'production' && warn(
      'Avoid deleting properties on a Vue instance or its root $data ' +
      '- just set it to null.'
    );
    return
  }
  if (!hasOwn(obj, key)) {
    return
  }
  delete obj[key];
  if (!ob) {
    return
  }
  ob.dep.notify();
}

/**
 * Collect dependencies on array elements when the array is touched, since
 * we cannot intercept array element access like property getters.
 */
function dependArray (value) {
  for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
    e = value[i];
    e && e.__ob__ && e.__ob__.dep.depend();
    if (Array.isArray(e)) {
      dependArray(e);
    }
  }
}

/*  */

/**
 * Option overwriting strategies are functions that handle
 * how to merge a parent option value and a child option
 * value into the final value.
 */
var strats = config.optionMergeStrategies;

/**
 * Options with restrictions
 */
{
  strats.el = strats.propsData = function (parent, child, vm, key) {
    if (!vm) {
      warn(
        "option \"" + key + "\" can only be used during instance " +
        'creation with the `new` keyword.'
      );
    }
    return defaultStrat(parent, child)
  };
}

/**
 * Helper that recursively merges two data objects together.
 */
function mergeData (to, from) {
  if (!from) { return to }
  var key, toVal, fromVal;
  var keys = Object.keys(from);
  for (var i = 0; i < keys.length; i++) {
    key = keys[i];
    toVal = to[key];
    fromVal = from[key];
    if (!hasOwn(to, key)) {
      set(to, key, fromVal);
    } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {
      mergeData(toVal, fromVal);
    }
  }
  return to
}

/**
 * Data
 */
strats.data = function (
  parentVal,
  childVal,
  vm
) {
  if (!vm) {
    // in a Vue.extend merge, both should be functions
    if (!childVal) {
      return parentVal
    }
    if (typeof childVal !== 'function') {
      "development" !== 'production' && warn(
        'The "data" option should be a function ' +
        'that returns a per-instance value in component ' +
        'definitions.',
        vm
      );
      return parentVal
    }
    if (!parentVal) {
      return childVal
    }
    // when parentVal & childVal are both present,
    // we need to return a function that returns the
    // merged result of both functions... no need to
    // check if parentVal is a function here because
    // it has to be a function to pass previous merges.
    return function mergedDataFn () {
      return mergeData(
        childVal.call(this),
        parentVal.call(this)
      )
    }
  } else if (parentVal || childVal) {
    return function mergedInstanceDataFn () {
      // instance merge
      var instanceData = typeof childVal === 'function'
        ? childVal.call(vm)
        : childVal;
      var defaultData = typeof parentVal === 'function'
        ? parentVal.call(vm)
        : undefined;
      if (instanceData) {
        return mergeData(instanceData, defaultData)
      } else {
        return defaultData
      }
    }
  }
};

/**
 * Hooks and props are merged as arrays.
 */
function mergeHook (
  parentVal,
  childVal
) {
  return childVal
    ? parentVal
      ? parentVal.concat(childVal)
      : Array.isArray(childVal)
        ? childVal
        : [childVal]
    : parentVal
}

config._lifecycleHooks.forEach(function (hook) {
  strats[hook] = mergeHook;
});

/**
 * Assets
 *
 * When a vm is present (instance creation), we need to do
 * a three-way merge between constructor options, instance
 * options and parent options.
 */
function mergeAssets (parentVal, childVal) {
  var res = Object.create(parentVal || null);
  return childVal
    ? extend(res, childVal)
    : res
}

config._assetTypes.forEach(function (type) {
  strats[type + 's'] = mergeAssets;
});

/**
 * Watchers.
 *
 * Watchers hashes should not overwrite one
 * another, so we merge them as arrays.
 */
strats.watch = function (parentVal, childVal) {
  /* istanbul ignore if */
  if (!childVal) { return Object.create(parentVal || null) }
  if (!parentVal) { return childVal }
  var ret = {};
  extend(ret, parentVal);
  for (var key in childVal) {
    var parent = ret[key];
    var child = childVal[key];
    if (parent && !Array.isArray(parent)) {
      parent = [parent];
    }
    ret[key] = parent
      ? parent.concat(child)
      : [child];
  }
  return ret
};

/**
 * Other object hashes.
 */
strats.props =
strats.methods =
strats.computed = function (parentVal, childVal) {
  if (!childVal) { return Object.create(parentVal || null) }
  if (!parentVal) { return childVal }
  var ret = Object.create(null);
  extend(ret, parentVal);
  extend(ret, childVal);
  return ret
};

/**
 * Default strategy.
 */
var defaultStrat = function (parentVal, childVal) {
  return childVal === undefined
    ? parentVal
    : childVal
};

/**
 * Validate component names
 */
function checkComponents (options) {
  for (var key in options.components) {
    var lower = key.toLowerCase();
    if (isBuiltInTag(lower) || config.isReservedTag(lower)) {
      warn(
        'Do not use built-in or reserved HTML elements as component ' +
        'id: ' + key
      );
    }
  }
}

/**
 * Ensure all props option syntax are normalized into the
 * Object-based format.
 */
function normalizeProps (options) {
  var props = options.props;
  if (!props) { return }
  var res = {};
  var i, val, name;
  if (Array.isArray(props)) {
    i = props.length;
    while (i--) {
      val = props[i];
      if (typeof val === 'string') {
        name = camelize(val);
        res[name] = { type: null };
      } else {
        warn('props must be strings when using array syntax.');
      }
    }
  } else if (isPlainObject(props)) {
    for (var key in props) {
      val = props[key];
      name = camelize(key);
      res[name] = isPlainObject(val)
        ? val
        : { type: val };
    }
  }
  options.props = res;
}

/**
 * Normalize raw function directives into object format.
 */
function normalizeDirectives (options) {
  var dirs = options.directives;
  if (dirs) {
    for (var key in dirs) {
      var def = dirs[key];
      if (typeof def === 'function') {
        dirs[key] = { bind: def, update: def };
      }
    }
  }
}

/**
 * Merge two option objects into a new one.
 * Core utility used in both instantiation and inheritance.
 */
function mergeOptions (
  parent,
  child,
  vm
) {
  {
    checkComponents(child);
  }
  normalizeProps(child);
  normalizeDirectives(child);
  var extendsFrom = child.extends;
  if (extendsFrom) {
    parent = typeof extendsFrom === 'function'
      ? mergeOptions(parent, extendsFrom.options, vm)
      : mergeOptions(parent, extendsFrom, vm);
  }
  if (child.mixins) {
    for (var i = 0, l = child.mixins.length; i < l; i++) {
      var mixin = child.mixins[i];
      if (mixin.prototype instanceof Vue$3) {
        mixin = mixin.options;
      }
      parent = mergeOptions(parent, mixin, vm);
    }
  }
  var options = {};
  var key;
  for (key in parent) {
    mergeField(key);
  }
  for (key in child) {
    if (!hasOwn(parent, key)) {
      mergeField(key);
    }
  }
  function mergeField (key) {
    var strat = strats[key] || defaultStrat;
    options[key] = strat(parent[key], child[key], vm, key);
  }
  return options
}

/**
 * Resolve an asset.
 * This function is used because child instances need access
 * to assets defined in its ancestor chain.
 */
function resolveAsset (
  options,
  type,
  id,
  warnMissing
) {
  /* istanbul ignore if */
  if (typeof id !== 'string') {
    return
  }
  var assets = options[type];
  // check local registration variations first
  if (hasOwn(assets, id)) { return assets[id] }
  var camelizedId = camelize(id);
  if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
  var PascalCaseId = capitalize(camelizedId);
  if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
  // fallback to prototype chain
  var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
  if ("development" !== 'production' && warnMissing && !res) {
    warn(
      'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
      options
    );
  }
  return res
}

/*  */

function validateProp (
  key,
  propOptions,
  propsData,
  vm
) {
  var prop = propOptions[key];
  var absent = !hasOwn(propsData, key);
  var value = propsData[key];
  // handle boolean props
  if (isType(Boolean, prop.type)) {
    if (absent && !hasOwn(prop, 'default')) {
      value = false;
    } else if (!isType(String, prop.type) && (value === '' || value === hyphenate(key))) {
      value = true;
    }
  }
  // check default value
  if (value === undefined) {
    value = getPropDefaultValue(vm, prop, key);
    // since the default value is a fresh copy,
    // make sure to observe it.
    var prevShouldConvert = observerState.shouldConvert;
    observerState.shouldConvert = true;
    observe(value);
    observerState.shouldConvert = prevShouldConvert;
  }
  {
    assertProp(prop, key, value, vm, absent);
  }
  return value
}

/**
 * Get the default value of a prop.
 */
function getPropDefaultValue (vm, prop, key) {
  // no default, return undefined
  if (!hasOwn(prop, 'default')) {
    return undefined
  }
  var def = prop.default;
  // warn against non-factory defaults for Object & Array
  if ("development" !== 'production' && isObject(def)) {
    warn(
      'Invalid default value for prop "' + key + '": ' +
      'Props with type Object/Array must use a factory function ' +
      'to return the default value.',
      vm
    );
  }
  // the raw prop value was also undefined from previous render,
  // return previous default value to avoid unnecessary watcher trigger
  if (vm && vm.$options.propsData &&
    vm.$options.propsData[key] === undefined &&
    vm._props[key] !== undefined) {
    return vm._props[key]
  }
  // call factory function for non-Function types
  // a value is Function if its prototype is function even across different execution context
  return typeof def === 'function' && getType(prop.type) !== 'Function'
    ? def.call(vm)
    : def
}

/**
 * Assert whether a prop is valid.
 */
function assertProp (
  prop,
  name,
  value,
  vm,
  absent
) {
  if (prop.required && absent) {
    warn(
      'Missing required prop: "' + name + '"',
      vm
    );
    return
  }
  if (value == null && !prop.required) {
    return
  }
  var type = prop.type;
  var valid = !type || type === true;
  var expectedTypes = [];
  if (type) {
    if (!Array.isArray(type)) {
      type = [type];
    }
    for (var i = 0; i < type.length && !valid; i++) {
      var assertedType = assertType(value, type[i]);
      expectedTypes.push(assertedType.expectedType || '');
      valid = assertedType.valid;
    }
  }
  if (!valid) {
    warn(
      'Invalid prop: type check failed for prop "' + name + '".' +
      ' Expected ' + expectedTypes.map(capitalize).join(', ') +
      ', got ' + Object.prototype.toString.call(value).slice(8, -1) + '.',
      vm
    );
    return
  }
  var validator = prop.validator;
  if (validator) {
    if (!validator(value)) {
      warn(
        'Invalid prop: custom validator check failed for prop "' + name + '".',
        vm
      );
    }
  }
}

/**
 * Assert the type of a value
 */
function assertType (value, type) {
  var valid;
  var expectedType = getType(type);
  if (expectedType === 'String') {
    valid = typeof value === (expectedType = 'string');
  } else if (expectedType === 'Number') {
    valid = typeof value === (expectedType = 'number');
  } else if (expectedType === 'Boolean') {
    valid = typeof value === (expectedType = 'boolean');
  } else if (expectedType === 'Function') {
    valid = typeof value === (expectedType = 'function');
  } else if (expectedType === 'Object') {
    valid = isPlainObject(value);
  } else if (expectedType === 'Array') {
    valid = Array.isArray(value);
  } else {
    valid = value instanceof type;
  }
  return {
    valid: valid,
    expectedType: expectedType
  }
}

/**
 * Use function string name to check built-in types,
 * because a simple equality check will fail when running
 * across different vms / iframes.
 */
function getType (fn) {
  var match = fn && fn.toString().match(/^\s*function (\w+)/);
  return match && match[1]
}

function isType (type, fn) {
  if (!Array.isArray(fn)) {
    return getType(fn) === getType(type)
  }
  for (var i = 0, len = fn.length; i < len; i++) {
    if (getType(fn[i]) === getType(type)) {
      return true
    }
  }
  /* istanbul ignore next */
  return false
}

function handleError (err, vm, type) {
  if (config.errorHandler) {
    config.errorHandler.call(null, err, vm, type);
  } else {
    {
      warn(("Error in " + type + ":"), vm);
    }
    /* istanbul ignore else */
    if (inBrowser && typeof console !== 'undefined') {
      console.error(err);
    } else {
      throw err
    }
  }
}

/* not type checking this file because flow doesn't play well with Proxy */

var initProxy;

{
  var allowedGlobals = makeMap(
    'Infinity,undefined,NaN,isFinite,isNaN,' +
    'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
    'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
    'require' // for Webpack/Browserify
  );

  var warnNonPresent = function (target, key) {
    warn(
      "Property or method \"" + key + "\" is not defined on the instance but " +
      "referenced during render. Make sure to declare reactive data " +
      "properties in the data option.",
      target
    );
  };

  var hasProxy =
    typeof Proxy !== 'undefined' &&
    Proxy.toString().match(/native code/);

  if (hasProxy) {
    var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta');
    config.keyCodes = new Proxy(config.keyCodes, {
      set: function set (target, key, value) {
        if (isBuiltInModifier(key)) {
          warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
          return false
        } else {
          target[key] = value;
          return true
        }
      }
    });
  }

  var hasHandler = {
    has: function has (target, key) {
      var has = key in target;
      var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';
      if (!has && !isAllowed) {
        warnNonPresent(target, key);
      }
      return has || !isAllowed
    }
  };

  var getHandler = {
    get: function get (target, key) {
      if (typeof key === 'string' && !(key in target)) {
        warnNonPresent(target, key);
      }
      return target[key]
    }
  };

  initProxy = function initProxy (vm) {
    if (hasProxy) {
      // determine which proxy handler to use
      var options = vm.$options;
      var handlers = options.render && options.render._withStripped
        ? getHandler
        : hasHandler;
      vm._renderProxy = new Proxy(vm, handlers);
    } else {
      vm._renderProxy = vm;
    }
  };
}

/*  */

var VNode = function VNode (
  tag,
  data,
  children,
  text,
  elm,
  context,
  componentOptions
) {
  this.tag = tag;
  this.data = data;
  this.children = children;
  this.text = text;
  this.elm = elm;
  this.ns = undefined;
  this.context = context;
  this.functionalContext = undefined;
  this.key = data && data.key;
  this.componentOptions = componentOptions;
  this.componentInstance = undefined;
  this.parent = undefined;
  this.raw = false;
  this.isStatic = false;
  this.isRootInsert = true;
  this.isComment = false;
  this.isCloned = false;
  this.isOnce = false;
};

var prototypeAccessors = { child: {} };

// DEPRECATED: alias for componentInstance for backwards compat.
/* istanbul ignore next */
prototypeAccessors.child.get = function () {
  return this.componentInstance
};

Object.defineProperties( VNode.prototype, prototypeAccessors );

var createEmptyVNode = function () {
  var node = new VNode();
  node.text = '';
  node.isComment = true;
  return node
};

function createTextVNode (val) {
  return new VNode(undefined, undefined, undefined, String(val))
}

// optimized shallow clone
// used for static nodes and slot nodes because they may be reused across
// multiple renders, cloning them avoids errors when DOM manipulations rely
// on their elm reference.
function cloneVNode (vnode) {
  var cloned = new VNode(
    vnode.tag,
    vnode.data,
    vnode.children,
    vnode.text,
    vnode.elm,
    vnode.context,
    vnode.componentOptions
  );
  cloned.ns = vnode.ns;
  cloned.isStatic = vnode.isStatic;
  cloned.key = vnode.key;
  cloned.isCloned = true;
  return cloned
}

function cloneVNodes (vnodes) {
  var res = new Array(vnodes.length);
  for (var i = 0; i < vnodes.length; i++) {
    res[i] = cloneVNode(vnodes[i]);
  }
  return res
}

/*  */

var normalizeEvent = cached(function (name) {
  var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
  name = once$$1 ? name.slice(1) : name;
  var capture = name.charAt(0) === '!';
  name = capture ? name.slice(1) : name;
  return {
    name: name,
    once: once$$1,
    capture: capture
  }
});

function createFnInvoker (fns) {
  function invoker () {
    var arguments$1 = arguments;

    var fns = invoker.fns;
    if (Array.isArray(fns)) {
      for (var i = 0; i < fns.length; i++) {
        fns[i].apply(null, arguments$1);
      }
    } else {
      // return handler return value for single handlers
      return fns.apply(null, arguments)
    }
  }
  invoker.fns = fns;
  return invoker
}

function updateListeners (
  on,
  oldOn,
  add,
  remove$$1,
  vm
) {
  var name, cur, old, event;
  for (name in on) {
    cur = on[name];
    old = oldOn[name];
    event = normalizeEvent(name);
    if (!cur) {
      "development" !== 'production' && warn(
        "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
        vm
      );
    } else if (!old) {
      if (!cur.fns) {
        cur = on[name] = createFnInvoker(cur);
      }
      add(event.name, cur, event.once, event.capture);
    } else if (cur !== old) {
      old.fns = cur;
      on[name] = old;
    }
  }
  for (name in oldOn) {
    if (!on[name]) {
      event = normalizeEvent(name);
      remove$$1(event.name, oldOn[name], event.capture);
    }
  }
}

/*  */

function mergeVNodeHook (def, hookKey, hook) {
  var invoker;
  var oldHook = def[hookKey];

  function wrappedHook () {
    hook.apply(this, arguments);
    // important: remove merged hook to ensure it's called only once
    // and prevent memory leak
    remove(invoker.fns, wrappedHook);
  }

  if (!oldHook) {
    // no existing hook
    invoker = createFnInvoker([wrappedHook]);
  } else {
    /* istanbul ignore if */
    if (oldHook.fns && oldHook.merged) {
      // already a merged invoker
      invoker = oldHook;
      invoker.fns.push(wrappedHook);
    } else {
      // existing plain hook
      invoker = createFnInvoker([oldHook, wrappedHook]);
    }
  }

  invoker.merged = true;
  def[hookKey] = invoker;
}

/*  */

// The template compiler attempts to minimize the need for normalization by
// statically analyzing the template at compile time.
//
// For plain HTML markup, normalization can be completely skipped because the
// generated render function is guaranteed to return Array<VNode>. There are
// two cases where extra normalization is needed:

// 1. When the children contains components - because a functional component
// may return an Array instead of a single root. In this case, just a simple
// normalization is needed - if any child is an Array, we flatten the whole
// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
// because functional components already normalize their own children.
function simpleNormalizeChildren (children) {
  for (var i = 0; i < children.length; i++) {
    if (Array.isArray(children[i])) {
      return Array.prototype.concat.apply([], children)
    }
  }
  return children
}

// 2. When the children contains constrcuts that always generated nested Arrays,
// e.g. <template>, <slot>, v-for, or when the children is provided by user
// with hand-written render functions / JSX. In such cases a full normalization
// is needed to cater to all possible types of children values.
function normalizeChildren (children) {
  return isPrimitive(children)
    ? [createTextVNode(children)]
    : Array.isArray(children)
      ? normalizeArrayChildren(children)
      : undefined
}

function normalizeArrayChildren (children, nestedIndex) {
  var res = [];
  var i, c, last;
  for (i = 0; i < children.length; i++) {
    c = children[i];
    if (c == null || typeof c === 'boolean') { continue }
    last = res[res.length - 1];
    //  nested
    if (Array.isArray(c)) {
      res.push.apply(res, normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i)));
    } else if (isPrimitive(c)) {
      if (last && last.text) {
        last.text += String(c);
      } else if (c !== '') {
        // convert primitive to vnode
        res.push(createTextVNode(c));
      }
    } else {
      if (c.text && last && last.text) {
        res[res.length - 1] = createTextVNode(last.text + c.text);
      } else {
        // default key for nested array children (likely generated by v-for)
        if (c.tag && c.key == null && nestedIndex != null) {
          c.key = "__vlist" + nestedIndex + "_" + i + "__";
        }
        res.push(c);
      }
    }
  }
  return res
}

/*  */

function getFirstComponentChild (children) {
  return children && children.filter(function (c) { return c && c.componentOptions; })[0]
}

/*  */

function initEvents (vm) {
  vm._events = Object.create(null);
  vm._hasHookEvent = false;
  // init parent attached events
  var listeners = vm.$options._parentListeners;
  if (listeners) {
    updateComponentListeners(vm, listeners);
  }
}

var target;

function add (event, fn, once$$1) {
  if (once$$1) {
    target.$once(event, fn);
  } else {
    target.$on(event, fn);
  }
}

function remove$1 (event, fn) {
  target.$off(event, fn);
}

function updateComponentListeners (
  vm,
  listeners,
  oldListeners
) {
  target = vm;
  updateListeners(listeners, oldListeners || {}, add, remove$1, vm);
}

function eventsMixin (Vue) {
  var hookRE = /^hook:/;
  Vue.prototype.$on = function (event, fn) {
    var this$1 = this;

    var vm = this;
    if (Array.isArray(event)) {
      for (var i = 0, l = event.length; i < l; i++) {
        this$1.$on(event[i], fn);
      }
    } else {
      (vm._events[event] || (vm._events[event] = [])).push(fn);
      // optimize hook:event cost by using a boolean flag marked at registration
      // instead of a hash lookup
      if (hookRE.test(event)) {
        vm._hasHookEvent = true;
      }
    }
    return vm
  };

  Vue.prototype.$once = function (event, fn) {
    var vm = this;
    function on () {
      vm.$off(event, on);
      fn.apply(vm, arguments);
    }
    on.fn = fn;
    vm.$on(event, on);
    return vm
  };

  Vue.prototype.$off = function (event, fn) {
    var vm = this;
    // all
    if (!arguments.length) {
      vm._events = Object.create(null);
      return vm
    }
    // specific event
    var cbs = vm._events[event];
    if (!cbs) {
      return vm
    }
    if (arguments.length === 1) {
      vm._events[event] = null;
      return vm
    }
    // specific handler
    var cb;
    var i = cbs.length;
    while (i--) {
      cb = cbs[i];
      if (cb === fn || cb.fn === fn) {
        cbs.splice(i, 1);
        break
      }
    }
    return vm
  };

  Vue.prototype.$emit = function (event) {
    var vm = this;
    var cbs = vm._events[event];
    if (cbs) {
      cbs = cbs.length > 1 ? toArray(cbs) : cbs;
      var args = toArray(arguments, 1);
      for (var i = 0, l = cbs.length; i < l; i++) {
        cbs[i].apply(vm, args);
      }
    }
    return vm
  };
}

/*  */

/**
 * Runtime helper for resolving raw children VNodes into a slot object.
 */
function resolveSlots (
  children,
  context
) {
  var slots = {};
  if (!children) {
    return slots
  }
  var defaultSlot = [];
  var name, child;
  for (var i = 0, l = children.length; i < l; i++) {
    child = children[i];
    // named slots should only be respected if the vnode was rendered in the
    // same context.
    if ((child.context === context || child.functionalContext === context) &&
        child.data && (name = child.data.slot)) {
      var slot = (slots[name] || (slots[name] = []));
      if (child.tag === 'template') {
        slot.push.apply(slot, child.children);
      } else {
        slot.push(child);
      }
    } else {
      defaultSlot.push(child);
    }
  }
  // ignore single whitespace
  if (defaultSlot.length && !(
    defaultSlot.length === 1 &&
    (defaultSlot[0].text === ' ' || defaultSlot[0].isComment)
  )) {
    slots.default = defaultSlot;
  }
  return slots
}

function resolveScopedSlots (
  fns
) {
  var res = {};
  for (var i = 0; i < fns.length; i++) {
    res[fns[i][0]] = fns[i][1];
  }
  return res
}

/*  */

var activeInstance = null;

function initLifecycle (vm) {
  var options = vm.$options;

  // locate first non-abstract parent
  var parent = options.parent;
  if (parent && !options.abstract) {
    while (parent.$options.abstract && parent.$parent) {
      parent = parent.$parent;
    }
    parent.$children.push(vm);
  }

  vm.$parent = parent;
  vm.$root = parent ? parent.$root : vm;

  vm.$children = [];
  vm.$refs = {};

  vm._watcher = null;
  vm._inactive = null;
  vm._directInactive = false;
  vm._isMounted = false;
  vm._isDestroyed = false;
  vm._isBeingDestroyed = false;
}

function lifecycleMixin (Vue) {
  Vue.prototype._update = function (vnode, hydrating) {
    var vm = this;
    if (vm._isMounted) {
      callHook(vm, 'beforeUpdate');
    }
    var prevEl = vm.$el;
    var prevVnode = vm._vnode;
    var prevActiveInstance = activeInstance;
    activeInstance = vm;
    vm._vnode = vnode;
    // Vue.prototype.__patch__ is injected in entry points
    // based on the rendering backend used.
    if (!prevVnode) {
      // initial render
      vm.$el = vm.__patch__(
        vm.$el, vnode, hydrating, false /* removeOnly */,
        vm.$options._parentElm,
        vm.$options._refElm
      );
    } else {
      // updates
      vm.$el = vm.__patch__(prevVnode, vnode);
    }
    activeInstance = prevActiveInstance;
    // update __vue__ reference
    if (prevEl) {
      prevEl.__vue__ = null;
    }
    if (vm.$el) {
      vm.$el.__vue__ = vm;
    }
    // if parent is an HOC, update its $el as well
    if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
      vm.$parent.$el = vm.$el;
    }
    // updated hook is called by the scheduler to ensure that children are
    // updated in a parent's updated hook.
  };

  Vue.prototype.$forceUpdate = function () {
    var vm = this;
    if (vm._watcher) {
      vm._watcher.update();
    }
  };

  Vue.prototype.$destroy = function () {
    var vm = this;
    if (vm._isBeingDestroyed) {
      return
    }
    callHook(vm, 'beforeDestroy');
    vm._isBeingDestroyed = true;
    // remove self from parent
    var parent = vm.$parent;
    if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
      remove(parent.$children, vm);
    }
    // teardown watchers
    if (vm._watcher) {
      vm._watcher.teardown();
    }
    var i = vm._watchers.length;
    while (i--) {
      vm._watchers[i].teardown();
    }
    // remove reference from data ob
    // frozen object may not have observer.
    if (vm._data.__ob__) {
      vm._data.__ob__.vmCount--;
    }
    // call the last hook...
    vm._isDestroyed = true;
    callHook(vm, 'destroyed');
    // turn off all instance listeners.
    vm.$off();
    // remove __vue__ reference
    if (vm.$el) {
      vm.$el.__vue__ = null;
    }
    // invoke destroy hooks on current rendered tree
    vm.__patch__(vm._vnode, null);
  };
}

function mountComponent (
  vm,
  el,
  hydrating
) {
  vm.$el = el;
  if (!vm.$options.render) {
    vm.$options.render = createEmptyVNode;
    {
      /* istanbul ignore if */
      if (vm.$options.template && vm.$options.template.charAt(0) !== '#') {
        warn(
          'You are using the runtime-only build of Vue where the template ' +
          'option is not available. Either pre-compile the templates into ' +
          'render functions, or use the compiler-included build.',
          vm
        );
      } else {
        warn(
          'Failed to mount component: template or render function not defined.',
          vm
        );
      }
    }
  }
  callHook(vm, 'beforeMount');

  var updateComponent;
  /* istanbul ignore if */
  if ("development" !== 'production' && config.performance && perf) {
    updateComponent = function () {
      var name = vm._name;
      var startTag = "start " + name;
      var endTag = "end " + name;
      perf.mark(startTag);
      var vnode = vm._render();
      perf.mark(endTag);
      perf.measure((name + " render"), startTag, endTag);
      perf.mark(startTag);
      vm._update(vnode, hydrating);
      perf.mark(endTag);
      perf.measure((name + " patch"), startTag, endTag);
    };
  } else {
    updateComponent = function () {
      vm._update(vm._render(), hydrating);
    };
  }

  vm._watcher = new Watcher(vm, updateComponent, noop);
  hydrating = false;

  // manually mounted instance, call mounted on self
  // mounted is called for render-created child components in its inserted hook
  if (vm.$vnode == null) {
    vm._isMounted = true;
    callHook(vm, 'mounted');
  }
  return vm
}

function updateChildComponent (
  vm,
  propsData,
  listeners,
  parentVnode,
  renderChildren
) {
  // determine whether component has slot children
  // we need to do this before overwriting $options._renderChildren
  var hasChildren = !!(
    renderChildren ||               // has new static slots
    vm.$options._renderChildren ||  // has old static slots
    parentVnode.data.scopedSlots || // has new scoped slots
    vm.$scopedSlots !== emptyObject // has old scoped slots
  );

  vm.$options._parentVnode = parentVnode;
  vm.$vnode = parentVnode; // update vm's placeholder node without re-render
  if (vm._vnode) { // update child tree's parent
    vm._vnode.parent = parentVnode;
  }
  vm.$options._renderChildren = renderChildren;

  // update props
  if (propsData && vm.$options.props) {
    observerState.shouldConvert = false;
    {
      observerState.isSettingProps = true;
    }
    var props = vm._props;
    var propKeys = vm.$options._propKeys || [];
    for (var i = 0; i < propKeys.length; i++) {
      var key = propKeys[i];
      props[key] = validateProp(key, vm.$options.props, propsData, vm);
    }
    observerState.shouldConvert = true;
    {
      observerState.isSettingProps = false;
    }
    // keep a copy of raw propsData
    vm.$options.propsData = propsData;
  }
  // update listeners
  if (listeners) {
    var oldListeners = vm.$options._parentListeners;
    vm.$options._parentListeners = listeners;
    updateComponentListeners(vm, listeners, oldListeners);
  }
  // resolve slots + force update if has children
  if (hasChildren) {
    vm.$slots = resolveSlots(renderChildren, parentVnode.context);
    vm.$forceUpdate();
  }
}

function isInInactiveTree (vm) {
  while (vm && (vm = vm.$parent)) {
    if (vm._inactive) { return true }
  }
  return false
}

function activateChildComponent (vm, direct) {
  if (direct) {
    vm._directInactive = false;
    if (isInInactiveTree(vm)) {
      return
    }
  } else if (vm._directInactive) {
    return
  }
  if (vm._inactive || vm._inactive == null) {
    vm._inactive = false;
    for (var i = 0; i < vm.$children.length; i++) {
      activateChildComponent(vm.$children[i]);
    }
    callHook(vm, 'activated');
  }
}

function deactivateChildComponent (vm, direct) {
  if (direct) {
    vm._directInactive = true;
    if (isInInactiveTree(vm)) {
      return
    }
  }
  if (!vm._inactive) {
    vm._inactive = true;
    for (var i = 0; i < vm.$children.length; i++) {
      deactivateChildComponent(vm.$children[i]);
    }
    callHook(vm, 'deactivated');
  }
}

function callHook (vm, hook) {
  var handlers = vm.$options[hook];
  if (handlers) {
    for (var i = 0, j = handlers.length; i < j; i++) {
      try {
        handlers[i].call(vm);
      } catch (e) {
        handleError(e, vm, (hook + " hook"));
      }
    }
  }
  if (vm._hasHookEvent) {
    vm.$emit('hook:' + hook);
  }
}

/*  */


var queue = [];
var has = {};
var circular = {};
var waiting = false;
var flushing = false;
var index = 0;

/**
 * Reset the scheduler's state.
 */
function resetSchedulerState () {
  queue.length = 0;
  has = {};
  {
    circular = {};
  }
  waiting = flushing = false;
}

/**
 * Flush both queues and run the watchers.
 */
function flushSchedulerQueue () {
  flushing = true;
  var watcher, id, vm;

  // Sort queue before flush.
  // This ensures that:
  // 1. Components are updated from parent to child. (because parent is always
  //    created before the child)
  // 2. A component's user watchers are run before its render watcher (because
  //    user watchers are created before the render watcher)
  // 3. If a component is destroyed during a parent component's watcher run,
  //    its watchers can be skipped.
  queue.sort(function (a, b) { return a.id - b.id; });

  // do not cache length because more watchers might be pushed
  // as we run existing watchers
  for (index = 0; index < queue.length; index++) {
    watcher = queue[index];
    id = watcher.id;
    has[id] = null;
    watcher.run();
    // in dev build, check and stop circular updates.
    if ("development" !== 'production' && has[id] != null) {
      circular[id] = (circular[id] || 0) + 1;
      if (circular[id] > config._maxUpdateCount) {
        warn(
          'You may have an infinite update loop ' + (
            watcher.user
              ? ("in watcher with expression \"" + (watcher.expression) + "\"")
              : "in a component render function."
          ),
          watcher.vm
        );
        break
      }
    }
  }

  // call updated hooks
  index = queue.length;
  while (index--) {
    watcher = queue[index];
    vm = watcher.vm;
    if (vm._watcher === watcher && vm._isMounted) {
      callHook(vm, 'updated');
    }
  }

  // devtool hook
  /* istanbul ignore if */
  if (devtools && config.devtools) {
    devtools.emit('flush');
  }

  resetSchedulerState();
}

/**
 * Push a watcher into the watcher queue.
 * Jobs with duplicate IDs will be skipped unless it's
 * pushed when the queue is being flushed.
 */
function queueWatcher (watcher) {
  var id = watcher.id;
  if (has[id] == null) {
    has[id] = true;
    if (!flushing) {
      queue.push(watcher);
    } else {
      // if already flushing, splice the watcher based on its id
      // if already past its id, it will be run next immediately.
      var i = queue.length - 1;
      while (i >= 0 && queue[i].id > watcher.id) {
        i--;
      }
      queue.splice(Math.max(i, index) + 1, 0, watcher);
    }
    // queue the flush
    if (!waiting) {
      waiting = true;
      nextTick(flushSchedulerQueue);
    }
  }
}

/*  */

var uid$2 = 0;

/**
 * A watcher parses an expression, collects dependencies,
 * and fires callback when the expression value changes.
 * This is used for both the $watch() api and directives.
 */
var Watcher = function Watcher (
  vm,
  expOrFn,
  cb,
  options
) {
  this.vm = vm;
  vm._watchers.push(this);
  // options
  if (options) {
    this.deep = !!options.deep;
    this.user = !!options.user;
    this.lazy = !!options.lazy;
    this.sync = !!options.sync;
  } else {
    this.deep = this.user = this.lazy = this.sync = false;
  }
  this.cb = cb;
  this.id = ++uid$2; // uid for batching
  this.active = true;
  this.dirty = this.lazy; // for lazy watchers
  this.deps = [];
  this.newDeps = [];
  this.depIds = new _Set();
  this.newDepIds = new _Set();
  this.expression = expOrFn.toString();
  // parse expression for getter
  if (typeof expOrFn === 'function') {
    this.getter = expOrFn;
  } else {
    this.getter = parsePath(expOrFn);
    if (!this.getter) {
      this.getter = function () {};
      "development" !== 'production' && warn(
        "Failed watching path: \"" + expOrFn + "\" " +
        'Watcher only accepts simple dot-delimited paths. ' +
        'For full control, use a function instead.',
        vm
      );
    }
  }
  this.value = this.lazy
    ? undefined
    : this.get();
};

/**
 * Evaluate the getter, and re-collect dependencies.
 */
Watcher.prototype.get = function get () {
  pushTarget(this);
  var value;
  var vm = this.vm;
  if (this.user) {
    try {
      value = this.getter.call(vm, vm);
    } catch (e) {
      handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
    }
  } else {
    value = this.getter.call(vm, vm);
  }
  // "touch" every property so they are all tracked as
  // dependencies for deep watching
  if (this.deep) {
    traverse(value);
  }
  popTarget();
  this.cleanupDeps();
  return value
};

/**
 * Add a dependency to this directive.
 */
Watcher.prototype.addDep = function addDep (dep) {
  var id = dep.id;
  if (!this.newDepIds.has(id)) {
    this.newDepIds.add(id);
    this.newDeps.push(dep);
    if (!this.depIds.has(id)) {
      dep.addSub(this);
    }
  }
};

/**
 * Clean up for dependency collection.
 */
Watcher.prototype.cleanupDeps = function cleanupDeps () {
    var this$1 = this;

  var i = this.deps.length;
  while (i--) {
    var dep = this$1.deps[i];
    if (!this$1.newDepIds.has(dep.id)) {
      dep.removeSub(this$1);
    }
  }
  var tmp = this.depIds;
  this.depIds = this.newDepIds;
  this.newDepIds = tmp;
  this.newDepIds.clear();
  tmp = this.deps;
  this.deps = this.newDeps;
  this.newDeps = tmp;
  this.newDeps.length = 0;
};

/**
 * Subscriber interface.
 * Will be called when a dependency changes.
 */
Watcher.prototype.update = function update () {
  /* istanbul ignore else */
  if (this.lazy) {
    this.dirty = true;
  } else if (this.sync) {
    this.run();
  } else {
    queueWatcher(this);
  }
};

/**
 * Scheduler job interface.
 * Will be called by the scheduler.
 */
Watcher.prototype.run = function run () {
  if (this.active) {
    var value = this.get();
    if (
      value !== this.value ||
      // Deep watchers and watchers on Object/Arrays should fire even
      // when the value is the same, because the value may
      // have mutated.
      isObject(value) ||
      this.deep
    ) {
      // set new value
      var oldValue = this.value;
      this.value = value;
      if (this.user) {
        try {
          this.cb.call(this.vm, value, oldValue);
        } catch (e) {
          handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
        }
      } else {
        this.cb.call(this.vm, value, oldValue);
      }
    }
  }
};

/**
 * Evaluate the value of the watcher.
 * This only gets called for lazy watchers.
 */
Watcher.prototype.evaluate = function evaluate () {
  this.value = this.get();
  this.dirty = false;
};

/**
 * Depend on all deps collected by this watcher.
 */
Watcher.prototype.depend = function depend () {
    var this$1 = this;

  var i = this.deps.length;
  while (i--) {
    this$1.deps[i].depend();
  }
};

/**
 * Remove self from all dependencies' subscriber list.
 */
Watcher.prototype.teardown = function teardown () {
    var this$1 = this;

  if (this.active) {
    // remove self from vm's watcher list
    // this is a somewhat expensive operation so we skip it
    // if the vm is being destroyed.
    if (!this.vm._isBeingDestroyed) {
      remove(this.vm._watchers, this);
    }
    var i = this.deps.length;
    while (i--) {
      this$1.deps[i].removeSub(this$1);
    }
    this.active = false;
  }
};

/**
 * Recursively traverse an object to evoke all converted
 * getters, so that every nested property inside the object
 * is collected as a "deep" dependency.
 */
var seenObjects = new _Set();
function traverse (val) {
  seenObjects.clear();
  _traverse(val, seenObjects);
}

function _traverse (val, seen) {
  var i, keys;
  var isA = Array.isArray(val);
  if ((!isA && !isObject(val)) || !Object.isExtensible(val)) {
    return
  }
  if (val.__ob__) {
    var depId = val.__ob__.dep.id;
    if (seen.has(depId)) {
      return
    }
    seen.add(depId);
  }
  if (isA) {
    i = val.length;
    while (i--) { _traverse(val[i], seen); }
  } else {
    keys = Object.keys(val);
    i = keys.length;
    while (i--) { _traverse(val[keys[i]], seen); }
  }
}

/*  */

var sharedPropertyDefinition = {
  enumerable: true,
  configurable: true,
  get: noop,
  set: noop
};

function proxy (target, sourceKey, key) {
  sharedPropertyDefinition.get = function proxyGetter () {
    return this[sourceKey][key]
  };
  sharedPropertyDefinition.set = function proxySetter (val) {
    this[sourceKey][key] = val;
  };
  Object.defineProperty(target, key, sharedPropertyDefinition);
}

function initState (vm) {
  vm._watchers = [];
  var opts = vm.$options;
  if (opts.props) { initProps(vm, opts.props); }
  if (opts.methods) { initMethods(vm, opts.methods); }
  if (opts.data) {
    initData(vm);
  } else {
    observe(vm._data = {}, true /* asRootData */);
  }
  if (opts.computed) { initComputed(vm, opts.computed); }
  if (opts.watch) { initWatch(vm, opts.watch); }
}

var isReservedProp = { key: 1, ref: 1, slot: 1 };

function initProps (vm, propsOptions) {
  var propsData = vm.$options.propsData || {};
  var props = vm._props = {};
  // cache prop keys so that future props updates can iterate using Array
  // instead of dynamic object key enumeration.
  var keys = vm.$options._propKeys = [];
  var isRoot = !vm.$parent;
  // root instance props should be converted
  observerState.shouldConvert = isRoot;
  var loop = function ( key ) {
    keys.push(key);
    var value = validateProp(key, propsOptions, propsData, vm);
    /* istanbul ignore else */
    {
      if (isReservedProp[key]) {
        warn(
          ("\"" + key + "\" is a reserved attribute and cannot be used as component prop."),
          vm
        );
      }
      defineReactive$$1(props, key, value, function () {
        if (vm.$parent && !observerState.isSettingProps) {
          warn(
            "Avoid mutating a prop directly since the value will be " +
            "overwritten whenever the parent component re-renders. " +
            "Instead, use a data or computed property based on the prop's " +
            "value. Prop being mutated: \"" + key + "\"",
            vm
          );
        }
      });
    }
    // static props are already proxied on the component's prototype
    // during Vue.extend(). We only need to proxy props defined at
    // instantiation here.
    if (!(key in vm)) {
      proxy(vm, "_props", key);
    }
  };

  for (var key in propsOptions) loop( key );
  observerState.shouldConvert = true;
}

function initData (vm) {
  var data = vm.$options.data;
  data = vm._data = typeof data === 'function'
    ? data.call(vm)
    : data || {};
  if (!isPlainObject(data)) {
    data = {};
    "development" !== 'production' && warn(
      'data functions should return an object:\n' +
      'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
      vm
    );
  }
  // proxy data on instance
  var keys = Object.keys(data);
  var props = vm.$options.props;
  var i = keys.length;
  while (i--) {
    if (props && hasOwn(props, keys[i])) {
      "development" !== 'production' && warn(
        "The data property \"" + (keys[i]) + "\" is already declared as a prop. " +
        "Use prop default value instead.",
        vm
      );
    } else if (!isReserved(keys[i])) {
      proxy(vm, "_data", keys[i]);
    }
  }
  // observe data
  observe(data, true /* asRootData */);
}

var computedWatcherOptions = { lazy: true };

function initComputed (vm, computed) {
  var watchers = vm._computedWatchers = Object.create(null);

  for (var key in computed) {
    var userDef = computed[key];
    var getter = typeof userDef === 'function' ? userDef : userDef.get;
    // create internal watcher for the computed property.
    watchers[key] = new Watcher(vm, getter, noop, computedWatcherOptions);

    // component-defined computed properties are already defined on the
    // component prototype. We only need to define computed properties defined
    // at instantiation here.
    if (!(key in vm)) {
      defineComputed(vm, key, userDef);
    }
  }
}

function defineComputed (target, key, userDef) {
  if (typeof userDef === 'function') {
    sharedPropertyDefinition.get = createComputedGetter(key);
    sharedPropertyDefinition.set = noop;
  } else {
    sharedPropertyDefinition.get = userDef.get
      ? userDef.cache !== false
        ? createComputedGetter(key)
        : userDef.get
      : noop;
    sharedPropertyDefinition.set = userDef.set
      ? userDef.set
      : noop;
  }
  Object.defineProperty(target, key, sharedPropertyDefinition);
}

function createComputedGetter (key) {
  return function computedGetter () {
    var watcher = this._computedWatchers && this._computedWatchers[key];
    if (watcher) {
      if (watcher.dirty) {
        watcher.evaluate();
      }
      if (Dep.target) {
        watcher.depend();
      }
      return watcher.value
    }
  }
}

function initMethods (vm, methods) {
  var props = vm.$options.props;
  for (var key in methods) {
    vm[key] = methods[key] == null ? noop : bind(methods[key], vm);
    {
      if (methods[key] == null) {
        warn(
          "method \"" + key + "\" has an undefined value in the component definition. " +
          "Did you reference the function correctly?",
          vm
        );
      }
      if (props && hasOwn(props, key)) {
        warn(
          ("method \"" + key + "\" has already been defined as a prop."),
          vm
        );
      }
    }
  }
}

function initWatch (vm, watch) {
  for (var key in watch) {
    var handler = watch[key];
    if (Array.isArray(handler)) {
      for (var i = 0; i < handler.length; i++) {
        createWatcher(vm, key, handler[i]);
      }
    } else {
      createWatcher(vm, key, handler);
    }
  }
}

function createWatcher (vm, key, handler) {
  var options;
  if (isPlainObject(handler)) {
    options = handler;
    handler = handler.handler;
  }
  if (typeof handler === 'string') {
    handler = vm[handler];
  }
  vm.$watch(key, handler, options);
}

function stateMixin (Vue) {
  // flow somehow has problems with directly declared definition object
  // when using Object.defineProperty, so we have to procedurally build up
  // the object here.
  var dataDef = {};
  dataDef.get = function () { return this._data };
  var propsDef = {};
  propsDef.get = function () { return this._props };
  {
    dataDef.set = function (newData) {
      warn(
        'Avoid replacing instance root $data. ' +
        'Use nested data properties instead.',
        this
      );
    };
    propsDef.set = function () {
      warn("$props is readonly.", this);
    };
  }
  Object.defineProperty(Vue.prototype, '$data', dataDef);
  Object.defineProperty(Vue.prototype, '$props', propsDef);

  Vue.prototype.$set = set;
  Vue.prototype.$delete = del;

  Vue.prototype.$watch = function (
    expOrFn,
    cb,
    options
  ) {
    var vm = this;
    options = options || {};
    options.user = true;
    var watcher = new Watcher(vm, expOrFn, cb, options);
    if (options.immediate) {
      cb.call(vm, watcher.value);
    }
    return function unwatchFn () {
      watcher.teardown();
    }
  };
}

/*  */

var hooks = { init: init, prepatch: prepatch, insert: insert, destroy: destroy };
var hooksToMerge = Object.keys(hooks);

function createComponent (
  Ctor,
  data,
  context,
  children,
  tag
) {
  if (!Ctor) {
    return
  }

  var baseCtor = context.$options._base;
  if (isObject(Ctor)) {
    Ctor = baseCtor.extend(Ctor);
  }

  if (typeof Ctor !== 'function') {
    {
      warn(("Invalid Component definition: " + (String(Ctor))), context);
    }
    return
  }

  // async component
  if (!Ctor.cid) {
    if (Ctor.resolved) {
      Ctor = Ctor.resolved;
    } else {
      Ctor = resolveAsyncComponent(Ctor, baseCtor, function () {
        // it's ok to queue this on every render because
        // $forceUpdate is buffered by the scheduler.
        context.$forceUpdate();
      });
      if (!Ctor) {
        // return nothing if this is indeed an async component
        // wait for the callback to trigger parent update.
        return
      }
    }
  }

  // resolve constructor options in case global mixins are applied after
  // component constructor creation
  resolveConstructorOptions(Ctor);

  data = data || {};

  // transform component v-model data into props & events
  if (data.model) {
    transformModel(Ctor.options, data);
  }

  // extract props
  var propsData = extractProps(data, Ctor);

  // functional component
  if (Ctor.options.functional) {
    return createFunctionalComponent(Ctor, propsData, data, context, children)
  }

  // extract listeners, since these needs to be treated as
  // child component listeners instead of DOM listeners
  var listeners = data.on;
  // replace with listeners with .native modifier
  data.on = data.nativeOn;

  if (Ctor.options.abstract) {
    // abstract components do not keep anything
    // other than props & listeners
    data = {};
  }

  // merge component management hooks onto the placeholder node
  mergeHooks(data);

  // return a placeholder vnode
  var name = Ctor.options.name || tag;
  var vnode = new VNode(
    ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
    data, undefined, undefined, undefined, context,
    { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }
  );
  return vnode
}

function createFunctionalComponent (
  Ctor,
  propsData,
  data,
  context,
  children
) {
  var props = {};
  var propOptions = Ctor.options.props;
  if (propOptions) {
    for (var key in propOptions) {
      props[key] = validateProp(key, propOptions, propsData);
    }
  }
  // ensure the createElement function in functional components
  // gets a unique context - this is necessary for correct named slot check
  var _context = Object.create(context);
  var h = function (a, b, c, d) { return createElement(_context, a, b, c, d, true); };
  var vnode = Ctor.options.render.call(null, h, {
    props: props,
    data: data,
    parent: context,
    children: children,
    slots: function () { return resolveSlots(children, context); }
  });
  if (vnode instanceof VNode) {
    vnode.functionalContext = context;
    if (data.slot) {
      (vnode.data || (vnode.data = {})).slot = data.slot;
    }
  }
  return vnode
}

function createComponentInstanceForVnode (
  vnode, // we know it's MountedComponentVNode but flow doesn't
  parent, // activeInstance in lifecycle state
  parentElm,
  refElm
) {
  var vnodeComponentOptions = vnode.componentOptions;
  var options = {
    _isComponent: true,
    parent: parent,
    propsData: vnodeComponentOptions.propsData,
    _componentTag: vnodeComponentOptions.tag,
    _parentVnode: vnode,
    _parentListeners: vnodeComponentOptions.listeners,
    _renderChildren: vnodeComponentOptions.children,
    _parentElm: parentElm || null,
    _refElm: refElm || null
  };
  // check inline-template render functions
  var inlineTemplate = vnode.data.inlineTemplate;
  if (inlineTemplate) {
    options.render = inlineTemplate.render;
    options.staticRenderFns = inlineTemplate.staticRenderFns;
  }
  return new vnodeComponentOptions.Ctor(options)
}

function init (
  vnode,
  hydrating,
  parentElm,
  refElm
) {
  if (!vnode.componentInstance || vnode.componentInstance._isDestroyed) {
    var child = vnode.componentInstance = createComponentInstanceForVnode(
      vnode,
      activeInstance,
      parentElm,
      refElm
    );
    child.$mount(hydrating ? vnode.elm : undefined, hydrating);
  } else if (vnode.data.keepAlive) {
    // kept-alive components, treat as a patch
    var mountedNode = vnode; // work around flow
    prepatch(mountedNode, mountedNode);
  }
}

function prepatch (
  oldVnode,
  vnode
) {
  var options = vnode.componentOptions;
  var child = vnode.componentInstance = oldVnode.componentInstance;
  updateChildComponent(
    child,
    options.propsData, // updated props
    options.listeners, // updated listeners
    vnode, // new parent vnode
    options.children // new children
  );
}

function insert (vnode) {
  if (!vnode.componentInstance._isMounted) {
    vnode.componentInstance._isMounted = true;
    callHook(vnode.componentInstance, 'mounted');
  }
  if (vnode.data.keepAlive) {
    activateChildComponent(vnode.componentInstance, true /* direct */);
  }
}

function destroy (vnode) {
  if (!vnode.componentInstance._isDestroyed) {
    if (!vnode.data.keepAlive) {
      vnode.componentInstance.$destroy();
    } else {
      deactivateChildComponent(vnode.componentInstance, true /* direct */);
    }
  }
}

function resolveAsyncComponent (
  factory,
  baseCtor,
  cb
) {
  if (factory.requested) {
    // pool callbacks
    factory.pendingCallbacks.push(cb);
  } else {
    factory.requested = true;
    var cbs = factory.pendingCallbacks = [cb];
    var sync = true;

    var resolve = function (res) {
      if (isObject(res)) {
        res = baseCtor.extend(res);
      }
      // cache resolved
      factory.resolved = res;
      // invoke callbacks only if this is not a synchronous resolve
      // (async resolves are shimmed as synchronous during SSR)
      if (!sync) {
        for (var i = 0, l = cbs.length; i < l; i++) {
          cbs[i](res);
        }
      }
    };

    var reject = function (reason) {
      "development" !== 'production' && warn(
        "Failed to resolve async component: " + (String(factory)) +
        (reason ? ("\nReason: " + reason) : '')
      );
    };

    var res = factory(resolve, reject);

    // handle promise
    if (res && typeof res.then === 'function' && !factory.resolved) {
      res.then(resolve, reject);
    }

    sync = false;
    // return in case resolved synchronously
    return factory.resolved
  }
}

function extractProps (data, Ctor) {
  // we are only extracting raw values here.
  // validation and default values are handled in the child
  // component itself.
  var propOptions = Ctor.options.props;
  if (!propOptions) {
    return
  }
  var res = {};
  var attrs = data.attrs;
  var props = data.props;
  var domProps = data.domProps;
  if (attrs || props || domProps) {
    for (var key in propOptions) {
      var altKey = hyphenate(key);
      checkProp(res, props, key, altKey, true) ||
      checkProp(res, attrs, key, altKey) ||
      checkProp(res, domProps, key, altKey);
    }
  }
  return res
}

function checkProp (
  res,
  hash,
  key,
  altKey,
  preserve
) {
  if (hash) {
    if (hasOwn(hash, key)) {
      res[key] = hash[key];
      if (!preserve) {
        delete hash[key];
      }
      return true
    } else if (hasOwn(hash, altKey)) {
      res[key] = hash[altKey];
      if (!preserve) {
        delete hash[altKey];
      }
      return true
    }
  }
  return false
}

function mergeHooks (data) {
  if (!data.hook) {
    data.hook = {};
  }
  for (var i = 0; i < hooksToMerge.length; i++) {
    var key = hooksToMerge[i];
    var fromParent = data.hook[key];
    var ours = hooks[key];
    data.hook[key] = fromParent ? mergeHook$1(ours, fromParent) : ours;
  }
}

function mergeHook$1 (one, two) {
  return function (a, b, c, d) {
    one(a, b, c, d);
    two(a, b, c, d);
  }
}

// transform component v-model info (value and callback) into
// prop and event handler respectively.
function transformModel (options, data) {
  var prop = (options.model && options.model.prop) || 'value';
  var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;
  var on = data.on || (data.on = {});
  if (on[event]) {
    on[event] = [data.model.callback].concat(on[event]);
  } else {
    on[event] = data.model.callback;
  }
}

/*  */

var SIMPLE_NORMALIZE = 1;
var ALWAYS_NORMALIZE = 2;

// wrapper function for providing a more flexible interface
// without getting yelled at by flow
function createElement (
  context,
  tag,
  data,
  children,
  normalizationType,
  alwaysNormalize
) {
  if (Array.isArray(data) || isPrimitive(data)) {
    normalizationType = children;
    children = data;
    data = undefined;
  }
  if (alwaysNormalize) { normalizationType = ALWAYS_NORMALIZE; }
  return _createElement(context, tag, data, children, normalizationType)
}

function _createElement (
  context,
  tag,
  data,
  children,
  normalizationType
) {
  if (data && data.__ob__) {
    "development" !== 'production' && warn(
      "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
      'Always create fresh vnode data objects in each render!',
      context
    );
    return createEmptyVNode()
  }
  if (!tag) {
    // in case of component :is set to falsy value
    return createEmptyVNode()
  }
  // support single function children as default scoped slot
  if (Array.isArray(children) &&
      typeof children[0] === 'function') {
    data = data || {};
    data.scopedSlots = { default: children[0] };
    children.length = 0;
  }
  if (normalizationType === ALWAYS_NORMALIZE) {
    children = normalizeChildren(children);
  } else if (normalizationType === SIMPLE_NORMALIZE) {
    children = simpleNormalizeChildren(children);
  }
  var vnode, ns;
  if (typeof tag === 'string') {
    var Ctor;
    ns = config.getTagNamespace(tag);
    if (config.isReservedTag(tag)) {
      // platform built-in elements
      vnode = new VNode(
        config.parsePlatformTagName(tag), data, children,
        undefined, undefined, context
      );
    } else if ((Ctor = resolveAsset(context.$options, 'components', tag))) {
      // component
      vnode = createComponent(Ctor, data, context, children, tag);
    } else {
      // unknown or unlisted namespaced elements
      // check at runtime because it may get assigned a namespace when its
      // parent normalizes children
      vnode = new VNode(
        tag, data, children,
        undefined, undefined, context
      );
    }
  } else {
    // direct component options / constructor
    vnode = createComponent(tag, data, context, children);
  }
  if (vnode) {
    if (ns) { applyNS(vnode, ns); }
    return vnode
  } else {
    return createEmptyVNode()
  }
}

function applyNS (vnode, ns) {
  vnode.ns = ns;
  if (vnode.tag === 'foreignObject') {
    // use default namespace inside foreignObject
    return
  }
  if (vnode.children) {
    for (var i = 0, l = vnode.children.length; i < l; i++) {
      var child = vnode.children[i];
      if (child.tag && !child.ns) {
        applyNS(child, ns);
      }
    }
  }
}

/*  */

/**
 * Runtime helper for rendering v-for lists.
 */
function renderList (
  val,
  render
) {
  var ret, i, l, keys, key;
  if (Array.isArray(val) || typeof val === 'string') {
    ret = new Array(val.length);
    for (i = 0, l = val.length; i < l; i++) {
      ret[i] = render(val[i], i);
    }
  } else if (typeof val === 'number') {
    ret = new Array(val);
    for (i = 0; i < val; i++) {
      ret[i] = render(i + 1, i);
    }
  } else if (isObject(val)) {
    keys = Object.keys(val);
    ret = new Array(keys.length);
    for (i = 0, l = keys.length; i < l; i++) {
      key = keys[i];
      ret[i] = render(val[key], key, i);
    }
  }
  return ret
}

/*  */

/**
 * Runtime helper for rendering <slot>
 */
function renderSlot (
  name,
  fallback,
  props,
  bindObject
) {
  var scopedSlotFn = this.$scopedSlots[name];
  if (scopedSlotFn) { // scoped slot
    props = props || {};
    if (bindObject) {
      extend(props, bindObject);
    }
    return scopedSlotFn(props) || fallback
  } else {
    var slotNodes = this.$slots[name];
    // warn duplicate slot usage
    if (slotNodes && "development" !== 'production') {
      slotNodes._rendered && warn(
        "Duplicate presence of slot \"" + name + "\" found in the same render tree " +
        "- this will likely cause render errors.",
        this
      );
      slotNodes._rendered = true;
    }
    return slotNodes || fallback
  }
}

/*  */

/**
 * Runtime helper for resolving filters
 */
function resolveFilter (id) {
  return resolveAsset(this.$options, 'filters', id, true) || identity
}

/*  */

/**
 * Runtime helper for checking keyCodes from config.
 */
function checkKeyCodes (
  eventKeyCode,
  key,
  builtInAlias
) {
  var keyCodes = config.keyCodes[key] || builtInAlias;
  if (Array.isArray(keyCodes)) {
    return keyCodes.indexOf(eventKeyCode) === -1
  } else {
    return keyCodes !== eventKeyCode
  }
}

/*  */

/**
 * Runtime helper for merging v-bind="object" into a VNode's data.
 */
function bindObjectProps (
  data,
  tag,
  value,
  asProp
) {
  if (value) {
    if (!isObject(value)) {
      "development" !== 'production' && warn(
        'v-bind without argument expects an Object or Array value',
        this
      );
    } else {
      if (Array.isArray(value)) {
        value = toObject(value);
      }
      for (var key in value) {
        if (key === 'class' || key === 'style') {
          data[key] = value[key];
        } else {
          var type = data.attrs && data.attrs.type;
          var hash = asProp || config.mustUseProp(tag, type, key)
            ? data.domProps || (data.domProps = {})
            : data.attrs || (data.attrs = {});
          hash[key] = value[key];
        }
      }
    }
  }
  return data
}

/*  */

/**
 * Runtime helper for rendering static trees.
 */
function renderStatic (
  index,
  isInFor
) {
  var tree = this._staticTrees[index];
  // if has already-rendered static tree and not inside v-for,
  // we can reuse the same tree by doing a shallow clone.
  if (tree && !isInFor) {
    return Array.isArray(tree)
      ? cloneVNodes(tree)
      : cloneVNode(tree)
  }
  // otherwise, render a fresh tree.
  tree = this._staticTrees[index] =
    this.$options.staticRenderFns[index].call(this._renderProxy);
  markStatic(tree, ("__static__" + index), false);
  return tree
}

/**
 * Runtime helper for v-once.
 * Effectively it means marking the node as static with a unique key.
 */
function markOnce (
  tree,
  index,
  key
) {
  markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
  return tree
}

function markStatic (
  tree,
  key,
  isOnce
) {
  if (Array.isArray(tree)) {
    for (var i = 0; i < tree.length; i++) {
      if (tree[i] && typeof tree[i] !== 'string') {
        markStaticNode(tree[i], (key + "_" + i), isOnce);
      }
    }
  } else {
    markStaticNode(tree, key, isOnce);
  }
}

function markStaticNode (node, key, isOnce) {
  node.isStatic = true;
  node.key = key;
  node.isOnce = isOnce;
}

/*  */

function initRender (vm) {
  vm.$vnode = null; // the placeholder node in parent tree
  vm._vnode = null; // the root of the child tree
  vm._staticTrees = null;
  var parentVnode = vm.$options._parentVnode;
  var renderContext = parentVnode && parentVnode.context;
  vm.$slots = resolveSlots(vm.$options._renderChildren, renderContext);
  vm.$scopedSlots = emptyObject;
  // bind the createElement fn to this instance
  // so that we get proper render context inside it.
  // args order: tag, data, children, normalizationType, alwaysNormalize
  // internal version is used by render functions compiled from templates
  vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
  // normalization is always applied for the public version, used in
  // user-written render functions.
  vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
}

function renderMixin (Vue) {
  Vue.prototype.$nextTick = function (fn) {
    return nextTick(fn, this)
  };

  Vue.prototype._render = function () {
    var vm = this;
    var ref = vm.$options;
    var render = ref.render;
    var staticRenderFns = ref.staticRenderFns;
    var _parentVnode = ref._parentVnode;

    if (vm._isMounted) {
      // clone slot nodes on re-renders
      for (var key in vm.$slots) {
        vm.$slots[key] = cloneVNodes(vm.$slots[key]);
      }
    }

    vm.$scopedSlots = (_parentVnode && _parentVnode.data.scopedSlots) || emptyObject;

    if (staticRenderFns && !vm._staticTrees) {
      vm._staticTrees = [];
    }
    // set parent vnode. this allows render functions to have access
    // to the data on the placeholder node.
    vm.$vnode = _parentVnode;
    // render self
    var vnode;
    try {
      vnode = render.call(vm._renderProxy, vm.$createElement);
    } catch (e) {
      handleError(e, vm, "render function");
      // return error render result,
      // or previous vnode to prevent render error causing blank component
      /* istanbul ignore else */
      {
        vnode = vm.$options.renderError
          ? vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e)
          : vm._vnode;
      }
    }
    // return empty vnode in case the render function errored out
    if (!(vnode instanceof VNode)) {
      if ("development" !== 'production' && Array.isArray(vnode)) {
        warn(
          'Multiple root nodes returned from render function. Render function ' +
          'should return a single root node.',
          vm
        );
      }
      vnode = createEmptyVNode();
    }
    // set parent
    vnode.parent = _parentVnode;
    return vnode
  };

  // internal render helpers.
  // these are exposed on the instance prototype to reduce generated render
  // code size.
  Vue.prototype._o = markOnce;
  Vue.prototype._n = toNumber;
  Vue.prototype._s = _toString;
  Vue.prototype._l = renderList;
  Vue.prototype._t = renderSlot;
  Vue.prototype._q = looseEqual;
  Vue.prototype._i = looseIndexOf;
  Vue.prototype._m = renderStatic;
  Vue.prototype._f = resolveFilter;
  Vue.prototype._k = checkKeyCodes;
  Vue.prototype._b = bindObjectProps;
  Vue.prototype._v = createTextVNode;
  Vue.prototype._e = createEmptyVNode;
  Vue.prototype._u = resolveScopedSlots;
}

/*  */

function initInjections (vm) {
  var provide = vm.$options.provide;
  var inject = vm.$options.inject;
  if (provide) {
    vm._provided = typeof provide === 'function'
      ? provide.call(vm)
      : provide;
  }
  if (inject) {
    // inject is :any because flow is not smart enough to figure out cached
    // isArray here
    var isArray = Array.isArray(inject);
    var keys = isArray
      ? inject
      : hasSymbol
        ? Reflect.ownKeys(inject)
        : Object.keys(inject);

    for (var i = 0; i < keys.length; i++) {
      var key = keys[i];
      var provideKey = isArray ? key : inject[key];
      var source = vm;
      while (source) {
        if (source._provided && source._provided[provideKey]) {
          vm[key] = source._provided[provideKey];
          break
        }
        source = source.$parent;
      }
    }
  }
}

/*  */

var uid = 0;

function initMixin (Vue) {
  Vue.prototype._init = function (options) {
    /* istanbul ignore if */
    if ("development" !== 'production' && config.performance && perf) {
      perf.mark('init');
    }

    var vm = this;
    // a uid
    vm._uid = uid++;
    // a flag to avoid this being observed
    vm._isVue = true;
    // merge options
    if (options && options._isComponent) {
      // optimize internal component instantiation
      // since dynamic options merging is pretty slow, and none of the
      // internal component options needs special treatment.
      initInternalComponent(vm, options);
    } else {
      vm.$options = mergeOptions(
        resolveConstructorOptions(vm.constructor),
        options || {},
        vm
      );
    }
    /* istanbul ignore else */
    {
      initProxy(vm);
    }
    // expose real self
    vm._self = vm;
    initLifecycle(vm);
    initEvents(vm);
    initRender(vm);
    callHook(vm, 'beforeCreate');
    initState(vm);
    initInjections(vm);
    callHook(vm, 'created');

    /* istanbul ignore if */
    if ("development" !== 'production' && config.performance && perf) {
      vm._name = formatComponentName(vm, false);
      perf.mark('init end');
      perf.measure(((vm._name) + " init"), 'init', 'init end');
    }

    if (vm.$options.el) {
      vm.$mount(vm.$options.el);
    }
  };
}

function initInternalComponent (vm, options) {
  var opts = vm.$options = Object.create(vm.constructor.options);
  // doing this because it's faster than dynamic enumeration.
  opts.parent = options.parent;
  opts.propsData = options.propsData;
  opts._parentVnode = options._parentVnode;
  opts._parentListeners = options._parentListeners;
  opts._renderChildren = options._renderChildren;
  opts._componentTag = options._componentTag;
  opts._parentElm = options._parentElm;
  opts._refElm = options._refElm;
  if (options.render) {
    opts.render = options.render;
    opts.staticRenderFns = options.staticRenderFns;
  }
}

function resolveConstructorOptions (Ctor) {
  var options = Ctor.options;
  if (Ctor.super) {
    var superOptions = resolveConstructorOptions(Ctor.super);
    var cachedSuperOptions = Ctor.superOptions;
    if (superOptions !== cachedSuperOptions) {
      // super option changed,
      // need to resolve new options.
      Ctor.superOptions = superOptions;
      // check if there are any late-modified/attached options (#4976)
      var modifiedOptions = resolveModifiedOptions(Ctor);
      // update base extend options
      if (modifiedOptions) {
        extend(Ctor.extendOptions, modifiedOptions);
      }
      options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
      if (options.name) {
        options.components[options.name] = Ctor;
      }
    }
  }
  return options
}

function resolveModifiedOptions (Ctor) {
  var modified;
  var latest = Ctor.options;
  var sealed = Ctor.sealedOptions;
  for (var key in latest) {
    if (latest[key] !== sealed[key]) {
      if (!modified) { modified = {}; }
      modified[key] = dedupe(latest[key], sealed[key]);
    }
  }
  return modified
}

function dedupe (latest, sealed) {
  // compare latest and sealed to ensure lifecycle hooks won't be duplicated
  // between merges
  if (Array.isArray(latest)) {
    var res = [];
    sealed = Array.isArray(sealed) ? sealed : [sealed];
    for (var i = 0; i < latest.length; i++) {
      if (sealed.indexOf(latest[i]) < 0) {
        res.push(latest[i]);
      }
    }
    return res
  } else {
    return latest
  }
}

function Vue$3 (options) {
  if ("development" !== 'production' &&
    !(this instanceof Vue$3)) {
    warn('Vue is a constructor and should be called with the `new` keyword');
  }
  this._init(options);
}

initMixin(Vue$3);
stateMixin(Vue$3);
eventsMixin(Vue$3);
lifecycleMixin(Vue$3);
renderMixin(Vue$3);

/*  */

function initUse (Vue) {
  Vue.use = function (plugin) {
    /* istanbul ignore if */
    if (plugin.installed) {
      return
    }
    // additional parameters
    var args = toArray(arguments, 1);
    args.unshift(this);
    if (typeof plugin.install === 'function') {
      plugin.install.apply(plugin, args);
    } else if (typeof plugin === 'function') {
      plugin.apply(null, args);
    }
    plugin.installed = true;
    return this
  };
}

/*  */

function initMixin$1 (Vue) {
  Vue.mixin = function (mixin) {
    this.options = mergeOptions(this.options, mixin);
  };
}

/*  */

function initExtend (Vue) {
  /**
   * Each instance constructor, including Vue, has a unique
   * cid. This enables us to create wrapped "child
   * constructors" for prototypal inheritance and cache them.
   */
  Vue.cid = 0;
  var cid = 1;

  /**
   * Class inheritance
   */
  Vue.extend = function (extendOptions) {
    extendOptions = extendOptions || {};
    var Super = this;
    var SuperId = Super.cid;
    var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
    if (cachedCtors[SuperId]) {
      return cachedCtors[SuperId]
    }

    var name = extendOptions.name || Super.options.name;
    {
      if (!/^[a-zA-Z][\w-]*$/.test(name)) {
        warn(
          'Invalid component name: "' + name + '". Component names ' +
          'can only contain alphanumeric characters and the hyphen, ' +
          'and must start with a letter.'
        );
      }
    }

    var Sub = function VueComponent (options) {
      this._init(options);
    };
    Sub.prototype = Object.create(Super.prototype);
    Sub.prototype.constructor = Sub;
    Sub.cid = cid++;
    Sub.options = mergeOptions(
      Super.options,
      extendOptions
    );
    Sub['super'] = Super;

    // For props and computed properties, we define the proxy getters on
    // the Vue instances at extension time, on the extended prototype. This
    // avoids Object.defineProperty calls for each instance created.
    if (Sub.options.props) {
      initProps$1(Sub);
    }
    if (Sub.options.computed) {
      initComputed$1(Sub);
    }

    // allow further extension/mixin/plugin usage
    Sub.extend = Super.extend;
    Sub.mixin = Super.mixin;
    Sub.use = Super.use;

    // create asset registers, so extended classes
    // can have their private assets too.
    config._assetTypes.forEach(function (type) {
      Sub[type] = Super[type];
    });
    // enable recursive self-lookup
    if (name) {
      Sub.options.components[name] = Sub;
    }

    // keep a reference to the super options at extension time.
    // later at instantiation we can check if Super's options have
    // been updated.
    Sub.superOptions = Super.options;
    Sub.extendOptions = extendOptions;
    Sub.sealedOptions = extend({}, Sub.options);

    // cache constructor
    cachedCtors[SuperId] = Sub;
    return Sub
  };
}

function initProps$1 (Comp) {
  var props = Comp.options.props;
  for (var key in props) {
    proxy(Comp.prototype, "_props", key);
  }
}

function initComputed$1 (Comp) {
  var computed = Comp.options.computed;
  for (var key in computed) {
    defineComputed(Comp.prototype, key, computed[key]);
  }
}

/*  */

function initAssetRegisters (Vue) {
  /**
   * Create asset registration methods.
   */
  config._assetTypes.forEach(function (type) {
    Vue[type] = function (
      id,
      definition
    ) {
      if (!definition) {
        return this.options[type + 's'][id]
      } else {
        /* istanbul ignore if */
        {
          if (type === 'component' && config.isReservedTag(id)) {
            warn(
              'Do not use built-in or reserved HTML elements as component ' +
              'id: ' + id
            );
          }
        }
        if (type === 'component' && isPlainObject(definition)) {
          definition.name = definition.name || id;
          definition = this.options._base.extend(definition);
        }
        if (type === 'directive' && typeof definition === 'function') {
          definition = { bind: definition, update: definition };
        }
        this.options[type + 's'][id] = definition;
        return definition
      }
    };
  });
}

/*  */

var patternTypes = [String, RegExp];

function getComponentName (opts) {
  return opts && (opts.Ctor.options.name || opts.tag)
}

function matches (pattern, name) {
  if (typeof pattern === 'string') {
    return pattern.split(',').indexOf(name) > -1
  } else if (pattern instanceof RegExp) {
    return pattern.test(name)
  }
  /* istanbul ignore next */
  return false
}

function pruneCache (cache, filter) {
  for (var key in cache) {
    var cachedNode = cache[key];
    if (cachedNode) {
      var name = getComponentName(cachedNode.componentOptions);
      if (name && !filter(name)) {
        pruneCacheEntry(cachedNode);
        cache[key] = null;
      }
    }
  }
}

function pruneCacheEntry (vnode) {
  if (vnode) {
    if (!vnode.componentInstance._inactive) {
      callHook(vnode.componentInstance, 'deactivated');
    }
    vnode.componentInstance.$destroy();
  }
}

var KeepAlive = {
  name: 'keep-alive',
  abstract: true,

  props: {
    include: patternTypes,
    exclude: patternTypes
  },

  created: function created () {
    this.cache = Object.create(null);
  },

  destroyed: function destroyed () {
    var this$1 = this;

    for (var key in this$1.cache) {
      pruneCacheEntry(this$1.cache[key]);
    }
  },

  watch: {
    include: function include (val) {
      pruneCache(this.cache, function (name) { return matches(val, name); });
    },
    exclude: function exclude (val) {
      pruneCache(this.cache, function (name) { return !matches(val, name); });
    }
  },

  render: function render () {
    var vnode = getFirstComponentChild(this.$slots.default);
    var componentOptions = vnode && vnode.componentOptions;
    if (componentOptions) {
      // check pattern
      var name = getComponentName(componentOptions);
      if (name && (
        (this.include && !matches(this.include, name)) ||
        (this.exclude && matches(this.exclude, name))
      )) {
        return vnode
      }
      var key = vnode.key == null
        // same constructor may get registered as different local components
        // so cid alone is not enough (#3269)
        ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
        : vnode.key;
      if (this.cache[key]) {
        vnode.componentInstance = this.cache[key].componentInstance;
      } else {
        this.cache[key] = vnode;
      }
      vnode.data.keepAlive = true;
    }
    return vnode
  }
};

var builtInComponents = {
  KeepAlive: KeepAlive
};

/*  */

function initGlobalAPI (Vue) {
  // config
  var configDef = {};
  configDef.get = function () { return config; };
  {
    configDef.set = function () {
      warn(
        'Do not replace the Vue.config object, set individual fields instead.'
      );
    };
  }
  Object.defineProperty(Vue, 'config', configDef);

  // exposed util methods.
  // NOTE: these are not considered part of the public API - avoid relying on
  // them unless you are aware of the risk.
  Vue.util = {
    warn: warn,
    extend: extend,
    mergeOptions: mergeOptions,
    defineReactive: defineReactive$$1
  };

  Vue.set = set;
  Vue.delete = del;
  Vue.nextTick = nextTick;

  Vue.options = Object.create(null);
  config._assetTypes.forEach(function (type) {
    Vue.options[type + 's'] = Object.create(null);
  });

  // this is used to identify the "base" constructor to extend all plain-object
  // components with in Weex's multi-instance scenarios.
  Vue.options._base = Vue;

  extend(Vue.options.components, builtInComponents);

  initUse(Vue);
  initMixin$1(Vue);
  initExtend(Vue);
  initAssetRegisters(Vue);
}

initGlobalAPI(Vue$3);

Object.defineProperty(Vue$3.prototype, '$isServer', {
  get: isServerRendering
});

Vue$3.version = '2.2.0';

/*  */

// attributes that should be using props for binding
var acceptValue = makeMap('input,textarea,option,select');
var mustUseProp = function (tag, type, attr) {
  return (
    (attr === 'value' && acceptValue(tag)) && type !== 'button' ||
    (attr === 'selected' && tag === 'option') ||
    (attr === 'checked' && tag === 'input') ||
    (attr === 'muted' && tag === 'video')
  )
};

var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');

var isBooleanAttr = makeMap(
  'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
  'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
  'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
  'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
  'required,reversed,scoped,seamless,selected,sortable,translate,' +
  'truespeed,typemustmatch,visible'
);

var xlinkNS = 'http://www.w3.org/1999/xlink';

var isXlink = function (name) {
  return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'
};

var getXlinkProp = function (name) {
  return isXlink(name) ? name.slice(6, name.length) : ''
};

var isFalsyAttrValue = function (val) {
  return val == null || val === false
};

/*  */

function genClassForVnode (vnode) {
  var data = vnode.data;
  var parentNode = vnode;
  var childNode = vnode;
  while (childNode.componentInstance) {
    childNode = childNode.componentInstance._vnode;
    if (childNode.data) {
      data = mergeClassData(childNode.data, data);
    }
  }
  while ((parentNode = parentNode.parent)) {
    if (parentNode.data) {
      data = mergeClassData(data, parentNode.data);
    }
  }
  return genClassFromData(data)
}

function mergeClassData (child, parent) {
  return {
    staticClass: concat(child.staticClass, parent.staticClass),
    class: child.class
      ? [child.class, parent.class]
      : parent.class
  }
}

function genClassFromData (data) {
  var dynamicClass = data.class;
  var staticClass = data.staticClass;
  if (staticClass || dynamicClass) {
    return concat(staticClass, stringifyClass(dynamicClass))
  }
  /* istanbul ignore next */
  return ''
}

function concat (a, b) {
  return a ? b ? (a + ' ' + b) : a : (b || '')
}

function stringifyClass (value) {
  var res = '';
  if (!value) {
    return res
  }
  if (typeof value === 'string') {
    return value
  }
  if (Array.isArray(value)) {
    var stringified;
    for (var i = 0, l = value.length; i < l; i++) {
      if (value[i]) {
        if ((stringified = stringifyClass(value[i]))) {
          res += stringified + ' ';
        }
      }
    }
    return res.slice(0, -1)
  }
  if (isObject(value)) {
    for (var key in value) {
      if (value[key]) { res += key + ' '; }
    }
    return res.slice(0, -1)
  }
  /* istanbul ignore next */
  return res
}

/*  */

var namespaceMap = {
  svg: 'http://www.w3.org/2000/svg',
  math: 'http://www.w3.org/1998/Math/MathML'
};

var isHTMLTag = makeMap(
  'html,body,base,head,link,meta,style,title,' +
  'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
  'div,dd,dl,dt,figcaption,figure,hr,img,li,main,ol,p,pre,ul,' +
  'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
  's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
  'embed,object,param,source,canvas,script,noscript,del,ins,' +
  'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
  'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
  'output,progress,select,textarea,' +
  'details,dialog,menu,menuitem,summary,' +
  'content,element,shadow,template'
);

// this map is intentionally selective, only covering SVG elements that may
// contain child elements.
var isSVG = makeMap(
  'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
  'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
  'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',
  true
);

var isPreTag = function (tag) { return tag === 'pre'; };

var isReservedTag = function (tag) {
  return isHTMLTag(tag) || isSVG(tag)
};

function getTagNamespace (tag) {
  if (isSVG(tag)) {
    return 'svg'
  }
  // basic support for MathML
  // note it doesn't support other MathML elements being component roots
  if (tag === 'math') {
    return 'math'
  }
}

var unknownElementCache = Object.create(null);
function isUnknownElement (tag) {
  /* istanbul ignore if */
  if (!inBrowser) {
    return true
  }
  if (isReservedTag(tag)) {
    return false
  }
  tag = tag.toLowerCase();
  /* istanbul ignore if */
  if (unknownElementCache[tag] != null) {
    return unknownElementCache[tag]
  }
  var el = document.createElement(tag);
  if (tag.indexOf('-') > -1) {
    // http://stackoverflow.com/a/28210364/1070244
    return (unknownElementCache[tag] = (
      el.constructor === window.HTMLUnknownElement ||
      el.constructor === window.HTMLElement
    ))
  } else {
    return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))
  }
}

/*  */

/**
 * Query an element selector if it's not an element already.
 */
function query (el) {
  if (typeof el === 'string') {
    var selected = document.querySelector(el);
    if (!selected) {
      "development" !== 'production' && warn(
        'Cannot find element: ' + el
      );
      return document.createElement('div')
    }
    return selected
  } else {
    return el
  }
}

/*  */

function createElement$1 (tagName, vnode) {
  var elm = document.createElement(tagName);
  if (tagName !== 'select') {
    return elm
  }
  // false or null will remove the attribute but undefined will not
  if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {
    elm.setAttribute('multiple', 'multiple');
  }
  return elm
}

function createElementNS (namespace, tagName) {
  return document.createElementNS(namespaceMap[namespace], tagName)
}

function createTextNode (text) {
  return document.createTextNode(text)
}

function createComment (text) {
  return document.createComment(text)
}

function insertBefore (parentNode, newNode, referenceNode) {
  parentNode.insertBefore(newNode, referenceNode);
}

function removeChild (node, child) {
  node.removeChild(child);
}

function appendChild (node, child) {
  node.appendChild(child);
}

function parentNode (node) {
  return node.parentNode
}

function nextSibling (node) {
  return node.nextSibling
}

function tagName (node) {
  return node.tagName
}

function setTextContent (node, text) {
  node.textContent = text;
}

function setAttribute (node, key, val) {
  node.setAttribute(key, val);
}


var nodeOps = Object.freeze({
	createElement: createElement$1,
	createElementNS: createElementNS,
	createTextNode: createTextNode,
	createComment: createComment,
	insertBefore: insertBefore,
	removeChild: removeChild,
	appendChild: appendChild,
	parentNode: parentNode,
	nextSibling: nextSibling,
	tagName: tagName,
	setTextContent: setTextContent,
	setAttribute: setAttribute
});

/*  */

var ref = {
  create: function create (_, vnode) {
    registerRef(vnode);
  },
  update: function update (oldVnode, vnode) {
    if (oldVnode.data.ref !== vnode.data.ref) {
      registerRef(oldVnode, true);
      registerRef(vnode);
    }
  },
  destroy: function destroy (vnode) {
    registerRef(vnode, true);
  }
};

function registerRef (vnode, isRemoval) {
  var key = vnode.data.ref;
  if (!key) { return }

  var vm = vnode.context;
  var ref = vnode.componentInstance || vnode.elm;
  var refs = vm.$refs;
  if (isRemoval) {
    if (Array.isArray(refs[key])) {
      remove(refs[key], ref);
    } else if (refs[key] === ref) {
      refs[key] = undefined;
    }
  } else {
    if (vnode.data.refInFor) {
      if (Array.isArray(refs[key]) && refs[key].indexOf(ref) < 0) {
        refs[key].push(ref);
      } else {
        refs[key] = [ref];
      }
    } else {
      refs[key] = ref;
    }
  }
}

/**
 * Virtual DOM patching algorithm based on Snabbdom by
 * Simon Friis Vindum (@paldepind)
 * Licensed under the MIT License
 * https://github.com/paldepind/snabbdom/blob/master/LICENSE
 *
 * modified by Evan You (@yyx990803)
 *

/*
 * Not type-checking this because this file is perf-critical and the cost
 * of making flow understand it is not worth it.
 */

var emptyNode = new VNode('', {}, []);

var hooks$1 = ['create', 'activate', 'update', 'remove', 'destroy'];

function isUndef (s) {
  return s == null
}

function isDef (s) {
  return s != null
}

function sameVnode (vnode1, vnode2) {
  return (
    vnode1.key === vnode2.key &&
    vnode1.tag === vnode2.tag &&
    vnode1.isComment === vnode2.isComment &&
    !vnode1.data === !vnode2.data
  )
}

function createKeyToOldIdx (children, beginIdx, endIdx) {
  var i, key;
  var map = {};
  for (i = beginIdx; i <= endIdx; ++i) {
    key = children[i].key;
    if (isDef(key)) { map[key] = i; }
  }
  return map
}

function createPatchFunction (backend) {
  var i, j;
  var cbs = {};

  var modules = backend.modules;
  var nodeOps = backend.nodeOps;

  for (i = 0; i < hooks$1.length; ++i) {
    cbs[hooks$1[i]] = [];
    for (j = 0; j < modules.length; ++j) {
      if (modules[j][hooks$1[i]] !== undefined) { cbs[hooks$1[i]].push(modules[j][hooks$1[i]]); }
    }
  }

  function emptyNodeAt (elm) {
    return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)
  }

  function createRmCb (childElm, listeners) {
    function remove$$1 () {
      if (--remove$$1.listeners === 0) {
        removeNode(childElm);
      }
    }
    remove$$1.listeners = listeners;
    return remove$$1
  }

  function removeNode (el) {
    var parent = nodeOps.parentNode(el);
    // element may have already been removed due to v-html / v-text
    if (parent) {
      nodeOps.removeChild(parent, el);
    }
  }

  var inPre = 0;
  function createElm (vnode, insertedVnodeQueue, parentElm, refElm, nested) {
    vnode.isRootInsert = !nested; // for transition enter check
    if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
      return
    }

    var data = vnode.data;
    var children = vnode.children;
    var tag = vnode.tag;
    if (isDef(tag)) {
      {
        if (data && data.pre) {
          inPre++;
        }
        if (
          !inPre &&
          !vnode.ns &&
          !(config.ignoredElements.length && config.ignoredElements.indexOf(tag) > -1) &&
          config.isUnknownElement(tag)
        ) {
          warn(
            'Unknown custom element: <' + tag + '> - did you ' +
            'register the component correctly? For recursive components, ' +
            'make sure to provide the "name" option.',
            vnode.context
          );
        }
      }
      vnode.elm = vnode.ns
        ? nodeOps.createElementNS(vnode.ns, tag)
        : nodeOps.createElement(tag, vnode);
      setScope(vnode);

      /* istanbul ignore if */
      {
        createChildren(vnode, children, insertedVnodeQueue);
        if (isDef(data)) {
          invokeCreateHooks(vnode, insertedVnodeQueue);
        }
        insert(parentElm, vnode.elm, refElm);
      }

      if ("development" !== 'production' && data && data.pre) {
        inPre--;
      }
    } else if (vnode.isComment) {
      vnode.elm = nodeOps.createComment(vnode.text);
      insert(parentElm, vnode.elm, refElm);
    } else {
      vnode.elm = nodeOps.createTextNode(vnode.text);
      insert(parentElm, vnode.elm, refElm);
    }
  }

  function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
    var i = vnode.data;
    if (isDef(i)) {
      var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
      if (isDef(i = i.hook) && isDef(i = i.init)) {
        i(vnode, false /* hydrating */, parentElm, refElm);
      }
      // after calling the init hook, if the vnode is a child component
      // it should've created a child instance and mounted it. the child
      // component also has set the placeholder vnode's elm.
      // in that case we can just return the element and be done.
      if (isDef(vnode.componentInstance)) {
        initComponent(vnode, insertedVnodeQueue);
        if (isReactivated) {
          reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
        }
        return true
      }
    }
  }

  function initComponent (vnode, insertedVnodeQueue) {
    if (vnode.data.pendingInsert) {
      insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
    }
    vnode.elm = vnode.componentInstance.$el;
    if (isPatchable(vnode)) {
      invokeCreateHooks(vnode, insertedVnodeQueue);
      setScope(vnode);
    } else {
      // empty component root.
      // skip all element-related modules except for ref (#3455)
      registerRef(vnode);
      // make sure to invoke the insert hook
      insertedVnodeQueue.push(vnode);
    }
  }

  function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
    var i;
    // hack for #4339: a reactivated component with inner transition
    // does not trigger because the inner node's created hooks are not called
    // again. It's not ideal to involve module-specific logic in here but
    // there doesn't seem to be a better way to do it.
    var innerNode = vnode;
    while (innerNode.componentInstance) {
      innerNode = innerNode.componentInstance._vnode;
      if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
        for (i = 0; i < cbs.activate.length; ++i) {
          cbs.activate[i](emptyNode, innerNode);
        }
        insertedVnodeQueue.push(innerNode);
        break
      }
    }
    // unlike a newly created component,
    // a reactivated keep-alive component doesn't insert itself
    insert(parentElm, vnode.elm, refElm);
  }

  function insert (parent, elm, ref) {
    if (parent) {
      if (ref) {
        nodeOps.insertBefore(parent, elm, ref);
      } else {
        nodeOps.appendChild(parent, elm);
      }
    }
  }

  function createChildren (vnode, children, insertedVnodeQueue) {
    if (Array.isArray(children)) {
      for (var i = 0; i < children.length; ++i) {
        createElm(children[i], insertedVnodeQueue, vnode.elm, null, true);
      }
    } else if (isPrimitive(vnode.text)) {
      nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(vnode.text));
    }
  }

  function isPatchable (vnode) {
    while (vnode.componentInstance) {
      vnode = vnode.componentInstance._vnode;
    }
    return isDef(vnode.tag)
  }

  function invokeCreateHooks (vnode, insertedVnodeQueue) {
    for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
      cbs.create[i$1](emptyNode, vnode);
    }
    i = vnode.data.hook; // Reuse variable
    if (isDef(i)) {
      if (i.create) { i.create(emptyNode, vnode); }
      if (i.insert) { insertedVnodeQueue.push(vnode); }
    }
  }

  // set scope id attribute for scoped CSS.
  // this is implemented as a special case to avoid the overhead
  // of going through the normal attribute patching process.
  function setScope (vnode) {
    var i;
    var ancestor = vnode;
    while (ancestor) {
      if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {
        nodeOps.setAttribute(vnode.elm, i, '');
      }
      ancestor = ancestor.parent;
    }
    // for slot content they should also get the scopeId from the host instance.
    if (isDef(i = activeInstance) &&
        i !== vnode.context &&
        isDef(i = i.$options._scopeId)) {
      nodeOps.setAttribute(vnode.elm, i, '');
    }
  }

  function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
    for (; startIdx <= endIdx; ++startIdx) {
      createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm);
    }
  }

  function invokeDestroyHook (vnode) {
    var i, j;
    var data = vnode.data;
    if (isDef(data)) {
      if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }
      for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }
    }
    if (isDef(i = vnode.children)) {
      for (j = 0; j < vnode.children.length; ++j) {
        invokeDestroyHook(vnode.children[j]);
      }
    }
  }

  function removeVnodes (parentElm, vnodes, startIdx, endIdx) {
    for (; startIdx <= endIdx; ++startIdx) {
      var ch = vnodes[startIdx];
      if (isDef(ch)) {
        if (isDef(ch.tag)) {
          removeAndInvokeRemoveHook(ch);
          invokeDestroyHook(ch);
        } else { // Text node
          removeNode(ch.elm);
        }
      }
    }
  }

  function removeAndInvokeRemoveHook (vnode, rm) {
    if (rm || isDef(vnode.data)) {
      var listeners = cbs.remove.length + 1;
      if (!rm) {
        // directly removing
        rm = createRmCb(vnode.elm, listeners);
      } else {
        // we have a recursively passed down rm callback
        // increase the listeners count
        rm.listeners += listeners;
      }
      // recursively invoke hooks on child component root node
      if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
        removeAndInvokeRemoveHook(i, rm);
      }
      for (i = 0; i < cbs.remove.length; ++i) {
        cbs.remove[i](vnode, rm);
      }
      if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
        i(vnode, rm);
      } else {
        rm();
      }
    } else {
      removeNode(vnode.elm);
    }
  }

  function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
    var oldStartIdx = 0;
    var newStartIdx = 0;
    var oldEndIdx = oldCh.length - 1;
    var oldStartVnode = oldCh[0];
    var oldEndVnode = oldCh[oldEndIdx];
    var newEndIdx = newCh.length - 1;
    var newStartVnode = newCh[0];
    var newEndVnode = newCh[newEndIdx];
    var oldKeyToIdx, idxInOld, elmToMove, refElm;

    // removeOnly is a special flag used only by <transition-group>
    // to ensure removed elements stay in correct relative positions
    // during leaving transitions
    var canMove = !removeOnly;

    while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
      if (isUndef(oldStartVnode)) {
        oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
      } else if (isUndef(oldEndVnode)) {
        oldEndVnode = oldCh[--oldEndIdx];
      } else if (sameVnode(oldStartVnode, newStartVnode)) {
        patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);
        oldStartVnode = oldCh[++oldStartIdx];
        newStartVnode = newCh[++newStartIdx];
      } else if (sameVnode(oldEndVnode, newEndVnode)) {
        patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);
        oldEndVnode = oldCh[--oldEndIdx];
        newEndVnode = newCh[--newEndIdx];
      } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right
        patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);
        canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
        oldStartVnode = oldCh[++oldStartIdx];
        newEndVnode = newCh[--newEndIdx];
      } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left
        patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);
        canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
        oldEndVnode = oldCh[--oldEndIdx];
        newStartVnode = newCh[++newStartIdx];
      } else {
        if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }
        idxInOld = isDef(newStartVnode.key) ? oldKeyToIdx[newStartVnode.key] : null;
        if (isUndef(idxInOld)) { // New element
          createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm);
          newStartVnode = newCh[++newStartIdx];
        } else {
          elmToMove = oldCh[idxInOld];
          /* istanbul ignore if */
          if ("development" !== 'production' && !elmToMove) {
            warn(
              'It seems there are duplicate keys that is causing an update error. ' +
              'Make sure each v-for item has a unique key.'
            );
          }
          if (sameVnode(elmToMove, newStartVnode)) {
            patchVnode(elmToMove, newStartVnode, insertedVnodeQueue);
            oldCh[idxInOld] = undefined;
            canMove && nodeOps.insertBefore(parentElm, newStartVnode.elm, oldStartVnode.elm);
            newStartVnode = newCh[++newStartIdx];
          } else {
            // same key but different element. treat as new element
            createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm);
            newStartVnode = newCh[++newStartIdx];
          }
        }
      }
    }
    if (oldStartIdx > oldEndIdx) {
      refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
      addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
    } else if (newStartIdx > newEndIdx) {
      removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
    }
  }

  function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {
    if (oldVnode === vnode) {
      return
    }
    // reuse element for static trees.
    // note we only do this if the vnode is cloned -
    // if the new node is not cloned it means the render functions have been
    // reset by the hot-reload-api and we need to do a proper re-render.
    if (vnode.isStatic &&
        oldVnode.isStatic &&
        vnode.key === oldVnode.key &&
        (vnode.isCloned || vnode.isOnce)) {
      vnode.elm = oldVnode.elm;
      vnode.componentInstance = oldVnode.componentInstance;
      return
    }
    var i;
    var data = vnode.data;
    var hasData = isDef(data);
    if (hasData && isDef(i = data.hook) && isDef(i = i.prepatch)) {
      i(oldVnode, vnode);
    }
    var elm = vnode.elm = oldVnode.elm;
    var oldCh = oldVnode.children;
    var ch = vnode.children;
    if (hasData && isPatchable(vnode)) {
      for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }
      if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }
    }
    if (isUndef(vnode.text)) {
      if (isDef(oldCh) && isDef(ch)) {
        if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }
      } else if (isDef(ch)) {
        if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }
        addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
      } else if (isDef(oldCh)) {
        removeVnodes(elm, oldCh, 0, oldCh.length - 1);
      } else if (isDef(oldVnode.text)) {
        nodeOps.setTextContent(elm, '');
      }
    } else if (oldVnode.text !== vnode.text) {
      nodeOps.setTextContent(elm, vnode.text);
    }
    if (hasData) {
      if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }
    }
  }

  function invokeInsertHook (vnode, queue, initial) {
    // delay insert hooks for component root nodes, invoke them after the
    // element is really inserted
    if (initial && vnode.parent) {
      vnode.parent.data.pendingInsert = queue;
    } else {
      for (var i = 0; i < queue.length; ++i) {
        queue[i].data.hook.insert(queue[i]);
      }
    }
  }

  var bailed = false;
  // list of modules that can skip create hook during hydration because they
  // are already rendered on the client or has no need for initialization
  var isRenderedModule = makeMap('attrs,style,class,staticClass,staticStyle,key');

  // Note: this is a browser-only function so we can assume elms are DOM nodes.
  function hydrate (elm, vnode, insertedVnodeQueue) {
    {
      if (!assertNodeMatch(elm, vnode)) {
        return false
      }
    }
    vnode.elm = elm;
    var tag = vnode.tag;
    var data = vnode.data;
    var children = vnode.children;
    if (isDef(data)) {
      if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }
      if (isDef(i = vnode.componentInstance)) {
        // child component. it should have hydrated its own tree.
        initComponent(vnode, insertedVnodeQueue);
        return true
      }
    }
    if (isDef(tag)) {
      if (isDef(children)) {
        // empty element, allow client to pick up and populate children
        if (!elm.hasChildNodes()) {
          createChildren(vnode, children, insertedVnodeQueue);
        } else {
          var childrenMatch = true;
          var childNode = elm.firstChild;
          for (var i$1 = 0; i$1 < children.length; i$1++) {
            if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue)) {
              childrenMatch = false;
              break
            }
            childNode = childNode.nextSibling;
          }
          // if childNode is not null, it means the actual childNodes list is
          // longer than the virtual children list.
          if (!childrenMatch || childNode) {
            if ("development" !== 'production' &&
                typeof console !== 'undefined' &&
                !bailed) {
              bailed = true;
              console.warn('Parent: ', elm);
              console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
            }
            return false
          }
        }
      }
      if (isDef(data)) {
        for (var key in data) {
          if (!isRenderedModule(key)) {
            invokeCreateHooks(vnode, insertedVnodeQueue);
            break
          }
        }
      }
    } else if (elm.data !== vnode.text) {
      elm.data = vnode.text;
    }
    return true
  }

  function assertNodeMatch (node, vnode) {
    if (vnode.tag) {
      return (
        vnode.tag.indexOf('vue-component') === 0 ||
        vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())
      )
    } else {
      return node.nodeType === (vnode.isComment ? 8 : 3)
    }
  }

  return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {
    if (!vnode) {
      if (oldVnode) { invokeDestroyHook(oldVnode); }
      return
    }

    var isInitialPatch = false;
    var insertedVnodeQueue = [];

    if (!oldVnode) {
      // empty mount (likely as component), create new root element
      isInitialPatch = true;
      createElm(vnode, insertedVnodeQueue, parentElm, refElm);
    } else {
      var isRealElement = isDef(oldVnode.nodeType);
      if (!isRealElement && sameVnode(oldVnode, vnode)) {
        // patch existing root node
        patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);
      } else {
        if (isRealElement) {
          // mounting to a real element
          // check if this is server-rendered content and if we can perform
          // a successful hydration.
          if (oldVnode.nodeType === 1 && oldVnode.hasAttribute('server-rendered')) {
            oldVnode.removeAttribute('server-rendered');
            hydrating = true;
          }
          if (hydrating) {
            if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
              invokeInsertHook(vnode, insertedVnodeQueue, true);
              return oldVnode
            } else {
              warn(
                'The client-side rendered virtual DOM tree is not matching ' +
                'server-rendered content. This is likely caused by incorrect ' +
                'HTML markup, for example nesting block-level elements inside ' +
                '<p>, or missing <tbody>. Bailing hydration and performing ' +
                'full client-side render.'
              );
            }
          }
          // either not server-rendered, or hydration failed.
          // create an empty node and replace it
          oldVnode = emptyNodeAt(oldVnode);
        }
        // replacing existing element
        var oldElm = oldVnode.elm;
        var parentElm$1 = nodeOps.parentNode(oldElm);
        createElm(
          vnode,
          insertedVnodeQueue,
          // extremely rare edge case: do not insert if old element is in a
          // leaving transition. Only happens when combining transition +
          // keep-alive + HOCs. (#4590)
          oldElm._leaveCb ? null : parentElm$1,
          nodeOps.nextSibling(oldElm)
        );

        if (vnode.parent) {
          // component root element replaced.
          // update parent placeholder node element, recursively
          var ancestor = vnode.parent;
          while (ancestor) {
            ancestor.elm = vnode.elm;
            ancestor = ancestor.parent;
          }
          if (isPatchable(vnode)) {
            for (var i = 0; i < cbs.create.length; ++i) {
              cbs.create[i](emptyNode, vnode.parent);
            }
          }
        }

        if (parentElm$1 !== null) {
          removeVnodes(parentElm$1, [oldVnode], 0, 0);
        } else if (isDef(oldVnode.tag)) {
          invokeDestroyHook(oldVnode);
        }
      }
    }

    invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
    return vnode.elm
  }
}

/*  */

var directives = {
  create: updateDirectives,
  update: updateDirectives,
  destroy: function unbindDirectives (vnode) {
    updateDirectives(vnode, emptyNode);
  }
};

function updateDirectives (oldVnode, vnode) {
  if (oldVnode.data.directives || vnode.data.directives) {
    _update(oldVnode, vnode);
  }
}

function _update (oldVnode, vnode) {
  var isCreate = oldVnode === emptyNode;
  var isDestroy = vnode === emptyNode;
  var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);
  var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);

  var dirsWithInsert = [];
  var dirsWithPostpatch = [];

  var key, oldDir, dir;
  for (key in newDirs) {
    oldDir = oldDirs[key];
    dir = newDirs[key];
    if (!oldDir) {
      // new directive, bind
      callHook$1(dir, 'bind', vnode, oldVnode);
      if (dir.def && dir.def.inserted) {
        dirsWithInsert.push(dir);
      }
    } else {
      // existing directive, update
      dir.oldValue = oldDir.value;
      callHook$1(dir, 'update', vnode, oldVnode);
      if (dir.def && dir.def.componentUpdated) {
        dirsWithPostpatch.push(dir);
      }
    }
  }

  if (dirsWithInsert.length) {
    var callInsert = function () {
      for (var i = 0; i < dirsWithInsert.length; i++) {
        callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);
      }
    };
    if (isCreate) {
      mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', callInsert);
    } else {
      callInsert();
    }
  }

  if (dirsWithPostpatch.length) {
    mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'postpatch', function () {
      for (var i = 0; i < dirsWithPostpatch.length; i++) {
        callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
      }
    });
  }

  if (!isCreate) {
    for (key in oldDirs) {
      if (!newDirs[key]) {
        // no longer present, unbind
        callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
      }
    }
  }
}

var emptyModifiers = Object.create(null);

function normalizeDirectives$1 (
  dirs,
  vm
) {
  var res = Object.create(null);
  if (!dirs) {
    return res
  }
  var i, dir;
  for (i = 0; i < dirs.length; i++) {
    dir = dirs[i];
    if (!dir.modifiers) {
      dir.modifiers = emptyModifiers;
    }
    res[getRawDirName(dir)] = dir;
    dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);
  }
  return res
}

function getRawDirName (dir) {
  return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))
}

function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {
  var fn = dir.def && dir.def[hook];
  if (fn) {
    fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
  }
}

var baseModules = [
  ref,
  directives
];

/*  */

function updateAttrs (oldVnode, vnode) {
  if (!oldVnode.data.attrs && !vnode.data.attrs) {
    return
  }
  var key, cur, old;
  var elm = vnode.elm;
  var oldAttrs = oldVnode.data.attrs || {};
  var attrs = vnode.data.attrs || {};
  // clone observed objects, as the user probably wants to mutate it
  if (attrs.__ob__) {
    attrs = vnode.data.attrs = extend({}, attrs);
  }

  for (key in attrs) {
    cur = attrs[key];
    old = oldAttrs[key];
    if (old !== cur) {
      setAttr(elm, key, cur);
    }
  }
  // #4391: in IE9, setting type can reset value for input[type=radio]
  /* istanbul ignore if */
  if (isIE9 && attrs.value !== oldAttrs.value) {
    setAttr(elm, 'value', attrs.value);
  }
  for (key in oldAttrs) {
    if (attrs[key] == null) {
      if (isXlink(key)) {
        elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
      } else if (!isEnumeratedAttr(key)) {
        elm.removeAttribute(key);
      }
    }
  }
}

function setAttr (el, key, value) {
  if (isBooleanAttr(key)) {
    // set attribute for blank value
    // e.g. <option disabled>Select one</option>
    if (isFalsyAttrValue(value)) {
      el.removeAttribute(key);
    } else {
      el.setAttribute(key, key);
    }
  } else if (isEnumeratedAttr(key)) {
    el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');
  } else if (isXlink(key)) {
    if (isFalsyAttrValue(value)) {
      el.removeAttributeNS(xlinkNS, getXlinkProp(key));
    } else {
      el.setAttributeNS(xlinkNS, key, value);
    }
  } else {
    if (isFalsyAttrValue(value)) {
      el.removeAttribute(key);
    } else {
      el.setAttribute(key, value);
    }
  }
}

var attrs = {
  create: updateAttrs,
  update: updateAttrs
};

/*  */

function updateClass (oldVnode, vnode) {
  var el = vnode.elm;
  var data = vnode.data;
  var oldData = oldVnode.data;
  if (!data.staticClass && !data.class &&
      (!oldData || (!oldData.staticClass && !oldData.class))) {
    return
  }

  var cls = genClassForVnode(vnode);

  // handle transition classes
  var transitionClass = el._transitionClasses;
  if (transitionClass) {
    cls = concat(cls, stringifyClass(transitionClass));
  }

  // set the class
  if (cls !== el._prevClass) {
    el.setAttribute('class', cls);
    el._prevClass = cls;
  }
}

var klass = {
  create: updateClass,
  update: updateClass
};

/*  */

var validDivisionCharRE = /[\w).+\-_$\]]/;

function parseFilters (exp) {
  var inSingle = false;
  var inDouble = false;
  var inTemplateString = false;
  var inRegex = false;
  var curly = 0;
  var square = 0;
  var paren = 0;
  var lastFilterIndex = 0;
  var c, prev, i, expression, filters;

  for (i = 0; i < exp.length; i++) {
    prev = c;
    c = exp.charCodeAt(i);
    if (inSingle) {
      if (c === 0x27 && prev !== 0x5C) { inSingle = false; }
    } else if (inDouble) {
      if (c === 0x22 && prev !== 0x5C) { inDouble = false; }
    } else if (inTemplateString) {
      if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }
    } else if (inRegex) {
      if (c === 0x2f && prev !== 0x5C) { inRegex = false; }
    } else if (
      c === 0x7C && // pipe
      exp.charCodeAt(i + 1) !== 0x7C &&
      exp.charCodeAt(i - 1) !== 0x7C &&
      !curly && !square && !paren
    ) {
      if (expression === undefined) {
        // first filter, end of expression
        lastFilterIndex = i + 1;
        expression = exp.slice(0, i).trim();
      } else {
        pushFilter();
      }
    } else {
      switch (c) {
        case 0x22: inDouble = true; break         // "
        case 0x27: inSingle = true; break         // '
        case 0x60: inTemplateString = true; break // `
        case 0x28: paren++; break                 // (
        case 0x29: paren--; break                 // )
        case 0x5B: square++; break                // [
        case 0x5D: square--; break                // ]
        case 0x7B: curly++; break                 // {
        case 0x7D: curly--; break                 // }
      }
      if (c === 0x2f) { // /
        var j = i - 1;
        var p = (void 0);
        // find first non-whitespace prev char
        for (; j >= 0; j--) {
          p = exp.charAt(j);
          if (p !== ' ') { break }
        }
        if (!p || !validDivisionCharRE.test(p)) {
          inRegex = true;
        }
      }
    }
  }

  if (expression === undefined) {
    expression = exp.slice(0, i).trim();
  } else if (lastFilterIndex !== 0) {
    pushFilter();
  }

  function pushFilter () {
    (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
    lastFilterIndex = i + 1;
  }

  if (filters) {
    for (i = 0; i < filters.length; i++) {
      expression = wrapFilter(expression, filters[i]);
    }
  }

  return expression
}

function wrapFilter (exp, filter) {
  var i = filter.indexOf('(');
  if (i < 0) {
    // _f: resolveFilter
    return ("_f(\"" + filter + "\")(" + exp + ")")
  } else {
    var name = filter.slice(0, i);
    var args = filter.slice(i + 1);
    return ("_f(\"" + name + "\")(" + exp + "," + args)
  }
}

/*  */

function baseWarn (msg) {
  console.error(("[Vue compiler]: " + msg));
}

function pluckModuleFunction (
  modules,
  key
) {
  return modules
    ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })
    : []
}

function addProp (el, name, value) {
  (el.props || (el.props = [])).push({ name: name, value: value });
}

function addAttr (el, name, value) {
  (el.attrs || (el.attrs = [])).push({ name: name, value: value });
}

function addDirective (
  el,
  name,
  rawName,
  value,
  arg,
  modifiers
) {
  (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });
}

function addHandler (
  el,
  name,
  value,
  modifiers,
  important
) {
  // check capture modifier
  if (modifiers && modifiers.capture) {
    delete modifiers.capture;
    name = '!' + name; // mark the event as captured
  }
  if (modifiers && modifiers.once) {
    delete modifiers.once;
    name = '~' + name; // mark the event as once
  }
  var events;
  if (modifiers && modifiers.native) {
    delete modifiers.native;
    events = el.nativeEvents || (el.nativeEvents = {});
  } else {
    events = el.events || (el.events = {});
  }
  var newHandler = { value: value, modifiers: modifiers };
  var handlers = events[name];
  /* istanbul ignore if */
  if (Array.isArray(handlers)) {
    important ? handlers.unshift(newHandler) : handlers.push(newHandler);
  } else if (handlers) {
    events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
  } else {
    events[name] = newHandler;
  }
}

function getBindingAttr (
  el,
  name,
  getStatic
) {
  var dynamicValue =
    getAndRemoveAttr(el, ':' + name) ||
    getAndRemoveAttr(el, 'v-bind:' + name);
  if (dynamicValue != null) {
    return parseFilters(dynamicValue)
  } else if (getStatic !== false) {
    var staticValue = getAndRemoveAttr(el, name);
    if (staticValue != null) {
      return JSON.stringify(staticValue)
    }
  }
}

function getAndRemoveAttr (el, name) {
  var val;
  if ((val = el.attrsMap[name]) != null) {
    var list = el.attrsList;
    for (var i = 0, l = list.length; i < l; i++) {
      if (list[i].name === name) {
        list.splice(i, 1);
        break
      }
    }
  }
  return val
}

/*  */

/**
 * Cross-platform code generation for component v-model
 */
function genComponentModel (
  el,
  value,
  modifiers
) {
  var ref = modifiers || {};
  var number = ref.number;
  var trim = ref.trim;

  var baseValueExpression = '$$v';
  var valueExpression = baseValueExpression;
  if (trim) {
    valueExpression =
      "(typeof " + baseValueExpression + " === 'string'" +
        "? " + baseValueExpression + ".trim()" +
        ": " + baseValueExpression + ")";
  }
  if (number) {
    valueExpression = "_n(" + valueExpression + ")";
  }
  var assignment = genAssignmentCode(value, valueExpression);

  el.model = {
    value: ("(" + value + ")"),
    callback: ("function (" + baseValueExpression + ") {" + assignment + "}")
  };
}

/**
 * Cross-platform codegen helper for generating v-model value assignment code.
 */
function genAssignmentCode (
  value,
  assignment
) {
  var modelRs = parseModel(value);
  if (modelRs.idx === null) {
    return (value + "=" + assignment)
  } else {
    return "var $$exp = " + (modelRs.exp) + ", $$idx = " + (modelRs.idx) + ";" +
      "if (!Array.isArray($$exp)){" +
        value + "=" + assignment + "}" +
      "else{$$exp.splice($$idx, 1, " + assignment + ")}"
  }
}

/**
 * parse directive model to do the array update transform. a[idx] = val => $$a.splice($$idx, 1, val)
 *
 * for loop possible cases:
 *
 * - test
 * - test[idx]
 * - test[test1[idx]]
 * - test["a"][idx]
 * - xxx.test[a[a].test1[idx]]
 * - test.xxx.a["asa"][test1[idx]]
 *
 */

var len;
var str;
var chr;
var index$1;
var expressionPos;
var expressionEndPos;

function parseModel (val) {
  str = val;
  len = str.length;
  index$1 = expressionPos = expressionEndPos = 0;

  if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
    return {
      exp: val,
      idx: null
    }
  }

  while (!eof()) {
    chr = next();
    /* istanbul ignore if */
    if (isStringStart(chr)) {
      parseString(chr);
    } else if (chr === 0x5B) {
      parseBracket(chr);
    }
  }

  return {
    exp: val.substring(0, expressionPos),
    idx: val.substring(expressionPos + 1, expressionEndPos)
  }
}

function next () {
  return str.charCodeAt(++index$1)
}

function eof () {
  return index$1 >= len
}

function isStringStart (chr) {
  return chr === 0x22 || chr === 0x27
}

function parseBracket (chr) {
  var inBracket = 1;
  expressionPos = index$1;
  while (!eof()) {
    chr = next();
    if (isStringStart(chr)) {
      parseString(chr);
      continue
    }
    if (chr === 0x5B) { inBracket++; }
    if (chr === 0x5D) { inBracket--; }
    if (inBracket === 0) {
      expressionEndPos = index$1;
      break
    }
  }
}

function parseString (chr) {
  var stringQuote = chr;
  while (!eof()) {
    chr = next();
    if (chr === stringQuote) {
      break
    }
  }
}

/*  */

var warn$1;

// in some cases, the event used has to be determined at runtime
// so we used some reserved tokens during compile.
var RANGE_TOKEN = '__r';
var CHECKBOX_RADIO_TOKEN = '__c';

function model (
  el,
  dir,
  _warn
) {
  warn$1 = _warn;
  var value = dir.value;
  var modifiers = dir.modifiers;
  var tag = el.tag;
  var type = el.attrsMap.type;

  {
    var dynamicType = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];
    if (tag === 'input' && dynamicType) {
      warn$1(
        "<input :type=\"" + dynamicType + "\" v-model=\"" + value + "\">:\n" +
        "v-model does not support dynamic input types. Use v-if branches instead."
      );
    }
    // inputs with type="file" are read only and setting the input's
    // value will throw an error.
    if (tag === 'input' && type === 'file') {
      warn$1(
        "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" +
        "File inputs are read only. Use a v-on:change listener instead."
      );
    }
  }

  if (tag === 'select') {
    genSelect(el, value, modifiers);
  } else if (tag === 'input' && type === 'checkbox') {
    genCheckboxModel(el, value, modifiers);
  } else if (tag === 'input' && type === 'radio') {
    genRadioModel(el, value, modifiers);
  } else if (tag === 'input' || tag === 'textarea') {
    genDefaultModel(el, value, modifiers);
  } else if (!config.isReservedTag(tag)) {
    genComponentModel(el, value, modifiers);
    // component v-model doesn't need extra runtime
    return false
  } else {
    warn$1(
      "<" + (el.tag) + " v-model=\"" + value + "\">: " +
      "v-model is not supported on this element type. " +
      'If you are working with contenteditable, it\'s recommended to ' +
      'wrap a library dedicated for that purpose inside a custom component.'
    );
  }

  // ensure runtime directive metadata
  return true
}

function genCheckboxModel (
  el,
  value,
  modifiers
) {
  if ("development" !== 'production' &&
    el.attrsMap.checked != null) {
    warn$1(
      "<" + (el.tag) + " v-model=\"" + value + "\" checked>:\n" +
      "inline checked attributes will be ignored when using v-model. " +
      'Declare initial values in the component\'s data option instead.'
    );
  }
  var number = modifiers && modifiers.number;
  var valueBinding = getBindingAttr(el, 'value') || 'null';
  var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
  var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
  addProp(el, 'checked',
    "Array.isArray(" + value + ")" +
      "?_i(" + value + "," + valueBinding + ")>-1" + (
        trueValueBinding === 'true'
          ? (":(" + value + ")")
          : (":_q(" + value + "," + trueValueBinding + ")")
      )
  );
  addHandler(el, CHECKBOX_RADIO_TOKEN,
    "var $$a=" + value + "," +
        '$$el=$event.target,' +
        "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" +
    'if(Array.isArray($$a)){' +
      "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," +
          '$$i=_i($$a,$$v);' +
      "if($$c){$$i<0&&(" + value + "=$$a.concat($$v))}" +
      "else{$$i>-1&&(" + value + "=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}" +
    "}else{" + value + "=$$c}",
    null, true
  );
}

function genRadioModel (
    el,
    value,
    modifiers
) {
  if ("development" !== 'production' &&
    el.attrsMap.checked != null) {
    warn$1(
      "<" + (el.tag) + " v-model=\"" + value + "\" checked>:\n" +
      "inline checked attributes will be ignored when using v-model. " +
      'Declare initial values in the component\'s data option instead.'
    );
  }
  var number = modifiers && modifiers.number;
  var valueBinding = getBindingAttr(el, 'value') || 'null';
  valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;
  addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));
  addHandler(el, CHECKBOX_RADIO_TOKEN, genAssignmentCode(value, valueBinding), null, true);
}

function genSelect (
    el,
    value,
    modifiers
) {
  {
    el.children.some(checkOptionWarning);
  }

  var number = modifiers && modifiers.number;
  var selectedVal = "Array.prototype.filter" +
    ".call($event.target.options,function(o){return o.selected})" +
    ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" +
    "return " + (number ? '_n(val)' : 'val') + "})";

  var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
  var code = "var $$selectedVal = " + selectedVal + ";";
  code = code + " " + (genAssignmentCode(value, assignment));
  addHandler(el, 'change', code, null, true);
}

function checkOptionWarning (option) {
  if (option.type === 1 &&
    option.tag === 'option' &&
    option.attrsMap.selected != null) {
    warn$1(
      "<select v-model=\"" + (option.parent.attrsMap['v-model']) + "\">:\n" +
      'inline selected attributes on <option> will be ignored when using v-model. ' +
      'Declare initial values in the component\'s data option instead.'
    );
    return true
  }
  return false
}

function genDefaultModel (
  el,
  value,
  modifiers
) {
  var type = el.attrsMap.type;
  var ref = modifiers || {};
  var lazy = ref.lazy;
  var number = ref.number;
  var trim = ref.trim;
  var needCompositionGuard = !lazy && type !== 'range';
  var event = lazy
    ? 'change'
    : type === 'range'
      ? RANGE_TOKEN
      : 'input';

  var valueExpression = '$event.target.value';
  if (trim) {
    valueExpression = "$event.target.value.trim()";
  }
  if (number) {
    valueExpression = "_n(" + valueExpression + ")";
  }

  var code = genAssignmentCode(value, valueExpression);
  if (needCompositionGuard) {
    code = "if($event.target.composing)return;" + code;
  }

  addProp(el, 'value', ("(" + value + ")"));
  addHandler(el, event, code, null, true);
  if (trim || number || type === 'number') {
    addHandler(el, 'blur', '$forceUpdate()');
  }
}

/*  */

// normalize v-model event tokens that can only be determined at runtime.
// it's important to place the event as the first in the array because
// the whole point is ensuring the v-model callback gets called before
// user-attached handlers.
function normalizeEvents (on) {
  var event;
  /* istanbul ignore if */
  if (on[RANGE_TOKEN]) {
    // IE input[type=range] only supports `change` event
    event = isIE ? 'change' : 'input';
    on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
    delete on[RANGE_TOKEN];
  }
  if (on[CHECKBOX_RADIO_TOKEN]) {
    // Chrome fires microtasks in between click/change, leads to #4521
    event = isChrome ? 'click' : 'change';
    on[event] = [].concat(on[CHECKBOX_RADIO_TOKEN], on[event] || []);
    delete on[CHECKBOX_RADIO_TOKEN];
  }
}

var target$1;

function add$1 (
  event,
  handler,
  once,
  capture
) {
  if (once) {
    var oldHandler = handler;
    var _target = target$1; // save current target element in closure
    handler = function (ev) {
      var res = arguments.length === 1
        ? oldHandler(ev)
        : oldHandler.apply(null, arguments);
      if (res !== null) {
        remove$2(event, handler, capture, _target);
      }
    };
  }
  target$1.addEventListener(event, handler, capture);
}

function remove$2 (
  event,
  handler,
  capture,
  _target
) {
  (_target || target$1).removeEventListener(event, handler, capture);
}

function updateDOMListeners (oldVnode, vnode) {
  if (!oldVnode.data.on && !vnode.data.on) {
    return
  }
  var on = vnode.data.on || {};
  var oldOn = oldVnode.data.on || {};
  target$1 = vnode.elm;
  normalizeEvents(on);
  updateListeners(on, oldOn, add$1, remove$2, vnode.context);
}

var events = {
  create: updateDOMListeners,
  update: updateDOMListeners
};

/*  */

function updateDOMProps (oldVnode, vnode) {
  if (!oldVnode.data.domProps && !vnode.data.domProps) {
    return
  }
  var key, cur;
  var elm = vnode.elm;
  var oldProps = oldVnode.data.domProps || {};
  var props = vnode.data.domProps || {};
  // clone observed objects, as the user probably wants to mutate it
  if (props.__ob__) {
    props = vnode.data.domProps = extend({}, props);
  }

  for (key in oldProps) {
    if (props[key] == null) {
      elm[key] = '';
    }
  }
  for (key in props) {
    cur = props[key];
    // ignore children if the node has textContent or innerHTML,
    // as these will throw away existing DOM nodes and cause removal errors
    // on subsequent patches (#3360)
    if (key === 'textContent' || key === 'innerHTML') {
      if (vnode.children) { vnode.children.length = 0; }
      if (cur === oldProps[key]) { continue }
    }

    if (key === 'value') {
      // store value as _value as well since
      // non-string values will be stringified
      elm._value = cur;
      // avoid resetting cursor position when value is the same
      var strCur = cur == null ? '' : String(cur);
      if (shouldUpdateValue(elm, vnode, strCur)) {
        elm.value = strCur;
      }
    } else {
      elm[key] = cur;
    }
  }
}

// check platforms/web/util/attrs.js acceptValue


function shouldUpdateValue (
  elm,
  vnode,
  checkVal
) {
  return (!elm.composing && (
    vnode.tag === 'option' ||
    isDirty(elm, checkVal) ||
    isInputChanged(elm, checkVal)
  ))
}

function isDirty (elm, checkVal) {
  // return true when textbox (.number and .trim) loses focus and its value is not equal to the updated value
  return document.activeElement !== elm && elm.value !== checkVal
}

function isInputChanged (elm, newVal) {
  var value = elm.value;
  var modifiers = elm._vModifiers; // injected by v-model runtime
  if ((modifiers && modifiers.number) || elm.type === 'number') {
    return toNumber(value) !== toNumber(newVal)
  }
  if (modifiers && modifiers.trim) {
    return value.trim() !== newVal.trim()
  }
  return value !== newVal
}

var domProps = {
  create: updateDOMProps,
  update: updateDOMProps
};

/*  */

var parseStyleText = cached(function (cssText) {
  var res = {};
  var listDelimiter = /;(?![^(]*\))/g;
  var propertyDelimiter = /:(.+)/;
  cssText.split(listDelimiter).forEach(function (item) {
    if (item) {
      var tmp = item.split(propertyDelimiter);
      tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
    }
  });
  return res
});

// merge static and dynamic style data on the same vnode
function normalizeStyleData (data) {
  var style = normalizeStyleBinding(data.style);
  // static style is pre-processed into an object during compilation
  // and is always a fresh object, so it's safe to merge into it
  return data.staticStyle
    ? extend(data.staticStyle, style)
    : style
}

// normalize possible array / string values into Object
function normalizeStyleBinding (bindingStyle) {
  if (Array.isArray(bindingStyle)) {
    return toObject(bindingStyle)
  }
  if (typeof bindingStyle === 'string') {
    return parseStyleText(bindingStyle)
  }
  return bindingStyle
}

/**
 * parent component style should be after child's
 * so that parent component's style could override it
 */
function getStyle (vnode, checkChild) {
  var res = {};
  var styleData;

  if (checkChild) {
    var childNode = vnode;
    while (childNode.componentInstance) {
      childNode = childNode.componentInstance._vnode;
      if (childNode.data && (styleData = normalizeStyleData(childNode.data))) {
        extend(res, styleData);
      }
    }
  }

  if ((styleData = normalizeStyleData(vnode.data))) {
    extend(res, styleData);
  }

  var parentNode = vnode;
  while ((parentNode = parentNode.parent)) {
    if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
      extend(res, styleData);
    }
  }
  return res
}

/*  */

var cssVarRE = /^--/;
var importantRE = /\s*!important$/;
var setProp = function (el, name, val) {
  /* istanbul ignore if */
  if (cssVarRE.test(name)) {
    el.style.setProperty(name, val);
  } else if (importantRE.test(val)) {
    el.style.setProperty(name, val.replace(importantRE, ''), 'important');
  } else {
    el.style[normalize(name)] = val;
  }
};

var prefixes = ['Webkit', 'Moz', 'ms'];

var testEl;
var normalize = cached(function (prop) {
  testEl = testEl || document.createElement('div');
  prop = camelize(prop);
  if (prop !== 'filter' && (prop in testEl.style)) {
    return prop
  }
  var upper = prop.charAt(0).toUpperCase() + prop.slice(1);
  for (var i = 0; i < prefixes.length; i++) {
    var prefixed = prefixes[i] + upper;
    if (prefixed in testEl.style) {
      return prefixed
    }
  }
});

function updateStyle (oldVnode, vnode) {
  var data = vnode.data;
  var oldData = oldVnode.data;

  if (!data.staticStyle && !data.style &&
      !oldData.staticStyle && !oldData.style) {
    return
  }

  var cur, name;
  var el = vnode.elm;
  var oldStaticStyle = oldVnode.data.staticStyle;
  var oldStyleBinding = oldVnode.data.style || {};

  // if static style exists, stylebinding already merged into it when doing normalizeStyleData
  var oldStyle = oldStaticStyle || oldStyleBinding;

  var style = normalizeStyleBinding(vnode.data.style) || {};

  vnode.data.style = style.__ob__ ? extend({}, style) : style;

  var newStyle = getStyle(vnode, true);

  for (name in oldStyle) {
    if (newStyle[name] == null) {
      setProp(el, name, '');
    }
  }
  for (name in newStyle) {
    cur = newStyle[name];
    if (cur !== oldStyle[name]) {
      // ie9 setting to null has no effect, must use empty string
      setProp(el, name, cur == null ? '' : cur);
    }
  }
}

var style = {
  create: updateStyle,
  update: updateStyle
};

/*  */

/**
 * Add class with compatibility for SVG since classList is not supported on
 * SVG elements in IE
 */
function addClass (el, cls) {
  /* istanbul ignore if */
  if (!cls || !(cls = cls.trim())) {
    return
  }

  /* istanbul ignore else */
  if (el.classList) {
    if (cls.indexOf(' ') > -1) {
      cls.split(/\s+/).forEach(function (c) { return el.classList.add(c); });
    } else {
      el.classList.add(cls);
    }
  } else {
    var cur = " " + (el.getAttribute('class') || '') + " ";
    if (cur.indexOf(' ' + cls + ' ') < 0) {
      el.setAttribute('class', (cur + cls).trim());
    }
  }
}

/**
 * Remove class with compatibility for SVG since classList is not supported on
 * SVG elements in IE
 */
function removeClass (el, cls) {
  /* istanbul ignore if */
  if (!cls || !(cls = cls.trim())) {
    return
  }

  /* istanbul ignore else */
  if (el.classList) {
    if (cls.indexOf(' ') > -1) {
      cls.split(/\s+/).forEach(function (c) { return el.classList.remove(c); });
    } else {
      el.classList.remove(cls);
    }
  } else {
    var cur = " " + (el.getAttribute('class') || '') + " ";
    var tar = ' ' + cls + ' ';
    while (cur.indexOf(tar) >= 0) {
      cur = cur.replace(tar, ' ');
    }
    el.setAttribute('class', cur.trim());
  }
}

/*  */

function resolveTransition (def$$1) {
  if (!def$$1) {
    return
  }
  /* istanbul ignore else */
  if (typeof def$$1 === 'object') {
    var res = {};
    if (def$$1.css !== false) {
      extend(res, autoCssTransition(def$$1.name || 'v'));
    }
    extend(res, def$$1);
    return res
  } else if (typeof def$$1 === 'string') {
    return autoCssTransition(def$$1)
  }
}

var autoCssTransition = cached(function (name) {
  return {
    enterClass: (name + "-enter"),
    enterToClass: (name + "-enter-to"),
    enterActiveClass: (name + "-enter-active"),
    leaveClass: (name + "-leave"),
    leaveToClass: (name + "-leave-to"),
    leaveActiveClass: (name + "-leave-active")
  }
});

var hasTransition = inBrowser && !isIE9;
var TRANSITION = 'transition';
var ANIMATION = 'animation';

// Transition property/event sniffing
var transitionProp = 'transition';
var transitionEndEvent = 'transitionend';
var animationProp = 'animation';
var animationEndEvent = 'animationend';
if (hasTransition) {
  /* istanbul ignore if */
  if (window.ontransitionend === undefined &&
    window.onwebkittransitionend !== undefined) {
    transitionProp = 'WebkitTransition';
    transitionEndEvent = 'webkitTransitionEnd';
  }
  if (window.onanimationend === undefined &&
    window.onwebkitanimationend !== undefined) {
    animationProp = 'WebkitAnimation';
    animationEndEvent = 'webkitAnimationEnd';
  }
}

// binding to window is necessary to make hot reload work in IE in strict mode
var raf = inBrowser && window.requestAnimationFrame
  ? window.requestAnimationFrame.bind(window)
  : setTimeout;

function nextFrame (fn) {
  raf(function () {
    raf(fn);
  });
}

function addTransitionClass (el, cls) {
  (el._transitionClasses || (el._transitionClasses = [])).push(cls);
  addClass(el, cls);
}

function removeTransitionClass (el, cls) {
  if (el._transitionClasses) {
    remove(el._transitionClasses, cls);
  }
  removeClass(el, cls);
}

function whenTransitionEnds (
  el,
  expectedType,
  cb
) {
  var ref = getTransitionInfo(el, expectedType);
  var type = ref.type;
  var timeout = ref.timeout;
  var propCount = ref.propCount;
  if (!type) { return cb() }
  var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
  var ended = 0;
  var end = function () {
    el.removeEventListener(event, onEnd);
    cb();
  };
  var onEnd = function (e) {
    if (e.target === el) {
      if (++ended >= propCount) {
        end();
      }
    }
  };
  setTimeout(function () {
    if (ended < propCount) {
      end();
    }
  }, timeout + 1);
  el.addEventListener(event, onEnd);
}

var transformRE = /\b(transform|all)(,|$)/;

function getTransitionInfo (el, expectedType) {
  var styles = window.getComputedStyle(el);
  var transitioneDelays = styles[transitionProp + 'Delay'].split(', ');
  var transitionDurations = styles[transitionProp + 'Duration'].split(', ');
  var transitionTimeout = getTimeout(transitioneDelays, transitionDurations);
  var animationDelays = styles[animationProp + 'Delay'].split(', ');
  var animationDurations = styles[animationProp + 'Duration'].split(', ');
  var animationTimeout = getTimeout(animationDelays, animationDurations);

  var type;
  var timeout = 0;
  var propCount = 0;
  /* istanbul ignore if */
  if (expectedType === TRANSITION) {
    if (transitionTimeout > 0) {
      type = TRANSITION;
      timeout = transitionTimeout;
      propCount = transitionDurations.length;
    }
  } else if (expectedType === ANIMATION) {
    if (animationTimeout > 0) {
      type = ANIMATION;
      timeout = animationTimeout;
      propCount = animationDurations.length;
    }
  } else {
    timeout = Math.max(transitionTimeout, animationTimeout);
    type = timeout > 0
      ? transitionTimeout > animationTimeout
        ? TRANSITION
        : ANIMATION
      : null;
    propCount = type
      ? type === TRANSITION
        ? transitionDurations.length
        : animationDurations.length
      : 0;
  }
  var hasTransform =
    type === TRANSITION &&
    transformRE.test(styles[transitionProp + 'Property']);
  return {
    type: type,
    timeout: timeout,
    propCount: propCount,
    hasTransform: hasTransform
  }
}

function getTimeout (delays, durations) {
  /* istanbul ignore next */
  while (delays.length < durations.length) {
    delays = delays.concat(delays);
  }

  return Math.max.apply(null, durations.map(function (d, i) {
    return toMs(d) + toMs(delays[i])
  }))
}

function toMs (s) {
  return Number(s.slice(0, -1)) * 1000
}

/*  */

function enter (vnode, toggleDisplay) {
  var el = vnode.elm;

  // call leave callback now
  if (el._leaveCb) {
    el._leaveCb.cancelled = true;
    el._leaveCb();
  }

  var data = resolveTransition(vnode.data.transition);
  if (!data) {
    return
  }

  /* istanbul ignore if */
  if (el._enterCb || el.nodeType !== 1) {
    return
  }

  var css = data.css;
  var type = data.type;
  var enterClass = data.enterClass;
  var enterToClass = data.enterToClass;
  var enterActiveClass = data.enterActiveClass;
  var appearClass = data.appearClass;
  var appearToClass = data.appearToClass;
  var appearActiveClass = data.appearActiveClass;
  var beforeEnter = data.beforeEnter;
  var enter = data.enter;
  var afterEnter = data.afterEnter;
  var enterCancelled = data.enterCancelled;
  var beforeAppear = data.beforeAppear;
  var appear = data.appear;
  var afterAppear = data.afterAppear;
  var appearCancelled = data.appearCancelled;
  var duration = data.duration;

  // activeInstance will always be the <transition> component managing this
  // transition. One edge case to check is when the <transition> is placed
  // as the root node of a child component. In that case we need to check
  // <transition>'s parent for appear check.
  var context = activeInstance;
  var transitionNode = activeInstance.$vnode;
  while (transitionNode && transitionNode.parent) {
    transitionNode = transitionNode.parent;
    context = transitionNode.context;
  }

  var isAppear = !context._isMounted || !vnode.isRootInsert;

  if (isAppear && !appear && appear !== '') {
    return
  }

  var startClass = isAppear && appearClass
    ? appearClass
    : enterClass;
  var activeClass = isAppear && appearActiveClass
    ? appearActiveClass
    : enterActiveClass;
  var toClass = isAppear && appearToClass
    ? appearToClass
    : enterToClass;

  var beforeEnterHook = isAppear
    ? (beforeAppear || beforeEnter)
    : beforeEnter;
  var enterHook = isAppear
    ? (typeof appear === 'function' ? appear : enter)
    : enter;
  var afterEnterHook = isAppear
    ? (afterAppear || afterEnter)
    : afterEnter;
  var enterCancelledHook = isAppear
    ? (appearCancelled || enterCancelled)
    : enterCancelled;

  var explicitEnterDuration = toNumber(
    isObject(duration)
      ? duration.enter
      : duration
  );

  if ("development" !== 'production' && explicitEnterDuration != null) {
    checkDuration(explicitEnterDuration, 'enter', vnode);
  }

  var expectsCSS = css !== false && !isIE9;
  var userWantsControl = getHookAgumentsLength(enterHook);

  var cb = el._enterCb = once(function () {
    if (expectsCSS) {
      removeTransitionClass(el, toClass);
      removeTransitionClass(el, activeClass);
    }
    if (cb.cancelled) {
      if (expectsCSS) {
        removeTransitionClass(el, startClass);
      }
      enterCancelledHook && enterCancelledHook(el);
    } else {
      afterEnterHook && afterEnterHook(el);
    }
    el._enterCb = null;
  });

  if (!vnode.data.show) {
    // remove pending leave element on enter by injecting an insert hook
    mergeVNodeHook(vnode.data.hook || (vnode.data.hook = {}), 'insert', function () {
      var parent = el.parentNode;
      var pendingNode = parent && parent._pending && parent._pending[vnode.key];
      if (pendingNode &&
          pendingNode.tag === vnode.tag &&
          pendingNode.elm._leaveCb) {
        pendingNode.elm._leaveCb();
      }
      enterHook && enterHook(el, cb);
    });
  }

  // start enter transition
  beforeEnterHook && beforeEnterHook(el);
  if (expectsCSS) {
    addTransitionClass(el, startClass);
    addTransitionClass(el, activeClass);
    nextFrame(function () {
      addTransitionClass(el, toClass);
      removeTransitionClass(el, startClass);
      if (!cb.cancelled && !userWantsControl) {
        if (isValidDuration(explicitEnterDuration)) {
          setTimeout(cb, explicitEnterDuration);
        } else {
          whenTransitionEnds(el, type, cb);
        }
      }
    });
  }

  if (vnode.data.show) {
    toggleDisplay && toggleDisplay();
    enterHook && enterHook(el, cb);
  }

  if (!expectsCSS && !userWantsControl) {
    cb();
  }
}

function leave (vnode, rm) {
  var el = vnode.elm;

  // call enter callback now
  if (el._enterCb) {
    el._enterCb.cancelled = true;
    el._enterCb();
  }

  var data = resolveTransition(vnode.data.transition);
  if (!data) {
    return rm()
  }

  /* istanbul ignore if */
  if (el._leaveCb || el.nodeType !== 1) {
    return
  }

  var css = data.css;
  var type = data.type;
  var leaveClass = data.leaveClass;
  var leaveToClass = data.leaveToClass;
  var leaveActiveClass = data.leaveActiveClass;
  var beforeLeave = data.beforeLeave;
  var leave = data.leave;
  var afterLeave = data.afterLeave;
  var leaveCancelled = data.leaveCancelled;
  var delayLeave = data.delayLeave;
  var duration = data.duration;

  var expectsCSS = css !== false && !isIE9;
  var userWantsControl = getHookAgumentsLength(leave);

  var explicitLeaveDuration = toNumber(
    isObject(duration)
      ? duration.leave
      : duration
  );

  if ("development" !== 'production' && explicitLeaveDuration != null) {
    checkDuration(explicitLeaveDuration, 'leave', vnode);
  }

  var cb = el._leaveCb = once(function () {
    if (el.parentNode && el.parentNode._pending) {
      el.parentNode._pending[vnode.key] = null;
    }
    if (expectsCSS) {
      removeTransitionClass(el, leaveToClass);
      removeTransitionClass(el, leaveActiveClass);
    }
    if (cb.cancelled) {
      if (expectsCSS) {
        removeTransitionClass(el, leaveClass);
      }
      leaveCancelled && leaveCancelled(el);
    } else {
      rm();
      afterLeave && afterLeave(el);
    }
    el._leaveCb = null;
  });

  if (delayLeave) {
    delayLeave(performLeave);
  } else {
    performLeave();
  }

  function performLeave () {
    // the delayed leave may have already been cancelled
    if (cb.cancelled) {
      return
    }
    // record leaving element
    if (!vnode.data.show) {
      (el.parentNode._pending || (el.parentNode._pending = {}))[vnode.key] = vnode;
    }
    beforeLeave && beforeLeave(el);
    if (expectsCSS) {
      addTransitionClass(el, leaveClass);
      addTransitionClass(el, leaveActiveClass);
      nextFrame(function () {
        addTransitionClass(el, leaveToClass);
        removeTransitionClass(el, leaveClass);
        if (!cb.cancelled && !userWantsControl) {
          if (isValidDuration(explicitLeaveDuration)) {
            setTimeout(cb, explicitLeaveDuration);
          } else {
            whenTransitionEnds(el, type, cb);
          }
        }
      });
    }
    leave && leave(el, cb);
    if (!expectsCSS && !userWantsControl) {
      cb();
    }
  }
}

// only used in dev mode
function checkDuration (val, name, vnode) {
  if (typeof val !== 'number') {
    warn(
      "<transition> explicit " + name + " duration is not a valid number - " +
      "got " + (JSON.stringify(val)) + ".",
      vnode.context
    );
  } else if (isNaN(val)) {
    warn(
      "<transition> explicit " + name + " duration is NaN - " +
      'the duration expression might be incorrect.',
      vnode.context
    );
  }
}

function isValidDuration (val) {
  return typeof val === 'number' && !isNaN(val)
}

/**
 * Normalize a transition hook's argument length. The hook may be:
 * - a merged hook (invoker) with the original in .fns
 * - a wrapped component method (check ._length)
 * - a plain function (.length)
 */
function getHookAgumentsLength (fn) {
  if (!fn) { return false }
  var invokerFns = fn.fns;
  if (invokerFns) {
    // invoker
    return getHookAgumentsLength(
      Array.isArray(invokerFns)
        ? invokerFns[0]
        : invokerFns
    )
  } else {
    return (fn._length || fn.length) > 1
  }
}

function _enter (_, vnode) {
  if (!vnode.data.show) {
    enter(vnode);
  }
}

var transition = inBrowser ? {
  create: _enter,
  activate: _enter,
  remove: function remove$$1 (vnode, rm) {
    /* istanbul ignore else */
    if (!vnode.data.show) {
      leave(vnode, rm);
    } else {
      rm();
    }
  }
} : {};

var platformModules = [
  attrs,
  klass,
  events,
  domProps,
  style,
  transition
];

/*  */

// the directive module should be applied last, after all
// built-in modules have been applied.
var modules = platformModules.concat(baseModules);

var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });

/**
 * Not type checking this file because flow doesn't like attaching
 * properties to Elements.
 */

/* istanbul ignore if */
if (isIE9) {
  // http://www.matts411.com/post/internet-explorer-9-oninput/
  document.addEventListener('selectionchange', function () {
    var el = document.activeElement;
    if (el && el.vmodel) {
      trigger(el, 'input');
    }
  });
}

var model$1 = {
  inserted: function inserted (el, binding, vnode) {
    if (vnode.tag === 'select') {
      var cb = function () {
        setSelected(el, binding, vnode.context);
      };
      cb();
      /* istanbul ignore if */
      if (isIE || isEdge) {
        setTimeout(cb, 0);
      }
    } else if (vnode.tag === 'textarea' || el.type === 'text') {
      el._vModifiers = binding.modifiers;
      if (!binding.modifiers.lazy) {
        if (!isAndroid) {
          el.addEventListener('compositionstart', onCompositionStart);
          el.addEventListener('compositionend', onCompositionEnd);
        }
        /* istanbul ignore if */
        if (isIE9) {
          el.vmodel = true;
        }
      }
    }
  },
  componentUpdated: function componentUpdated (el, binding, vnode) {
    if (vnode.tag === 'select') {
      setSelected(el, binding, vnode.context);
      // in case the options rendered by v-for have changed,
      // it's possible that the value is out-of-sync with the rendered options.
      // detect such cases and filter out values that no longer has a matching
      // option in the DOM.
      var needReset = el.multiple
        ? binding.value.some(function (v) { return hasNoMatchingOption(v, el.options); })
        : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, el.options);
      if (needReset) {
        trigger(el, 'change');
      }
    }
  }
};

function setSelected (el, binding, vm) {
  var value = binding.value;
  var isMultiple = el.multiple;
  if (isMultiple && !Array.isArray(value)) {
    "development" !== 'production' && warn(
      "<select multiple v-model=\"" + (binding.expression) + "\"> " +
      "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),
      vm
    );
    return
  }
  var selected, option;
  for (var i = 0, l = el.options.length; i < l; i++) {
    option = el.options[i];
    if (isMultiple) {
      selected = looseIndexOf(value, getValue(option)) > -1;
      if (option.selected !== selected) {
        option.selected = selected;
      }
    } else {
      if (looseEqual(getValue(option), value)) {
        if (el.selectedIndex !== i) {
          el.selectedIndex = i;
        }
        return
      }
    }
  }
  if (!isMultiple) {
    el.selectedIndex = -1;
  }
}

function hasNoMatchingOption (value, options) {
  for (var i = 0, l = options.length; i < l; i++) {
    if (looseEqual(getValue(options[i]), value)) {
      return false
    }
  }
  return true
}

function getValue (option) {
  return '_value' in option
    ? option._value
    : option.value
}

function onCompositionStart (e) {
  e.target.composing = true;
}

function onCompositionEnd (e) {
  e.target.composing = false;
  trigger(e.target, 'input');
}

function trigger (el, type) {
  var e = document.createEvent('HTMLEvents');
  e.initEvent(type, true, true);
  el.dispatchEvent(e);
}

/*  */

// recursively search for possible transition defined inside the component root
function locateNode (vnode) {
  return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
    ? locateNode(vnode.componentInstance._vnode)
    : vnode
}

var show = {
  bind: function bind (el, ref, vnode) {
    var value = ref.value;

    vnode = locateNode(vnode);
    var transition = vnode.data && vnode.data.transition;
    var originalDisplay = el.__vOriginalDisplay =
      el.style.display === 'none' ? '' : el.style.display;
    if (value && transition && !isIE9) {
      vnode.data.show = true;
      enter(vnode, function () {
        el.style.display = originalDisplay;
      });
    } else {
      el.style.display = value ? originalDisplay : 'none';
    }
  },

  update: function update (el, ref, vnode) {
    var value = ref.value;
    var oldValue = ref.oldValue;

    /* istanbul ignore if */
    if (value === oldValue) { return }
    vnode = locateNode(vnode);
    var transition = vnode.data && vnode.data.transition;
    if (transition && !isIE9) {
      vnode.data.show = true;
      if (value) {
        enter(vnode, function () {
          el.style.display = el.__vOriginalDisplay;
        });
      } else {
        leave(vnode, function () {
          el.style.display = 'none';
        });
      }
    } else {
      el.style.display = value ? el.__vOriginalDisplay : 'none';
    }
  },

  unbind: function unbind (
    el,
    binding,
    vnode,
    oldVnode,
    isDestroy
  ) {
    if (!isDestroy) {
      el.style.display = el.__vOriginalDisplay;
    }
  }
};

var platformDirectives = {
  model: model$1,
  show: show
};

/*  */

// Provides transition support for a single element/component.
// supports transition mode (out-in / in-out)

var transitionProps = {
  name: String,
  appear: Boolean,
  css: Boolean,
  mode: String,
  type: String,
  enterClass: String,
  leaveClass: String,
  enterToClass: String,
  leaveToClass: String,
  enterActiveClass: String,
  leaveActiveClass: String,
  appearClass: String,
  appearActiveClass: String,
  appearToClass: String,
  duration: [Number, String, Object]
};

// in case the child is also an abstract component, e.g. <keep-alive>
// we want to recursively retrieve the real component to be rendered
function getRealChild (vnode) {
  var compOptions = vnode && vnode.componentOptions;
  if (compOptions && compOptions.Ctor.options.abstract) {
    return getRealChild(getFirstComponentChild(compOptions.children))
  } else {
    return vnode
  }
}

function extractTransitionData (comp) {
  var data = {};
  var options = comp.$options;
  // props
  for (var key in options.propsData) {
    data[key] = comp[key];
  }
  // events.
  // extract listeners and pass them directly to the transition methods
  var listeners = options._parentListeners;
  for (var key$1 in listeners) {
    data[camelize(key$1)] = listeners[key$1];
  }
  return data
}

function placeholder (h, rawChild) {
  return /\d-keep-alive$/.test(rawChild.tag)
    ? h('keep-alive')
    : null
}

function hasParentTransition (vnode) {
  while ((vnode = vnode.parent)) {
    if (vnode.data.transition) {
      return true
    }
  }
}

function isSameChild (child, oldChild) {
  return oldChild.key === child.key && oldChild.tag === child.tag
}

var Transition = {
  name: 'transition',
  props: transitionProps,
  abstract: true,

  render: function render (h) {
    var this$1 = this;

    var children = this.$slots.default;
    if (!children) {
      return
    }

    // filter out text nodes (possible whitespaces)
    children = children.filter(function (c) { return c.tag; });
    /* istanbul ignore if */
    if (!children.length) {
      return
    }

    // warn multiple elements
    if ("development" !== 'production' && children.length > 1) {
      warn(
        '<transition> can only be used on a single element. Use ' +
        '<transition-group> for lists.',
        this.$parent
      );
    }

    var mode = this.mode;

    // warn invalid mode
    if ("development" !== 'production' &&
        mode && mode !== 'in-out' && mode !== 'out-in') {
      warn(
        'invalid <transition> mode: ' + mode,
        this.$parent
      );
    }

    var rawChild = children[0];

    // if this is a component root node and the component's
    // parent container node also has transition, skip.
    if (hasParentTransition(this.$vnode)) {
      return rawChild
    }

    // apply transition data to child
    // use getRealChild() to ignore abstract components e.g. keep-alive
    var child = getRealChild(rawChild);
    /* istanbul ignore if */
    if (!child) {
      return rawChild
    }

    if (this._leaving) {
      return placeholder(h, rawChild)
    }

    // ensure a key that is unique to the vnode type and to this transition
    // component instance. This key will be used to remove pending leaving nodes
    // during entering.
    var id = "__transition-" + (this._uid) + "-";
    child.key = child.key == null
      ? id + child.tag
      : isPrimitive(child.key)
        ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
        : child.key;

    var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
    var oldRawChild = this._vnode;
    var oldChild = getRealChild(oldRawChild);

    // mark v-show
    // so that the transition module can hand over the control to the directive
    if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {
      child.data.show = true;
    }

    if (oldChild && oldChild.data && !isSameChild(child, oldChild)) {
      // replace old child transition data with fresh one
      // important for dynamic transitions!
      var oldData = oldChild && (oldChild.data.transition = extend({}, data));
      // handle transition mode
      if (mode === 'out-in') {
        // return placeholder node and queue update when leave finishes
        this._leaving = true;
        mergeVNodeHook(oldData, 'afterLeave', function () {
          this$1._leaving = false;
          this$1.$forceUpdate();
        });
        return placeholder(h, rawChild)
      } else if (mode === 'in-out') {
        var delayedLeave;
        var performLeave = function () { delayedLeave(); };
        mergeVNodeHook(data, 'afterEnter', performLeave);
        mergeVNodeHook(data, 'enterCancelled', performLeave);
        mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });
      }
    }

    return rawChild
  }
};

/*  */

// Provides transition support for list items.
// supports move transitions using the FLIP technique.

// Because the vdom's children update algorithm is "unstable" - i.e.
// it doesn't guarantee the relative positioning of removed elements,
// we force transition-group to update its children into two passes:
// in the first pass, we remove all nodes that need to be removed,
// triggering their leaving transition; in the second pass, we insert/move
// into the final disired state. This way in the second pass removed
// nodes will remain where they should be.

var props = extend({
  tag: String,
  moveClass: String
}, transitionProps);

delete props.mode;

var TransitionGroup = {
  props: props,

  render: function render (h) {
    var tag = this.tag || this.$vnode.data.tag || 'span';
    var map = Object.create(null);
    var prevChildren = this.prevChildren = this.children;
    var rawChildren = this.$slots.default || [];
    var children = this.children = [];
    var transitionData = extractTransitionData(this);

    for (var i = 0; i < rawChildren.length; i++) {
      var c = rawChildren[i];
      if (c.tag) {
        if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
          children.push(c);
          map[c.key] = c
          ;(c.data || (c.data = {})).transition = transitionData;
        } else {
          var opts = c.componentOptions;
          var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;
          warn(("<transition-group> children must be keyed: <" + name + ">"));
        }
      }
    }

    if (prevChildren) {
      var kept = [];
      var removed = [];
      for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {
        var c$1 = prevChildren[i$1];
        c$1.data.transition = transitionData;
        c$1.data.pos = c$1.elm.getBoundingClientRect();
        if (map[c$1.key]) {
          kept.push(c$1);
        } else {
          removed.push(c$1);
        }
      }
      this.kept = h(tag, null, kept);
      this.removed = removed;
    }

    return h(tag, null, children)
  },

  beforeUpdate: function beforeUpdate () {
    // force removing pass
    this.__patch__(
      this._vnode,
      this.kept,
      false, // hydrating
      true // removeOnly (!important, avoids unnecessary moves)
    );
    this._vnode = this.kept;
  },

  updated: function updated () {
    var children = this.prevChildren;
    var moveClass = this.moveClass || ((this.name || 'v') + '-move');
    if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
      return
    }

    // we divide the work into three loops to avoid mixing DOM reads and writes
    // in each iteration - which helps prevent layout thrashing.
    children.forEach(callPendingCbs);
    children.forEach(recordPosition);
    children.forEach(applyTranslation);

    // force reflow to put everything in position
    var body = document.body;
    var f = body.offsetHeight; // eslint-disable-line

    children.forEach(function (c) {
      if (c.data.moved) {
        var el = c.elm;
        var s = el.style;
        addTransitionClass(el, moveClass);
        s.transform = s.WebkitTransform = s.transitionDuration = '';
        el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {
          if (!e || /transform$/.test(e.propertyName)) {
            el.removeEventListener(transitionEndEvent, cb);
            el._moveCb = null;
            removeTransitionClass(el, moveClass);
          }
        });
      }
    });
  },

  methods: {
    hasMove: function hasMove (el, moveClass) {
      /* istanbul ignore if */
      if (!hasTransition) {
        return false
      }
      if (this._hasMove != null) {
        return this._hasMove
      }
      // Detect whether an element with the move class applied has
      // CSS transitions. Since the element may be inside an entering
      // transition at this very moment, we make a clone of it and remove
      // all other transition classes applied to ensure only the move class
      // is applied.
      var clone = el.cloneNode();
      if (el._transitionClasses) {
        el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });
      }
      addClass(clone, moveClass);
      clone.style.display = 'none';
      this.$el.appendChild(clone);
      var info = getTransitionInfo(clone);
      this.$el.removeChild(clone);
      return (this._hasMove = info.hasTransform)
    }
  }
};

function callPendingCbs (c) {
  /* istanbul ignore if */
  if (c.elm._moveCb) {
    c.elm._moveCb();
  }
  /* istanbul ignore if */
  if (c.elm._enterCb) {
    c.elm._enterCb();
  }
}

function recordPosition (c) {
  c.data.newPos = c.elm.getBoundingClientRect();
}

function applyTranslation (c) {
  var oldPos = c.data.pos;
  var newPos = c.data.newPos;
  var dx = oldPos.left - newPos.left;
  var dy = oldPos.top - newPos.top;
  if (dx || dy) {
    c.data.moved = true;
    var s = c.elm.style;
    s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";
    s.transitionDuration = '0s';
  }
}

var platformComponents = {
  Transition: Transition,
  TransitionGroup: TransitionGroup
};

/*  */

// install platform specific utils
Vue$3.config.mustUseProp = mustUseProp;
Vue$3.config.isReservedTag = isReservedTag;
Vue$3.config.getTagNamespace = getTagNamespace;
Vue$3.config.isUnknownElement = isUnknownElement;

// install platform runtime directives & components
extend(Vue$3.options.directives, platformDirectives);
extend(Vue$3.options.components, platformComponents);

// install platform patch function
Vue$3.prototype.__patch__ = inBrowser ? patch : noop;

// public mount method
Vue$3.prototype.$mount = function (
  el,
  hydrating
) {
  el = el && inBrowser ? query(el) : undefined;
  return mountComponent(this, el, hydrating)
};

// devtools global hook
/* istanbul ignore next */
setTimeout(function () {
  if (config.devtools) {
    if (devtools) {
      devtools.emit('init', Vue$3);
    } else if ("development" !== 'production' && isChrome) {
      console[console.info ? 'info' : 'log'](
        'Download the Vue Devtools extension for a better development experience:\n' +
        'https://github.com/vuejs/vue-devtools'
      );
    }
  }
  if ("development" !== 'production' &&
      config.productionTip !== false &&
      inBrowser && typeof console !== 'undefined') {
    console[console.info ? 'info' : 'log'](
      "You are running Vue in development mode.\n" +
      "Make sure to turn on production mode when deploying for production.\n" +
      "See more tips at https://vuejs.org/guide/deployment.html"
    );
  }
}, 0);

/*  */

// check whether current browser encodes a char inside attribute values
function shouldDecode (content, encoded) {
  var div = document.createElement('div');
  div.innerHTML = "<div a=\"" + content + "\">";
  return div.innerHTML.indexOf(encoded) > 0
}

// #3663
// IE encodes newlines inside attribute values while other browsers don't
var shouldDecodeNewlines = inBrowser ? shouldDecode('\n', '&#10;') : false;

/*  */

var isUnaryTag = makeMap(
  'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
  'link,meta,param,source,track,wbr',
  true
);

// Elements that you can, intentionally, leave open
// (and which close themselves)
var canBeLeftOpenTag = makeMap(
  'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source',
  true
);

// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3
// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
var isNonPhrasingTag = makeMap(
  'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +
  'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +
  'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +
  'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +
  'title,tr,track',
  true
);

/*  */

var decoder;

function decode (html) {
  decoder = decoder || document.createElement('div');
  decoder.innerHTML = html;
  return decoder.textContent
}

/**
 * Not type-checking this file because it's mostly vendor code.
 */

/*!
 * HTML Parser By John Resig (ejohn.org)
 * Modified by Juriy "kangax" Zaytsev
 * Original code by Erik Arvidsson, Mozilla Public License
 * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js
 */

// Regular Expressions for parsing tags and attributes
var singleAttrIdentifier = /([^\s"'<>/=]+)/;
var singleAttrAssign = /(?:=)/;
var singleAttrValues = [
  // attr value double quotes
  /"([^"]*)"+/.source,
  // attr value, single quotes
  /'([^']*)'+/.source,
  // attr value, no quotes
  /([^\s"'=<>`]+)/.source
];
var attribute = new RegExp(
  '^\\s*' + singleAttrIdentifier.source +
  '(?:\\s*(' + singleAttrAssign.source + ')' +
  '\\s*(?:' + singleAttrValues.join('|') + '))?'
);

// could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName
// but for Vue templates we can enforce a simple charset
var ncname = '[a-zA-Z_][\\w\\-\\.]*';
var qnameCapture = '((?:' + ncname + '\\:)?' + ncname + ')';
var startTagOpen = new RegExp('^<' + qnameCapture);
var startTagClose = /^\s*(\/?)>/;
var endTag = new RegExp('^<\\/' + qnameCapture + '[^>]*>');
var doctype = /^<!DOCTYPE [^>]+>/i;
var comment = /^<!--/;
var conditionalComment = /^<!\[/;

var IS_REGEX_CAPTURING_BROKEN = false;
'x'.replace(/x(.)?/g, function (m, g) {
  IS_REGEX_CAPTURING_BROKEN = g === '';
});

// Special Elements (can contain anything)
var isScriptOrStyle = makeMap('script,style', true);
var reCache = {};

var decodingMap = {
  '&lt;': '<',
  '&gt;': '>',
  '&quot;': '"',
  '&amp;': '&',
  '&#10;': '\n'
};
var encodedAttr = /&(?:lt|gt|quot|amp);/g;
var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10);/g;

function decodeAttr (value, shouldDecodeNewlines) {
  var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
  return value.replace(re, function (match) { return decodingMap[match]; })
}

function parseHTML (html, options) {
  var stack = [];
  var expectHTML = options.expectHTML;
  var isUnaryTag$$1 = options.isUnaryTag || no;
  var index = 0;
  var last, lastTag;
  while (html) {
    last = html;
    // Make sure we're not in a script or style element
    if (!lastTag || !isScriptOrStyle(lastTag)) {
      var textEnd = html.indexOf('<');
      if (textEnd === 0) {
        // Comment:
        if (comment.test(html)) {
          var commentEnd = html.indexOf('-->');

          if (commentEnd >= 0) {
            advance(commentEnd + 3);
            continue
          }
        }

        // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
        if (conditionalComment.test(html)) {
          var conditionalEnd = html.indexOf(']>');

          if (conditionalEnd >= 0) {
            advance(conditionalEnd + 2);
            continue
          }
        }

        // Doctype:
        var doctypeMatch = html.match(doctype);
        if (doctypeMatch) {
          advance(doctypeMatch[0].length);
          continue
        }

        // End tag:
        var endTagMatch = html.match(endTag);
        if (endTagMatch) {
          var curIndex = index;
          advance(endTagMatch[0].length);
          parseEndTag(endTagMatch[1], curIndex, index);
          continue
        }

        // Start tag:
        var startTagMatch = parseStartTag();
        if (startTagMatch) {
          handleStartTag(startTagMatch);
          continue
        }
      }

      var text = (void 0), rest$1 = (void 0), next = (void 0);
      if (textEnd >= 0) {
        rest$1 = html.slice(textEnd);
        while (
          !endTag.test(rest$1) &&
          !startTagOpen.test(rest$1) &&
          !comment.test(rest$1) &&
          !conditionalComment.test(rest$1)
        ) {
          // < in plain text, be forgiving and treat it as text
          next = rest$1.indexOf('<', 1);
          if (next < 0) { break }
          textEnd += next;
          rest$1 = html.slice(textEnd);
        }
        text = html.substring(0, textEnd);
        advance(textEnd);
      }

      if (textEnd < 0) {
        text = html;
        html = '';
      }

      if (options.chars && text) {
        options.chars(text);
      }
    } else {
      var stackedTag = lastTag.toLowerCase();
      var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
      var endTagLength = 0;
      var rest = html.replace(reStackedTag, function (all, text, endTag) {
        endTagLength = endTag.length;
        if (stackedTag !== 'script' && stackedTag !== 'style' && stackedTag !== 'noscript') {
          text = text
            .replace(/<!--([\s\S]*?)-->/g, '$1')
            .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
        }
        if (options.chars) {
          options.chars(text);
        }
        return ''
      });
      index += html.length - rest.length;
      html = rest;
      parseEndTag(stackedTag, index - endTagLength, index);
    }

    if (html === last) {
      options.chars && options.chars(html);
      if ("development" !== 'production' && !stack.length && options.warn) {
        options.warn(("Mal-formatted tag at end of template: \"" + html + "\""));
      }
      break
    }
  }

  // Clean up any remaining tags
  parseEndTag();

  function advance (n) {
    index += n;
    html = html.substring(n);
  }

  function parseStartTag () {
    var start = html.match(startTagOpen);
    if (start) {
      var match = {
        tagName: start[1],
        attrs: [],
        start: index
      };
      advance(start[0].length);
      var end, attr;
      while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {
        advance(attr[0].length);
        match.attrs.push(attr);
      }
      if (end) {
        match.unarySlash = end[1];
        advance(end[0].length);
        match.end = index;
        return match
      }
    }
  }

  function handleStartTag (match) {
    var tagName = match.tagName;
    var unarySlash = match.unarySlash;

    if (expectHTML) {
      if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
        parseEndTag(lastTag);
      }
      if (canBeLeftOpenTag(tagName) && lastTag === tagName) {
        parseEndTag(tagName);
      }
    }

    var unary = isUnaryTag$$1(tagName) || tagName === 'html' && lastTag === 'head' || !!unarySlash;

    var l = match.attrs.length;
    var attrs = new Array(l);
    for (var i = 0; i < l; i++) {
      var args = match.attrs[i];
      // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778
      if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('""') === -1) {
        if (args[3] === '') { delete args[3]; }
        if (args[4] === '') { delete args[4]; }
        if (args[5] === '') { delete args[5]; }
      }
      var value = args[3] || args[4] || args[5] || '';
      attrs[i] = {
        name: args[1],
        value: decodeAttr(
          value,
          options.shouldDecodeNewlines
        )
      };
    }

    if (!unary) {
      stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });
      lastTag = tagName;
    }

    if (options.start) {
      options.start(tagName, attrs, unary, match.start, match.end);
    }
  }

  function parseEndTag (tagName, start, end) {
    var pos, lowerCasedTagName;
    if (start == null) { start = index; }
    if (end == null) { end = index; }

    if (tagName) {
      lowerCasedTagName = tagName.toLowerCase();
    }

    // Find the closest opened tag of the same type
    if (tagName) {
      for (pos = stack.length - 1; pos >= 0; pos--) {
        if (stack[pos].lowerCasedTag === lowerCasedTagName) {
          break
        }
      }
    } else {
      // If no tag name is provided, clean shop
      pos = 0;
    }

    if (pos >= 0) {
      // Close all the open elements, up the stack
      for (var i = stack.length - 1; i >= pos; i--) {
        if ("development" !== 'production' &&
            (i > pos || !tagName) &&
            options.warn) {
          options.warn(
            ("tag <" + (stack[i].tag) + "> has no matching end tag.")
          );
        }
        if (options.end) {
          options.end(stack[i].tag, start, end);
        }
      }

      // Remove the open elements from the stack
      stack.length = pos;
      lastTag = pos && stack[pos - 1].tag;
    } else if (lowerCasedTagName === 'br') {
      if (options.start) {
        options.start(tagName, [], true, start, end);
      }
    } else if (lowerCasedTagName === 'p') {
      if (options.start) {
        options.start(tagName, [], false, start, end);
      }
      if (options.end) {
        options.end(tagName, start, end);
      }
    }
  }
}

/*  */

var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g;
var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;

var buildRegex = cached(function (delimiters) {
  var open = delimiters[0].replace(regexEscapeRE, '\\$&');
  var close = delimiters[1].replace(regexEscapeRE, '\\$&');
  return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')
});

function parseText (
  text,
  delimiters
) {
  var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
  if (!tagRE.test(text)) {
    return
  }
  var tokens = [];
  var lastIndex = tagRE.lastIndex = 0;
  var match, index;
  while ((match = tagRE.exec(text))) {
    index = match.index;
    // push text token
    if (index > lastIndex) {
      tokens.push(JSON.stringify(text.slice(lastIndex, index)));
    }
    // tag token
    var exp = parseFilters(match[1].trim());
    tokens.push(("_s(" + exp + ")"));
    lastIndex = index + match[0].length;
  }
  if (lastIndex < text.length) {
    tokens.push(JSON.stringify(text.slice(lastIndex)));
  }
  return tokens.join('+')
}

/*  */

var dirRE = /^v-|^@|^:/;
var forAliasRE = /(.*?)\s+(?:in|of)\s+(.*)/;
var forIteratorRE = /\((\{[^}]*\}|[^,]*),([^,]*)(?:,([^,]*))?\)/;
var bindRE = /^:|^v-bind:/;
var onRE = /^@|^v-on:/;
var argRE = /:(.*)$/;
var modifierRE = /\.[^.]+/g;

var decodeHTMLCached = cached(decode);

// configurable state
var warn$2;
var platformGetTagNamespace;
var platformMustUseProp;
var platformIsPreTag;
var preTransforms;
var transforms;
var postTransforms;
var delimiters;

/**
 * Convert HTML string to AST.
 */
function parse (
  template,
  options
) {
  warn$2 = options.warn || baseWarn;
  platformGetTagNamespace = options.getTagNamespace || no;
  platformMustUseProp = options.mustUseProp || no;
  platformIsPreTag = options.isPreTag || no;
  preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
  transforms = pluckModuleFunction(options.modules, 'transformNode');
  postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
  delimiters = options.delimiters;

  var stack = [];
  var preserveWhitespace = options.preserveWhitespace !== false;
  var root;
  var currentParent;
  var inVPre = false;
  var inPre = false;
  var warned = false;

  function endPre (element) {
    // check pre state
    if (element.pre) {
      inVPre = false;
    }
    if (platformIsPreTag(element.tag)) {
      inPre = false;
    }
  }

  parseHTML(template, {
    warn: warn$2,
    expectHTML: options.expectHTML,
    isUnaryTag: options.isUnaryTag,
    shouldDecodeNewlines: options.shouldDecodeNewlines,
    start: function start (tag, attrs, unary) {
      // check namespace.
      // inherit parent ns if there is one
      var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);

      // handle IE svg bug
      /* istanbul ignore if */
      if (isIE && ns === 'svg') {
        attrs = guardIESVGBug(attrs);
      }

      var element = {
        type: 1,
        tag: tag,
        attrsList: attrs,
        attrsMap: makeAttrsMap(attrs),
        parent: currentParent,
        children: []
      };
      if (ns) {
        element.ns = ns;
      }

      if (isForbiddenTag(element) && !isServerRendering()) {
        element.forbidden = true;
        "development" !== 'production' && warn$2(
          'Templates should only be responsible for mapping the state to the ' +
          'UI. Avoid placing tags with side-effects in your templates, such as ' +
          "<" + tag + ">" + ', as they will not be parsed.'
        );
      }

      // apply pre-transforms
      for (var i = 0; i < preTransforms.length; i++) {
        preTransforms[i](element, options);
      }

      if (!inVPre) {
        processPre(element);
        if (element.pre) {
          inVPre = true;
        }
      }
      if (platformIsPreTag(element.tag)) {
        inPre = true;
      }
      if (inVPre) {
        processRawAttrs(element);
      } else {
        processFor(element);
        processIf(element);
        processOnce(element);
        processKey(element);

        // determine whether this is a plain element after
        // removing structural attributes
        element.plain = !element.key && !attrs.length;

        processRef(element);
        processSlot(element);
        processComponent(element);
        for (var i$1 = 0; i$1 < transforms.length; i$1++) {
          transforms[i$1](element, options);
        }
        processAttrs(element);
      }

      function checkRootConstraints (el) {
        if ("development" !== 'production' && !warned) {
          if (el.tag === 'slot' || el.tag === 'template') {
            warned = true;
            warn$2(
              "Cannot use <" + (el.tag) + "> as component root element because it may " +
              'contain multiple nodes.'
            );
          }
          if (el.attrsMap.hasOwnProperty('v-for')) {
            warned = true;
            warn$2(
              'Cannot use v-for on stateful component root element because ' +
              'it renders multiple elements.'
            );
          }
        }
      }

      // tree management
      if (!root) {
        root = element;
        checkRootConstraints(root);
      } else if (!stack.length) {
        // allow root elements with v-if, v-else-if and v-else
        if (root.if && (element.elseif || element.else)) {
          checkRootConstraints(element);
          addIfCondition(root, {
            exp: element.elseif,
            block: element
          });
        } else if ("development" !== 'production' && !warned) {
          warned = true;
          warn$2(
            "Component template should contain exactly one root element. " +
            "If you are using v-if on multiple elements, " +
            "use v-else-if to chain them instead."
          );
        }
      }
      if (currentParent && !element.forbidden) {
        if (element.elseif || element.else) {
          processIfConditions(element, currentParent);
        } else if (element.slotScope) { // scoped slot
          currentParent.plain = false;
          var name = element.slotTarget || '"default"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;
        } else {
          currentParent.children.push(element);
          element.parent = currentParent;
        }
      }
      if (!unary) {
        currentParent = element;
        stack.push(element);
      } else {
        endPre(element);
      }
      // apply post-transforms
      for (var i$2 = 0; i$2 < postTransforms.length; i$2++) {
        postTransforms[i$2](element, options);
      }
    },

    end: function end () {
      // remove trailing whitespace
      var element = stack[stack.length - 1];
      var lastNode = element.children[element.children.length - 1];
      if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {
        element.children.pop();
      }
      // pop stack
      stack.length -= 1;
      currentParent = stack[stack.length - 1];
      endPre(element);
    },

    chars: function chars (text) {
      if (!currentParent) {
        if ("development" !== 'production' && !warned && text === template) {
          warned = true;
          warn$2(
            'Component template requires a root element, rather than just text.'
          );
        }
        return
      }
      // IE textarea placeholder bug
      /* istanbul ignore if */
      if (isIE &&
          currentParent.tag === 'textarea' &&
          currentParent.attrsMap.placeholder === text) {
        return
      }
      var children = currentParent.children;
      text = inPre || text.trim()
        ? decodeHTMLCached(text)
        // only preserve whitespace if its not right after a starting tag
        : preserveWhitespace && children.length ? ' ' : '';
      if (text) {
        var expression;
        if (!inVPre && text !== ' ' && (expression = parseText(text, delimiters))) {
          children.push({
            type: 2,
            expression: expression,
            text: text
          });
        } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {
          children.push({
            type: 3,
            text: text
          });
        }
      }
    }
  });
  return root
}

function processPre (el) {
  if (getAndRemoveAttr(el, 'v-pre') != null) {
    el.pre = true;
  }
}

function processRawAttrs (el) {
  var l = el.attrsList.length;
  if (l) {
    var attrs = el.attrs = new Array(l);
    for (var i = 0; i < l; i++) {
      attrs[i] = {
        name: el.attrsList[i].name,
        value: JSON.stringify(el.attrsList[i].value)
      };
    }
  } else if (!el.pre) {
    // non root node in pre blocks with no attributes
    el.plain = true;
  }
}

function processKey (el) {
  var exp = getBindingAttr(el, 'key');
  if (exp) {
    if ("development" !== 'production' && el.tag === 'template') {
      warn$2("<template> cannot be keyed. Place the key on real elements instead.");
    }
    el.key = exp;
  }
}

function processRef (el) {
  var ref = getBindingAttr(el, 'ref');
  if (ref) {
    el.ref = ref;
    el.refInFor = checkInFor(el);
  }
}

function processFor (el) {
  var exp;
  if ((exp = getAndRemoveAttr(el, 'v-for'))) {
    var inMatch = exp.match(forAliasRE);
    if (!inMatch) {
      "development" !== 'production' && warn$2(
        ("Invalid v-for expression: " + exp)
      );
      return
    }
    el.for = inMatch[2].trim();
    var alias = inMatch[1].trim();
    var iteratorMatch = alias.match(forIteratorRE);
    if (iteratorMatch) {
      el.alias = iteratorMatch[1].trim();
      el.iterator1 = iteratorMatch[2].trim();
      if (iteratorMatch[3]) {
        el.iterator2 = iteratorMatch[3].trim();
      }
    } else {
      el.alias = alias;
    }
  }
}

function processIf (el) {
  var exp = getAndRemoveAttr(el, 'v-if');
  if (exp) {
    el.if = exp;
    addIfCondition(el, {
      exp: exp,
      block: el
    });
  } else {
    if (getAndRemoveAttr(el, 'v-else') != null) {
      el.else = true;
    }
    var elseif = getAndRemoveAttr(el, 'v-else-if');
    if (elseif) {
      el.elseif = elseif;
    }
  }
}

function processIfConditions (el, parent) {
  var prev = findPrevElement(parent.children);
  if (prev && prev.if) {
    addIfCondition(prev, {
      exp: el.elseif,
      block: el
    });
  } else {
    warn$2(
      "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " +
      "used on element <" + (el.tag) + "> without corresponding v-if."
    );
  }
}

function findPrevElement (children) {
  var i = children.length;
  while (i--) {
    if (children[i].type === 1) {
      return children[i]
    } else {
      if ("development" !== 'production' && children[i].text !== ' ') {
        warn$2(
          "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " +
          "will be ignored."
        );
      }
      children.pop();
    }
  }
}

function addIfCondition (el, condition) {
  if (!el.ifConditions) {
    el.ifConditions = [];
  }
  el.ifConditions.push(condition);
}

function processOnce (el) {
  var once$$1 = getAndRemoveAttr(el, 'v-once');
  if (once$$1 != null) {
    el.once = true;
  }
}

function processSlot (el) {
  if (el.tag === 'slot') {
    el.slotName = getBindingAttr(el, 'name');
    if ("development" !== 'production' && el.key) {
      warn$2(
        "`key` does not work on <slot> because slots are abstract outlets " +
        "and can possibly expand into multiple elements. " +
        "Use the key on a wrapping element instead."
      );
    }
  } else {
    var slotTarget = getBindingAttr(el, 'slot');
    if (slotTarget) {
      el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
    }
    if (el.tag === 'template') {
      el.slotScope = getAndRemoveAttr(el, 'scope');
    }
  }
}

function processComponent (el) {
  var binding;
  if ((binding = getBindingAttr(el, 'is'))) {
    el.component = binding;
  }
  if (getAndRemoveAttr(el, 'inline-template') != null) {
    el.inlineTemplate = true;
  }
}

function processAttrs (el) {
  var list = el.attrsList;
  var i, l, name, rawName, value, arg, modifiers, isProp;
  for (i = 0, l = list.length; i < l; i++) {
    name = rawName = list[i].name;
    value = list[i].value;
    if (dirRE.test(name)) {
      // mark element as dynamic
      el.hasBindings = true;
      // modifiers
      modifiers = parseModifiers(name);
      if (modifiers) {
        name = name.replace(modifierRE, '');
      }
      if (bindRE.test(name)) { // v-bind
        name = name.replace(bindRE, '');
        value = parseFilters(value);
        isProp = false;
        if (modifiers) {
          if (modifiers.prop) {
            isProp = true;
            name = camelize(name);
            if (name === 'innerHtml') { name = 'innerHTML'; }
          }
          if (modifiers.camel) {
            name = camelize(name);
          }
        }
        if (isProp || platformMustUseProp(el.tag, el.attrsMap.type, name)) {
          addProp(el, name, value);
        } else {
          addAttr(el, name, value);
        }
      } else if (onRE.test(name)) { // v-on
        name = name.replace(onRE, '');
        addHandler(el, name, value, modifiers);
      } else { // normal directives
        name = name.replace(dirRE, '');
        // parse arg
        var argMatch = name.match(argRE);
        if (argMatch && (arg = argMatch[1])) {
          name = name.slice(0, -(arg.length + 1));
        }
        addDirective(el, name, rawName, value, arg, modifiers);
        if ("development" !== 'production' && name === 'model') {
          checkForAliasModel(el, value);
        }
      }
    } else {
      // literal attribute
      {
        var expression = parseText(value, delimiters);
        if (expression) {
          warn$2(
            name + "=\"" + value + "\": " +
            'Interpolation inside attributes has been removed. ' +
            'Use v-bind or the colon shorthand instead. For example, ' +
            'instead of <div id="{{ val }}">, use <div :id="val">.'
          );
        }
      }
      addAttr(el, name, JSON.stringify(value));
    }
  }
}

function checkInFor (el) {
  var parent = el;
  while (parent) {
    if (parent.for !== undefined) {
      return true
    }
    parent = parent.parent;
  }
  return false
}

function parseModifiers (name) {
  var match = name.match(modifierRE);
  if (match) {
    var ret = {};
    match.forEach(function (m) { ret[m.slice(1)] = true; });
    return ret
  }
}

function makeAttrsMap (attrs) {
  var map = {};
  for (var i = 0, l = attrs.length; i < l; i++) {
    if ("development" !== 'production' && map[attrs[i].name] && !isIE) {
      warn$2('duplicate attribute: ' + attrs[i].name);
    }
    map[attrs[i].name] = attrs[i].value;
  }
  return map
}

function isForbiddenTag (el) {
  return (
    el.tag === 'style' ||
    (el.tag === 'script' && (
      !el.attrsMap.type ||
      el.attrsMap.type === 'text/javascript'
    ))
  )
}

var ieNSBug = /^xmlns:NS\d+/;
var ieNSPrefix = /^NS\d+:/;

/* istanbul ignore next */
function guardIESVGBug (attrs) {
  var res = [];
  for (var i = 0; i < attrs.length; i++) {
    var attr = attrs[i];
    if (!ieNSBug.test(attr.name)) {
      attr.name = attr.name.replace(ieNSPrefix, '');
      res.push(attr);
    }
  }
  return res
}

function checkForAliasModel (el, value) {
  var _el = el;
  while (_el) {
    if (_el.for && _el.alias === value) {
      warn$2(
        "<" + (el.tag) + " v-model=\"" + value + "\">: " +
        "You are binding v-model directly to a v-for iteration alias. " +
        "This will not be able to modify the v-for source array because " +
        "writing to the alias is like modifying a function local variable. " +
        "Consider using an array of objects and use v-model on an object property instead."
      );
    }
    _el = _el.parent;
  }
}

/*  */

var isStaticKey;
var isPlatformReservedTag;

var genStaticKeysCached = cached(genStaticKeys$1);

/**
 * Goal of the optimizer: walk the generated template AST tree
 * and detect sub-trees that are purely static, i.e. parts of
 * the DOM that never needs to change.
 *
 * Once we detect these sub-trees, we can:
 *
 * 1. Hoist them into constants, so that we no longer need to
 *    create fresh nodes for them on each re-render;
 * 2. Completely skip them in the patching process.
 */
function optimize (root, options) {
  if (!root) { return }
  isStaticKey = genStaticKeysCached(options.staticKeys || '');
  isPlatformReservedTag = options.isReservedTag || no;
  // first pass: mark all non-static nodes.
  markStatic$1(root);
  // second pass: mark static roots.
  markStaticRoots(root, false);
}

function genStaticKeys$1 (keys) {
  return makeMap(
    'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +
    (keys ? ',' + keys : '')
  )
}

function markStatic$1 (node) {
  node.static = isStatic(node);
  if (node.type === 1) {
    // do not make component slot content static. this avoids
    // 1. components not able to mutate slot nodes
    // 2. static slot content fails for hot-reloading
    if (
      !isPlatformReservedTag(node.tag) &&
      node.tag !== 'slot' &&
      node.attrsMap['inline-template'] == null
    ) {
      return
    }
    for (var i = 0, l = node.children.length; i < l; i++) {
      var child = node.children[i];
      markStatic$1(child);
      if (!child.static) {
        node.static = false;
      }
    }
  }
}

function markStaticRoots (node, isInFor) {
  if (node.type === 1) {
    if (node.static || node.once) {
      node.staticInFor = isInFor;
    }
    // For a node to qualify as a static root, it should have children that
    // are not just static text. Otherwise the cost of hoisting out will
    // outweigh the benefits and it's better off to just always render it fresh.
    if (node.static && node.children.length && !(
      node.children.length === 1 &&
      node.children[0].type === 3
    )) {
      node.staticRoot = true;
      return
    } else {
      node.staticRoot = false;
    }
    if (node.children) {
      for (var i = 0, l = node.children.length; i < l; i++) {
        markStaticRoots(node.children[i], isInFor || !!node.for);
      }
    }
    if (node.ifConditions) {
      walkThroughConditionsBlocks(node.ifConditions, isInFor);
    }
  }
}

function walkThroughConditionsBlocks (conditionBlocks, isInFor) {
  for (var i = 1, len = conditionBlocks.length; i < len; i++) {
    markStaticRoots(conditionBlocks[i].block, isInFor);
  }
}

function isStatic (node) {
  if (node.type === 2) { // expression
    return false
  }
  if (node.type === 3) { // text
    return true
  }
  return !!(node.pre || (
    !node.hasBindings && // no dynamic bindings
    !node.if && !node.for && // not v-if or v-for or v-else
    !isBuiltInTag(node.tag) && // not a built-in
    isPlatformReservedTag(node.tag) && // not a component
    !isDirectChildOfTemplateFor(node) &&
    Object.keys(node).every(isStaticKey)
  ))
}

function isDirectChildOfTemplateFor (node) {
  while (node.parent) {
    node = node.parent;
    if (node.tag !== 'template') {
      return false
    }
    if (node.for) {
      return true
    }
  }
  return false
}

/*  */

var fnExpRE = /^\s*([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/;
var simplePathRE = /^\s*[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?']|\[".*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*\s*$/;

// keyCode aliases
var keyCodes = {
  esc: 27,
  tab: 9,
  enter: 13,
  space: 32,
  up: 38,
  left: 37,
  right: 39,
  down: 40,
  'delete': [8, 46]
};

// #4868: modifiers that prevent the execution of the listener
// need to explicitly return null so that we can determine whether to remove
// the listener for .once
var genGuard = function (condition) { return ("if(" + condition + ")return null;"); };

var modifierCode = {
  stop: '$event.stopPropagation();',
  prevent: '$event.preventDefault();',
  self: genGuard("$event.target !== $event.currentTarget"),
  ctrl: genGuard("!$event.ctrlKey"),
  shift: genGuard("!$event.shiftKey"),
  alt: genGuard("!$event.altKey"),
  meta: genGuard("!$event.metaKey"),
  left: genGuard("$event.button !== 0"),
  middle: genGuard("$event.button !== 1"),
  right: genGuard("$event.button !== 2")
};

function genHandlers (events, native) {
  var res = native ? 'nativeOn:{' : 'on:{';
  for (var name in events) {
    res += "\"" + name + "\":" + (genHandler(name, events[name])) + ",";
  }
  return res.slice(0, -1) + '}'
}

function genHandler (
  name,
  handler
) {
  if (!handler) {
    return 'function(){}'
  } else if (Array.isArray(handler)) {
    return ("[" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + "]")
  } else if (!handler.modifiers) {
    return fnExpRE.test(handler.value) || simplePathRE.test(handler.value)
      ? handler.value
      : ("function($event){" + (handler.value) + "}")
  } else {
    var code = '';
    var keys = [];
    for (var key in handler.modifiers) {
      if (modifierCode[key]) {
        code += modifierCode[key];
      } else {
        keys.push(key);
      }
    }
    if (keys.length) {
      code = genKeyFilter(keys) + code;
    }
    var handlerCode = simplePathRE.test(handler.value)
      ? handler.value + '($event)'
      : handler.value;
    return ("function($event){" + code + handlerCode + "}")
  }
}

function genKeyFilter (keys) {
  return ("if(" + (keys.map(genFilterCode).join('&&')) + ")return null;")
}

function genFilterCode (key) {
  var keyVal = parseInt(key, 10);
  if (keyVal) {
    return ("$event.keyCode!==" + keyVal)
  }
  var alias = keyCodes[key];
  return ("_k($event.keyCode," + (JSON.stringify(key)) + (alias ? ',' + JSON.stringify(alias) : '') + ")")
}

/*  */

function bind$1 (el, dir) {
  el.wrapData = function (code) {
    return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + (dir.modifiers && dir.modifiers.prop ? ',true' : '') + ")")
  };
}

/*  */

var baseDirectives = {
  bind: bind$1,
  cloak: noop
};

/*  */

// configurable state
var warn$3;
var transforms$1;
var dataGenFns;
var platformDirectives$1;
var isPlatformReservedTag$1;
var staticRenderFns;
var onceCount;
var currentOptions;

function generate (
  ast,
  options
) {
  // save previous staticRenderFns so generate calls can be nested
  var prevStaticRenderFns = staticRenderFns;
  var currentStaticRenderFns = staticRenderFns = [];
  var prevOnceCount = onceCount;
  onceCount = 0;
  currentOptions = options;
  warn$3 = options.warn || baseWarn;
  transforms$1 = pluckModuleFunction(options.modules, 'transformCode');
  dataGenFns = pluckModuleFunction(options.modules, 'genData');
  platformDirectives$1 = options.directives || {};
  isPlatformReservedTag$1 = options.isReservedTag || no;
  var code = ast ? genElement(ast) : '_c("div")';
  staticRenderFns = prevStaticRenderFns;
  onceCount = prevOnceCount;
  return {
    render: ("with(this){return " + code + "}"),
    staticRenderFns: currentStaticRenderFns
  }
}

function genElement (el) {
  if (el.staticRoot && !el.staticProcessed) {
    return genStatic(el)
  } else if (el.once && !el.onceProcessed) {
    return genOnce(el)
  } else if (el.for && !el.forProcessed) {
    return genFor(el)
  } else if (el.if && !el.ifProcessed) {
    return genIf(el)
  } else if (el.tag === 'template' && !el.slotTarget) {
    return genChildren(el) || 'void 0'
  } else if (el.tag === 'slot') {
    return genSlot(el)
  } else {
    // component or element
    var code;
    if (el.component) {
      code = genComponent(el.component, el);
    } else {
      var data = el.plain ? undefined : genData(el);

      var children = el.inlineTemplate ? null : genChildren(el, true);
      code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";
    }
    // module transforms
    for (var i = 0; i < transforms$1.length; i++) {
      code = transforms$1[i](el, code);
    }
    return code
  }
}

// hoist static sub-trees out
function genStatic (el) {
  el.staticProcessed = true;
  staticRenderFns.push(("with(this){return " + (genElement(el)) + "}"));
  return ("_m(" + (staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")
}

// v-once
function genOnce (el) {
  el.onceProcessed = true;
  if (el.if && !el.ifProcessed) {
    return genIf(el)
  } else if (el.staticInFor) {
    var key = '';
    var parent = el.parent;
    while (parent) {
      if (parent.for) {
        key = parent.key;
        break
      }
      parent = parent.parent;
    }
    if (!key) {
      "development" !== 'production' && warn$3(
        "v-once can only be used inside v-for that is keyed. "
      );
      return genElement(el)
    }
    return ("_o(" + (genElement(el)) + "," + (onceCount++) + (key ? ("," + key) : "") + ")")
  } else {
    return genStatic(el)
  }
}

function genIf (el) {
  el.ifProcessed = true; // avoid recursion
  return genIfConditions(el.ifConditions.slice())
}

function genIfConditions (conditions) {
  if (!conditions.length) {
    return '_e()'
  }

  var condition = conditions.shift();
  if (condition.exp) {
    return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions)))
  } else {
    return ("" + (genTernaryExp(condition.block)))
  }

  // v-if with v-once should generate code like (a)?_m(0):_m(1)
  function genTernaryExp (el) {
    return el.once ? genOnce(el) : genElement(el)
  }
}

function genFor (el) {
  var exp = el.for;
  var alias = el.alias;
  var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
  var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';

  if (
    "development" !== 'production' &&
    maybeComponent(el) && el.tag !== 'slot' && el.tag !== 'template' && !el.key
  ) {
    warn$3(
      "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " +
      "v-for should have explicit keys. " +
      "See https://vuejs.org/guide/list.html#key for more info.",
      true /* tip */
    );
  }

  el.forProcessed = true; // avoid recursion
  return "_l((" + exp + ")," +
    "function(" + alias + iterator1 + iterator2 + "){" +
      "return " + (genElement(el)) +
    '})'
}

function genData (el) {
  var data = '{';

  // directives first.
  // directives may mutate the el's other properties before they are generated.
  var dirs = genDirectives(el);
  if (dirs) { data += dirs + ','; }

  // key
  if (el.key) {
    data += "key:" + (el.key) + ",";
  }
  // ref
  if (el.ref) {
    data += "ref:" + (el.ref) + ",";
  }
  if (el.refInFor) {
    data += "refInFor:true,";
  }
  // pre
  if (el.pre) {
    data += "pre:true,";
  }
  // record original tag name for components using "is" attribute
  if (el.component) {
    data += "tag:\"" + (el.tag) + "\",";
  }
  // module data generation functions
  for (var i = 0; i < dataGenFns.length; i++) {
    data += dataGenFns[i](el);
  }
  // attributes
  if (el.attrs) {
    data += "attrs:{" + (genProps(el.attrs)) + "},";
  }
  // DOM props
  if (el.props) {
    data += "domProps:{" + (genProps(el.props)) + "},";
  }
  // event handlers
  if (el.events) {
    data += (genHandlers(el.events)) + ",";
  }
  if (el.nativeEvents) {
    data += (genHandlers(el.nativeEvents, true)) + ",";
  }
  // slot target
  if (el.slotTarget) {
    data += "slot:" + (el.slotTarget) + ",";
  }
  // scoped slots
  if (el.scopedSlots) {
    data += (genScopedSlots(el.scopedSlots)) + ",";
  }
  // component v-model
  if (el.model) {
    data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + "},";
  }
  // inline-template
  if (el.inlineTemplate) {
    var inlineTemplate = genInlineTemplate(el);
    if (inlineTemplate) {
      data += inlineTemplate + ",";
    }
  }
  data = data.replace(/,$/, '') + '}';
  // v-bind data wrap
  if (el.wrapData) {
    data = el.wrapData(data);
  }
  return data
}

function genDirectives (el) {
  var dirs = el.directives;
  if (!dirs) { return }
  var res = 'directives:[';
  var hasRuntime = false;
  var i, l, dir, needRuntime;
  for (i = 0, l = dirs.length; i < l; i++) {
    dir = dirs[i];
    needRuntime = true;
    var gen = platformDirectives$1[dir.name] || baseDirectives[dir.name];
    if (gen) {
      // compile-time directive that manipulates AST.
      // returns true if it also needs a runtime counterpart.
      needRuntime = !!gen(el, dir, warn$3);
    }
    if (needRuntime) {
      hasRuntime = true;
      res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:\"" + (dir.arg) + "\"") : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},";
    }
  }
  if (hasRuntime) {
    return res.slice(0, -1) + ']'
  }
}

function genInlineTemplate (el) {
  var ast = el.children[0];
  if ("development" !== 'production' && (
    el.children.length > 1 || ast.type !== 1
  )) {
    warn$3('Inline-template components must have exactly one child element.');
  }
  if (ast.type === 1) {
    var inlineRenderFns = generate(ast, currentOptions);
    return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")
  }
}

function genScopedSlots (slots) {
  return ("scopedSlots:_u([" + (Object.keys(slots).map(function (key) { return genScopedSlot(key, slots[key]); }).join(',')) + "])")
}

function genScopedSlot (key, el) {
  return "[" + key + ",function(" + (String(el.attrsMap.scope)) + "){" +
    "return " + (el.tag === 'template'
      ? genChildren(el) || 'void 0'
      : genElement(el)) + "}]"
}

function genChildren (el, checkSkip) {
  var children = el.children;
  if (children.length) {
    var el$1 = children[0];
    // optimize single v-for
    if (children.length === 1 &&
        el$1.for &&
        el$1.tag !== 'template' &&
        el$1.tag !== 'slot') {
      return genElement(el$1)
    }
    var normalizationType = getNormalizationType(children);
    return ("[" + (children.map(genNode).join(',')) + "]" + (checkSkip
        ? normalizationType ? ("," + normalizationType) : ''
        : ''))
  }
}

// determine the normalization needed for the children array.
// 0: no normalization needed
// 1: simple normalization needed (possible 1-level deep nested array)
// 2: full normalization needed
function getNormalizationType (children) {
  var res = 0;
  for (var i = 0; i < children.length; i++) {
    var el = children[i];
    if (el.type !== 1) {
      continue
    }
    if (needsNormalization(el) ||
        (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
      res = 2;
      break
    }
    if (maybeComponent(el) ||
        (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
      res = 1;
    }
  }
  return res
}

function needsNormalization (el) {
  return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'
}

function maybeComponent (el) {
  return !isPlatformReservedTag$1(el.tag)
}

function genNode (node) {
  if (node.type === 1) {
    return genElement(node)
  } else {
    return genText(node)
  }
}

function genText (text) {
  return ("_v(" + (text.type === 2
    ? text.expression // no need for () because already wrapped in _s()
    : transformSpecialNewlines(JSON.stringify(text.text))) + ")")
}

function genSlot (el) {
  var slotName = el.slotName || '"default"';
  var children = genChildren(el);
  var res = "_t(" + slotName + (children ? ("," + children) : '');
  var attrs = el.attrs && ("{" + (el.attrs.map(function (a) { return ((camelize(a.name)) + ":" + (a.value)); }).join(',')) + "}");
  var bind$$1 = el.attrsMap['v-bind'];
  if ((attrs || bind$$1) && !children) {
    res += ",null";
  }
  if (attrs) {
    res += "," + attrs;
  }
  if (bind$$1) {
    res += (attrs ? '' : ',null') + "," + bind$$1;
  }
  return res + ')'
}

// componentName is el.component, take it as argument to shun flow's pessimistic refinement
function genComponent (componentName, el) {
  var children = el.inlineTemplate ? null : genChildren(el, true);
  return ("_c(" + componentName + "," + (genData(el)) + (children ? ("," + children) : '') + ")")
}

function genProps (props) {
  var res = '';
  for (var i = 0; i < props.length; i++) {
    var prop = props[i];
    res += "\"" + (prop.name) + "\":" + (transformSpecialNewlines(prop.value)) + ",";
  }
  return res.slice(0, -1)
}

// #3895, #4268
function transformSpecialNewlines (text) {
  return text
    .replace(/\u2028/g, '\\u2028')
    .replace(/\u2029/g, '\\u2029')
}

/*  */

// operators like typeof, instanceof and in are allowed
var prohibitedKeywordRE = new RegExp('\\b' + (
  'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +
  'super,throw,while,yield,delete,export,import,return,switch,default,' +
  'extends,finally,continue,debugger,function,arguments'
).split(',').join('\\b|\\b') + '\\b');
// check valid identifier for v-for
var identRE = /[A-Za-z_$][\w$]*/;
// strip strings in expressions
var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;

// detect problematic expressions in a template
function detectErrors (ast) {
  var errors = [];
  if (ast) {
    checkNode(ast, errors);
  }
  return errors
}

function checkNode (node, errors) {
  if (node.type === 1) {
    for (var name in node.attrsMap) {
      if (dirRE.test(name)) {
        var value = node.attrsMap[name];
        if (value) {
          if (name === 'v-for') {
            checkFor(node, ("v-for=\"" + value + "\""), errors);
          } else {
            checkExpression(value, (name + "=\"" + value + "\""), errors);
          }
        }
      }
    }
    if (node.children) {
      for (var i = 0; i < node.children.length; i++) {
        checkNode(node.children[i], errors);
      }
    }
  } else if (node.type === 2) {
    checkExpression(node.expression, node.text, errors);
  }
}

function checkFor (node, text, errors) {
  checkExpression(node.for || '', text, errors);
  checkIdentifier(node.alias, 'v-for alias', text, errors);
  checkIdentifier(node.iterator1, 'v-for iterator', text, errors);
  checkIdentifier(node.iterator2, 'v-for iterator', text, errors);
}

function checkIdentifier (ident, type, text, errors) {
  if (typeof ident === 'string' && !identRE.test(ident)) {
    errors.push(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())));
  }
}

function checkExpression (exp, text, errors) {
  try {
    new Function(("return " + exp));
  } catch (e) {
    var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);
    if (keywordMatch) {
      errors.push(
        "avoid using JavaScript keyword as property name: " +
        "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim())
      );
    } else {
      errors.push(("invalid expression: " + (text.trim())));
    }
  }
}

/*  */

function baseCompile (
  template,
  options
) {
  var ast = parse(template.trim(), options);
  optimize(ast, options);
  var code = generate(ast, options);
  return {
    ast: ast,
    render: code.render,
    staticRenderFns: code.staticRenderFns
  }
}

function makeFunction (code, errors) {
  try {
    return new Function(code)
  } catch (err) {
    errors.push({ err: err, code: code });
    return noop
  }
}

function createCompiler (baseOptions) {
  var functionCompileCache = Object.create(null);

  function compile (
    template,
    options
  ) {
    var finalOptions = Object.create(baseOptions);
    var errors = [];
    var tips = [];
    finalOptions.warn = function (msg, tip$$1) {
      (tip$$1 ? tips : errors).push(msg);
    };

    if (options) {
      // merge custom modules
      if (options.modules) {
        finalOptions.modules = (baseOptions.modules || []).concat(options.modules);
      }
      // merge custom directives
      if (options.directives) {
        finalOptions.directives = extend(
          Object.create(baseOptions.directives),
          options.directives
        );
      }
      // copy other options
      for (var key in options) {
        if (key !== 'modules' && key !== 'directives') {
          finalOptions[key] = options[key];
        }
      }
    }

    var compiled = baseCompile(template, finalOptions);
    {
      errors.push.apply(errors, detectErrors(compiled.ast));
    }
    compiled.errors = errors;
    compiled.tips = tips;
    return compiled
  }

  function compileToFunctions (
    template,
    options,
    vm
  ) {
    options = options || {};

    /* istanbul ignore if */
    {
      // detect possible CSP restriction
      try {
        new Function('return 1');
      } catch (e) {
        if (e.toString().match(/unsafe-eval|CSP/)) {
          warn(
            'It seems you are using the standalone build of Vue.js in an ' +
            'environment with Content Security Policy that prohibits unsafe-eval. ' +
            'The template compiler cannot work in this environment. Consider ' +
            'relaxing the policy to allow unsafe-eval or pre-compiling your ' +
            'templates into render functions.'
          );
        }
      }
    }

    // check cache
    var key = options.delimiters
      ? String(options.delimiters) + template
      : template;
    if (functionCompileCache[key]) {
      return functionCompileCache[key]
    }

    // compile
    var compiled = compile(template, options);

    // check compilation errors/tips
    {
      if (compiled.errors && compiled.errors.length) {
        warn(
          "Error compiling template:\n\n" + template + "\n\n" +
          compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n',
          vm
        );
      }
      if (compiled.tips && compiled.tips.length) {
        compiled.tips.forEach(function (msg) { return tip(msg, vm); });
      }
    }

    // turn code into functions
    var res = {};
    var fnGenErrors = [];
    res.render = makeFunction(compiled.render, fnGenErrors);
    var l = compiled.staticRenderFns.length;
    res.staticRenderFns = new Array(l);
    for (var i = 0; i < l; i++) {
      res.staticRenderFns[i] = makeFunction(compiled.staticRenderFns[i], fnGenErrors);
    }

    // check function generation errors.
    // this should only happen if there is a bug in the compiler itself.
    // mostly for codegen development use
    /* istanbul ignore if */
    {
      if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
        warn(
          "Failed to generate render function:\n\n" +
          fnGenErrors.map(function (ref) {
            var err = ref.err;
            var code = ref.code;

            return ((err.toString()) + " in\n\n" + code + "\n");
        }).join('\n'),
          vm
        );
      }
    }

    return (functionCompileCache[key] = res)
  }

  return {
    compile: compile,
    compileToFunctions: compileToFunctions
  }
}

/*  */

function transformNode (el, options) {
  var warn = options.warn || baseWarn;
  var staticClass = getAndRemoveAttr(el, 'class');
  if ("development" !== 'production' && staticClass) {
    var expression = parseText(staticClass, options.delimiters);
    if (expression) {
      warn(
        "class=\"" + staticClass + "\": " +
        'Interpolation inside attributes has been removed. ' +
        'Use v-bind or the colon shorthand instead. For example, ' +
        'instead of <div class="{{ val }}">, use <div :class="val">.'
      );
    }
  }
  if (staticClass) {
    el.staticClass = JSON.stringify(staticClass);
  }
  var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
  if (classBinding) {
    el.classBinding = classBinding;
  }
}

function genData$1 (el) {
  var data = '';
  if (el.staticClass) {
    data += "staticClass:" + (el.staticClass) + ",";
  }
  if (el.classBinding) {
    data += "class:" + (el.classBinding) + ",";
  }
  return data
}

var klass$1 = {
  staticKeys: ['staticClass'],
  transformNode: transformNode,
  genData: genData$1
};

/*  */

function transformNode$1 (el, options) {
  var warn = options.warn || baseWarn;
  var staticStyle = getAndRemoveAttr(el, 'style');
  if (staticStyle) {
    /* istanbul ignore if */
    {
      var expression = parseText(staticStyle, options.delimiters);
      if (expression) {
        warn(
          "style=\"" + staticStyle + "\": " +
          'Interpolation inside attributes has been removed. ' +
          'Use v-bind or the colon shorthand instead. For example, ' +
          'instead of <div style="{{ val }}">, use <div :style="val">.'
        );
      }
    }
    el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
  }

  var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
  if (styleBinding) {
    el.styleBinding = styleBinding;
  }
}

function genData$2 (el) {
  var data = '';
  if (el.staticStyle) {
    data += "staticStyle:" + (el.staticStyle) + ",";
  }
  if (el.styleBinding) {
    data += "style:(" + (el.styleBinding) + "),";
  }
  return data
}

var style$1 = {
  staticKeys: ['staticStyle'],
  transformNode: transformNode$1,
  genData: genData$2
};

var modules$1 = [
  klass$1,
  style$1
];

/*  */

function text (el, dir) {
  if (dir.value) {
    addProp(el, 'textContent', ("_s(" + (dir.value) + ")"));
  }
}

/*  */

function html (el, dir) {
  if (dir.value) {
    addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"));
  }
}

var directives$1 = {
  model: model,
  text: text,
  html: html
};

/*  */

var baseOptions = {
  expectHTML: true,
  modules: modules$1,
  directives: directives$1,
  isPreTag: isPreTag,
  isUnaryTag: isUnaryTag,
  mustUseProp: mustUseProp,
  isReservedTag: isReservedTag,
  getTagNamespace: getTagNamespace,
  staticKeys: genStaticKeys(modules$1)
};

var ref$1 = createCompiler(baseOptions);
var compileToFunctions = ref$1.compileToFunctions;

/*  */

var idToTemplate = cached(function (id) {
  var el = query(id);
  return el && el.innerHTML
});

var mount = Vue$3.prototype.$mount;
Vue$3.prototype.$mount = function (
  el,
  hydrating
) {
  el = el && query(el);

  /* istanbul ignore if */
  if (el === document.body || el === document.documentElement) {
    "development" !== 'production' && warn(
      "Do not mount Vue to <html> or <body> - mount to normal elements instead."
    );
    return this
  }

  var options = this.$options;
  // resolve template/el and convert to render function
  if (!options.render) {
    var template = options.template;
    if (template) {
      if (typeof template === 'string') {
        if (template.charAt(0) === '#') {
          template = idToTemplate(template);
          /* istanbul ignore if */
          if ("development" !== 'production' && !template) {
            warn(
              ("Template element not found or is empty: " + (options.template)),
              this
            );
          }
        }
      } else if (template.nodeType) {
        template = template.innerHTML;
      } else {
        {
          warn('invalid template option:' + template, this);
        }
        return this
      }
    } else if (el) {
      template = getOuterHTML(el);
    }
    if (template) {
      /* istanbul ignore if */
      if ("development" !== 'production' && config.performance && perf) {
        perf.mark('compile');
      }

      var ref = compileToFunctions(template, {
        shouldDecodeNewlines: shouldDecodeNewlines,
        delimiters: options.delimiters
      }, this);
      var render = ref.render;
      var staticRenderFns = ref.staticRenderFns;
      options.render = render;
      options.staticRenderFns = staticRenderFns;

      /* istanbul ignore if */
      if ("development" !== 'production' && config.performance && perf) {
        perf.mark('compile end');
        perf.measure(((this._name) + " compile"), 'compile', 'compile end');
      }
    }
  }
  return mount.call(this, el, hydrating)
};

/**
 * Get outerHTML of elements, taking care
 * of SVG elements in IE as well.
 */
function getOuterHTML (el) {
  if (el.outerHTML) {
    return el.outerHTML
  } else {
    var container = document.createElement('div');
    container.appendChild(el.cloneNode(true));
    return container.innerHTML
  }
}

Vue$3.compile = compileToFunctions;

return Vue$3;

})));

Added cmd/pisc/main.go.













































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
package main

import (
	"fmt"
	"io"
	"io/ioutil"
	"os"
	"strings"

	"log"

	"runtime/pprof"

	"pisc"
	// "pisc/libs/boltdb"
	// piscHTTP "pisc/libs/http"
	"pisc/libs/shell"

	"gopkg.in/readline.v1"
	cli "gopkg.in/urfave/cli.v1"
)

// This function starts an interpreter
func main() {
	app := cli.NewApp()
	app.Author = "Andrew Owen, @yumaikas"
	app.Name = "PISC, aka Position Independent Source Code"
	app.Usage = "A small stack based scripting langauge built for fun"
	app.Action = handleFlags
	app.Flags = []cli.Flag{
		cli.BoolFlag{
			Name:  "interactive, i",
			Usage: "Run the interactive version of PISC",
		},
		cli.StringFlag{
			Name:  "command, c",
			Usage: "Expressions to run from the command line, before -i, if it exists",
		},
		/*
			cli.BoolFlag{
				Name:  "boltdb, d",
				Usage: "Tells PISC to enable boltdb integration",
			},
		*/
		cli.StringFlag{
			Name:  "file, f",
			Usage: "Execute a file as a bit of pisc, runs before -i or -c",
		},
		cli.BoolFlag{
			Name:  "skip, x",
			Usage: "Skip the first line of a file, for shebangs or ",
		},
		cli.IntFlag{
			Name:  "skip-multiple, xn",
			Usage: "Skip the first n lines of a scripe",
		},
		cli.StringFlag{
			Name:  "skip-to-mark, xm",
			Usage: "Skip until the given mark is on a line by itself",
		},
		cli.BoolFlag{
			Name:  "chatbot",
			Usage: "Load the chatbot modules before -c and -i",
		},
		cli.BoolFlag{
			Name:   "benchmark",
			Hidden: true,
			Usage:  "Run various benchmarks, using pprof, and print out pertinent information",
		},
	}
	app.Run(os.Args)
}

func initMachine() *pisc.Machine {
	m := &pisc.Machine{
		Values:               make([]pisc.StackEntry, 0),
		DefinedWords:         make(map[string]*pisc.CodeQuotation),
		DefinedStackComments: make(map[string]string),
		PredefinedWords:      make(map[string]pisc.GoWord),
		PrefixWords:          make(map[string]*pisc.CodeQuotation),
		HelpDocs:             make(map[string]string),
	}
	return m
}

func benchmark(m *pisc.Machine) {
	err := LoadForCLI(m)
	if err != nil {
		log.Fatalf("Unable to start benchmark due to error %v", err.Error())
		return
	}
	err = m.ExecuteString(`"factorial.pisc" import`, pisc.CodePosition{Source: "pre-benchmark import"})
	if err != nil {
		log.Fatalf("Unable to start benchmark due to error %v", err.Error())
		return
	}
	f, err := os.Create("bench-cpu-recursion.prof")
	if err != nil {
		log.Fatal("Unable to create profiling file")
		return
	}
	pos := pisc.CodePosition{Source: "Benchmark recursive"}
	if err := pprof.StartCPUProfile(f); err != nil {
		log.Fatal("Unable to start CPU profile")
	}
	err = m.ExecuteString("100000 [ 12 factorial drop ] times", pos)
	if err != nil {
		log.Fatal("Recursive benchmark failed:", err)
	}
	pprof.StopCPUProfile()
	f, err = os.Create("bench-cpu-iteration.prof")
	if err != nil {
		log.Fatal("Unable to create profiling file")
		return
	}
	pos = pisc.CodePosition{Source: "Benchmark loop"}
	if err := pprof.StartCPUProfile(f); err != nil {
		log.Fatal("Unable to start CPU profile")
		return
	}
	err = m.ExecuteString("100000 [ 12 factorial-loop drop ] times", pos)
	if err != nil {
		log.Fatal("Recursive benchmark failed:", err)
		pprof.StopCPUProfile()
		return
	}
	pprof.StopCPUProfile()
	return
}

func LoadForCLI(m *pisc.Machine) error {
	return m.LoadModules(append(pisc.StandardModules,
		pisc.ModIOCore, pisc.ModDebugCore, shell.ModShellUtils,
	// piscHTTP.ModHTTPRequests
	)...)
}

/*
func LoadForDB(m *pisc.Machine) error {
	return m.LoadModules(append(pisc.StandardModules,
			boltdb.ModBoltDB, pisc.ModIOCore, shell.ModShellUtils)...)
}
*/

func LoadForChatbot(m *pisc.Machine) error {
	return m.LoadModules(append(pisc.StandardModules,
		// boltdb.ModBoltDB,
		pisc.ModIRCKit)...)
}

func handleFlags(ctx *cli.Context) {
	m := initMachine()
	// Execute this before benchmarking since we aren't yet benchmarking file loads
	if ctx.IsSet("benchmark") {
		benchmark(m)
	}
	// Load PISC with libraries, according to the context
	if ctx.IsSet("file") || ctx.IsSet("command") || ctx.IsSet("interactive") {
		if ctx.IsSet("chatbot") {
			err := LoadForChatbot(m)
			if err != nil {
				fmt.Fprintln(os.Stderr, err.Error())
				log.Fatal("Error while loading modules")
			}
		}
		/*
			if ctx.IsSet("boltdb") {
				err := LoadForDB(m)
				if err != nil {
					fmt.Fprintln(os.Stderr, err.Error())
					log.Fatal("Error while loading modules")
				}
			} else {
		*/
		err := LoadForCLI(m)
		if err != nil {
			fmt.Fprintln(os.Stderr, err.Error())
			log.Fatal("Error while loading modules")
		}
		// }
		m.LogAndResetDispatchCount(os.Stderr)
	}
	if ctx.IsSet("file") {
		path := ctx.String("file")
		data, err := ioutil.ReadFile(path)
		filedata := string(data)
		if err != nil {
			log.Println(err)
			return
		}

		if ctx.IsSet("skip") {
			sectors := strings.SplitN(filedata, "\n", 2)
			if len(sectors) < 2 {
				log.Println("-x was supplied, but only one line was in the file in question. ")
				return
			}
			// The filedata is the last sector
			filedata = sectors[len(sectors)-1]
		} else if ctx.IsSet("skip-multiple") {
			numSkipLines := ctx.Int("skip-multiple")
			sectors := strings.SplitN(filedata, "\n", numSkipLines+1)
			if len(sectors) != (numSkipLines + 1) {
				log.Println("-xn was supplied, but skips all the lines in the file")
				return
			}
			// The filedata is the last sector
			filedata = sectors[len(sectors)-1]
		} else if ctx.IsSet("skip-to-mark") {
			mark := ctx.String("skip-to-mark")
			sectors := strings.SplitN(filedata, mark+"\n", 2)
			if len(sectors) < 2 {
				log.Println("-xm was supplied, but the given mark was not found in the file")
				return
			}
			filedata = sectors[len(sectors)-1]
		}
		err = m.ExecuteString(filedata, pisc.CodePosition{
			Source: "file:" + string(path),
		})
		if err != nil {
			log.Println(err)
			log.Fatal("Error running file")
		}
		m.LogAndResetDispatchCount(os.Stderr)
	}
	if ctx.IsSet("command") {
		line := ctx.String("command")
		err := m.ExecuteString(line, pisc.CodePosition{Source: "args"})
		if err != nil {
			log.Fatal("Error in command: ", err)
		}
		m.LogAndResetDispatchCount(os.Stderr)
	}
	if ctx.IsSet("interactive") {
		loadInteractive(m)
	}
}

func loadInteractive(m *pisc.Machine) {

	// given_files := flag.Bool("f", false, "Sets the rest of the arguments to list of files")
	// Run command stuff here.
	rl, err := readline.NewEx(&readline.Config{
		Prompt:          ">> ",
		HistoryFile:     "/tmp/readline.tmp",
		InterruptPrompt: "^C",
		EOFPrompt:       "exit",
	})
	if err != nil {
		fmt.Fprintln(os.Stderr, err)
		return
	}

	fmt.Println(
		`Position
Independent
Source
Code`)
	numEntries := 0
	for {
		// fmt.Print(">> ")
		line, err := rl.Readline()
		if strings.TrimSpace(line) == "exit" {
			fmt.Println("Exiting")
			return
		}
		if err == io.EOF {
			fmt.Println("Exiting program")
			return
		}
		if err != nil {
			panic(err)
		}
		numEntries++
		// fmt.Println(words)

		err = m.ExecuteString(line, pisc.CodePosition{Source: fmt.Sprint("stdin:", numEntries)})
		if err == pisc.ExitingProgram {
			fmt.Println("Exiting program")
			return
		}
		if err != nil {
			fmt.Fprintln(os.Stderr, "Error:", err.Error())
			return
		}
		m.LogAndResetDispatchCount(os.Stderr)
		fmt.Println("Data Stack:")
		for _, val := range m.Values {
			fmt.Println(val.String(), fmt.Sprint("<", val.Type(), ">"))
		}
	}

}

Added cmd/playground/app.css.



























































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
html {
	font-family: sans;
	height: 100%;
	padding: 0;
	margin: 0;
	width: 100%;
	height: 100%;
}
body {
	font-family: sans;
	height: 100%;
	padding: 0;
	margin: 0;
	width: 100%;
	height: 100%;
	background-color: #DFDFDF;
}
.topbar {
	margin: 0px;
	background-color: #2222FF;
}
.topbar .title {
	font-family: Verdana;
	margin-top: 0;
	margin-bottom: 5px;
	margin-left: 5px;
	padding-bottom: 5px;
	color: #F5F5F5;
}
#current-code {
	display: block;
}
#repl {
	display: block;
	min-width: 40em;
}

#body {
	min-width: 200px;
	margin: 20px;
}
#stack {
	display: block;
	margin-bottom: 10px;
}

#stack {
	border-collapse: collapse;
}
#stack tr td {
	border-bottom: 1px solid #888;
	padding: 3px;
}

.stack-entry {
	display: block;
}

.loading {
	color: #AAA;
}

Added cmd/playground/app.js.



























































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
var app = (function(){
	var exported = {};
	var codeElem,
	 inputElem,
	 runCodeElem,
	 stackOutput,
	 errElem,
	 pasteElem,
	 pasteNameElem,
	 pasteBtn;

	exported.load = function() {
		codeElem = elmID("current-code");
		inputElem = elmID("repl");
		runCodeElem = elmID("run-code");
		stackOutput = elmID("stack-output");
		errElem = elmID("error-output");
		pasteNameElem = elmID("paste-name");
		pasteBtn = elmID("paste-button");
		pasteElem = elmID("paste-inputs");

		// Clear loading indicators
		codeElem.className = "";
		runCodeElem.className = "";
		pasteBtn.className = "";
		runCodeElem.value = "Run Code";

		pasteBtn.onclick = function(event) {
			exported.addPasteInput(pasteNameElem.value);
			pasteNameElem.value = "";
		}

		runCodeElem.onclick = function() {
			runCode(codeElem.value);
			return false;
		};

		inputElem.onkeypress = function(event) {
			if (event.keyCode != 13 /*Enter*/) {
				return;
			}
			var code = inputElem.value;
			inputElem.value = "Executing code...";
			runCode(code);
			inputElem.value = "";
			return false;
		};
	}

	function runCode(code) {
		errElem.innerHTML = "";
		errElem.className = "hidden";
		try {
			var err = pisc_eval(code);
			if (err) {
				errElem.innerHTML = err.Error();
				errElem.className = "error";

			}
		} catch(ex) {
			errElem.innerHTML = ex.toString();
			errElem.className = "error";
		}
		displayStack();
	}

    function cleanStackDisplay(str) {
        return str.
            replace(/>/g, "&gt;").
            replace(/</g, "&lt;").
            replace(/\n/g, "<br/>");
    }

	function displayStack() {
		var stack = pisc_get_stack(),
			builtHTML = "";
		for (var i = 0; i < stack.length; i++) {
			var dropNum = stack.length - i - 1;
			builtHTML += 
				"<tr><td class='col'>" + cleanStackDisplay(stack[i].String()) + "</td>" + 
					"<td class='col-alt'>&lt;" + stack[i].Type() + "&gt;</td>" +
					'<td class="col"><a href="javascript:app.removeStackElem(' + dropNum + ')">Remove</a></td>' +
				"</tr>";
		}
		stackOutput.innerHTML = builtHTML;
	}

	exported.clearStack = function() {
		pisc_eval("clear-stack");
		displayStack();
	}
	exported.removeStackElem = function(idx) {
		pisc_eval(idx + " pick-del");
		displayStack();
	}

	exported.addPasteInput = function(name) {
		var elem = document.createElement("div");
		elem.innerHTML = 
		'<div>'+
		'<span>'+name+'</span> | ' +
		'<a href="javascript:app.removePasteInput(\''+ name + '\');">Delete</a>' +
		' |' +
		'<span> Use via <code>"'+ name +'" get-paste-text</code> in code/repl </span>' +
		'</div><textarea id="' + name + '-text"cols="50"></textarea>';
		elem.id = name;
		pasteElem.appendChild(elem);
	}

	exported.removePasteInput = function(name) {
		var elem = elmID(name);
		elem.parentNode.removeChild(elem);
	}

	exported.getTextOfPaste = function(name) {
		var elem = elmID(name + "-text");
		return elem.value;
	}

	function elmID(id) {
		return document.getElementById(id);
	}
	return exported;
})();
window.onload = app.load;

Added cmd/playground/browser.go.





































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package main

import (
	"pisc"

	"github.com/gopherjs/gopherjs/js"
)

var ModPlayground = pisc.Module{
	Author:    "Andrew Owen",
	Name:      "ModPlayground",
	License:   "MIT",
	DocString: "Words for interacting with the browser playground",
	Load:      loadModPlayground,
}

func addTextInput(m *pisc.Machine) error {
	name := m.PopValue().String()
	js.Global.Get("app").Call("addPasteInput", name)
	return nil
}

func getTextOfInput(m *pisc.Machine) error {
	name := m.PopValue().String()
	val := js.Global.Get("app").Call("getTextOfPaste", name).String()
	m.PushValue(pisc.String(val))
	return nil
}

func loadModPlayground(m *pisc.Machine) error {
	m.AddGoWord("create-paste-input", "( name -- )", addTextInput)
	m.AddGoWord("get-paste-text", "( name -- text )", getTextOfInput)
	return nil
}

Added cmd/playground/faq.html.















































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
<html>
	<head>
	<title>PISC Playground: About</title>
	<meta charset="utf-8" />
	<link type="text/css" rel="stylesheet" href="app.css">
	<body>
	<div class="topbar">
		<a href="index.html"><h2 class="title">PISC Playground: About</h2></a>
	</div>
	<div id="body">
		<p>By <a href="https://junglecoder.com/blog/AboutMe">Andrew Owen</a></p>
		<p>The PISC playground is developed using gopherjs, HTML, Javascript, and PISC.</p>
		<p>
		Also, the source for PISC is currently the best source of documentation as to how it all works, once you've gotten past the PISC in Y minutes.
		This isn't an ideal or desired sitation, but it is the way it is for now. I'd recommend taking a look at 
		<a href="https://pisc.junglecoder.com/home/apps/fossil/PISC.fossil/dir?ci=tip">interpreter.go</a> if you want to understand the core of this, and 
		<a href="https://pisc.junglecoder.com/home/apps/fossil/PISC.fossil/dir?ci=tip">loops.go</a>, <a href="https://pisc.junglecoder.com/home/apps/fossil/PISC.fossil/dir?ci=tip">locals.go</a> and <a href="https://pisc.junglecoder.com/home/apps/fossil/PISC.fossil/dir?ci=tip">dicts.go</a> if you want some starting points.
		</p>
		<p><sup>Yes, those are all links the same directory. You'll figure it out. :)</sup></p>
	</div>
	</body>
</html>

Added cmd/playground/index.html.























































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!DOCTYPE html>
<html>
	<head>
	<title>PISC Playground</title>
	<meta charset="utf-8" />
	<link type="text/css" rel="stylesheet" href="app.css">
	<body>
	<div class="topbar">
		<h2 class="title">PISC Playground</h2>
	</div>
	<div id="body">
		<textarea id="current-code" cols="80" rows="10" class="loading" ></textarea>

		<input type="submit" id="run-code" class="loading" value="Loading PISC..."/>
		<i><p>If you want a starter on PISC, check out <a href="https://pisc.junglecoder.com/home/apps/fossil/PISC.fossil/wiki?name=PISC+in+Y+Minutes">PISC in Y minutes</a>. At some point in the future, this playground will have an interactive tutorial. To see console output, use F12 to open the browser developer console</p></i>

		<hr>
		<div>
		<div>Errors:<span id="error-output" class="error"></span></div>
		Stack: (<a href="javascript:app.clearStack();">Clear</a>)
		<table id="stack">
			<tbody id="stack-output">
			</tbody>
		</table>
		</div>
		<input type="text" id="repl" placeholder="repl, Enter submits code"/>
		<hr>
		<div>
			Pastes are for dumping larger bits of text that you'd like to work with in your PISC script. Use <code>"pastename" get-paste-text</code> to load them onto the stack.
		</div>
		<br/>
		<input type="text" id="paste-name" placeholder="Name for paste" /> 
		<input type="submit" id="paste-button" class="loading" value="Create Paste Input"/>
		</span>
		<div id="paste-inputs"> </div>

		
		<p><i><a href="faq.html">About</a><i></p>
	</div>
	<script type="text/javascript" src="playground.js"></script>
	<script type="text/javascript" src="app.js"></script>
	</body>
</html>

Added cmd/playground/main.go.















































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package main

import (
	"pisc"

	"github.com/gopherjs/gopherjs/js"
)

func log(message string) {
	js.Global.Get("console").Call("log", message)
}

func log_error(message string) {
	js.Global.Get("console").Call("error", message)
}

func main() {

	m := &pisc.Machine{
		Values:               make([]pisc.StackEntry, 0),
		DefinedWords:         make(map[string]*pisc.CodeQuotation),
		DefinedStackComments: make(map[string]string),
		PredefinedWords:      make(map[string]pisc.GoWord),
		PrefixWords:          make(map[string]*pisc.CodeQuotation),
		HelpDocs:             make(map[string]string),
	}
	m.LoadModules(append(
		pisc.StandardModules,
		pisc.ModDebugCore,
		pisc.ModIOCore,
		ModPlayground)...)

	printStack := func(this *js.Object, arguments []*js.Object) interface{} {
		for _, val := range m.Values {
			printVal := val.String() + " <" + val.Type() + ">"
			log(printVal)
		}
		return js.Undefined
	}

	getStack := func(this *js.Object, arguments []*js.Object) interface{} {
		var jsVals = make([]*js.Object, 0)
		for _, val := range m.Values {
			jsVals = append(jsVals, js.MakeWrapper(val))
		}
		return jsVals
	}

	eval := func(this *js.Object, arguments []*js.Object) interface{} {
		if len(arguments) < 1 {
			log("Need a string to eval")
		}
		code := arguments[0].String()
		err := m.ExecuteString(code, pisc.CodePosition{Source: "User Input"})
		if err != nil {
			log_error(err.Error())
			return js.MakeWrapper(err)
		}
		/*
			for idx, val := range m.Values {
				printVal := val.String() + "<" + val.Type() + "> : " + strconv.Itoa(idx)
				log(printVal)
			}
		*/
		return js.Undefined
	}

	js.Global.Set("pisc_eval", js.MakeFunc(eval))
	js.Global.Set("pisc_show_stack", js.MakeFunc(printStack))
	js.Global.Set("pisc_get_stack", js.MakeFunc(getStack))
}

Deleted constest.pisc.

1
2
3
4
5
6
7
: build ( counter list -- list )
	:list :counter
	$counter 0 = [ $list ] [ $counter 1 - { $counter $list } build ] if ;

/* Run a test and see what this ends up doing */
100000 [] build drop

<
<
<
<
<
<
<














Deleted csv.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* Parsing CSV data in PISC */

: parse-csv-core ( reader -- vec [ vec ] ) 
	:reader
	<vector> :results
	f :inString
	f :lastCharWasQuote
	[ $inString not ] :outOfString

	/* Set up the temporary variables */
	[ "" :tempStr ] :resetCell
	[ resetCell <vector> :tempVec ] dup call :resetLine

	[ $tempVec $tempStr vec-append :tempVec resetCell ] :addCell
	[ $results $tempVec vec-append :results resetLine ] :addLine

	[ $reader -$EOF call not nip ] :notEOF
	[ $reader -$read-rune call nip ] :readRune

	[ notEOF ] [ 
		/* By default, append a char */
		t :default
		[ f :default ] :break

		readRune
		dup "," str-eq outOfString and [ addCell break ] when
		dup "\n" str-eq outOfString and [ addCell addLine break ] when
		dup "\"" str-eq [
			$lastCharWasQuote 
				[ f :lastCharWasQuote [ "\"" concat ] $:tempStr break ]
				[ t :lastCharWasQuote outOfString :inString break ] 
			if
		 ] when
		$default [ [ swap concat ] $:tempStr ] [ drop ] if
	] while 
	/* Add the straggling items */
	addCell addLine 
	$results ; 

: csv-of-file ( filepath -- vec [ vec ] ) open-file-reader parse-csv-core ;
: csv-of-string ( string -- vec [ vec ] ) str>rune-reader parse-csv-core ;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<


















































































Added daemons/piscbot/irckit.pisc.











































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
: handle-ping ( conn message -- was-ping )
    :msg :conn
	$msg .command "PING" str-eq? :was-ping
	$was-ping [
		$msg .params 0 vec-at :resp-key
		${ "PONG :" $resp-key } :resp 
		$resp $conn .send-message
	] when
	$was-ping
;

: irc-conf-defaults ( conf -- filledConf ) 
	:conf
	/* ( key fallbackVal --  ) */
	[ :v :k 
		$conf $k dict-has-key? not [
			$conf $v $k dict-set
		] when
	] :fallback

	"pass" "0" fallback
	"nick" "piscbot" fallback
	"chanlist" { "#botwars" } fallback
	"responders" { 
		 <ping-responder>
	} fallback
	"address" "" fallback
	$conf
;

: clean-chanlist ( chan-vec -- chancsv ) 
	:list
	{
		$list [ :c
			$c "#" str-starts? [ $c ] [ ${ "#" $c } ] if
		] vec-each 
	} "," str-join
;

: irc-evented-server! ( conf -- ) 
	irc-conf-defaults :conf
	"Checking address" println
	# Make sure we have an address
	$conf ->address len 0 > [
		$conf do-irc-evented-server!
	] [ "Need an address to dial into server!" println ] if
;

: do-irc-evented-server! ( conf -- )
	/* This server is single threaded for now */
	:conf 
	"Before trying to connect" println
	$conf ->address irc-dial :conn /* TODO: Figure out how to handle errors here, if at all */
	[ $conn .send-message ] :send
	[ $conn dup .recieve-message handle-ping drop ] :check-ping
	[ $conn .recieve-message ] :get-message

	$conf ->chanlist clean-chanlist :chanlist
	# Initialize the responders with an open connection
	{ $conf ->responders [ $conn swap call ] vec-each } :responders

	/* Get the server MOTD and the like */
	${ "PASS " $conf ->pass } send
	${ "NICK " $conf ->nick } send
	check-ping
	${ "USER piscbot piscbot i :" $conf ->nick } send
	check-ping


	/* Waiting for a MODE command so we know that MOTD has been finished */
	t :reading-motd
	[ $reading-motd ] [
		get-message :msg
		$msg .params " " str-join println
		$conn $msg handle-ping drop
		$msg .command "MODE" str-eq? not :reading-motd
	] while

	${ "JOIN " $chanlist } send

	[ t ] [
		get-message :msg
		$conn $msg handle-ping not [
			# This is a sandboxing technique
            log-stack
            ${ "Stack-length: " stack-len } println
			$responders [ :resp $msg $resp call ] vec-each 
		] when
	] while
	$conn .close
;


: is-ping? ( msg -- ? ) :msg
		$msg .command "PRIVMSG" str-eq?
		$msg .params len 1 > [ $msg .params 1 vec-at "!ping" str-contains? ] [ f ] if
	and
;

: <ping-responder> ( conn -- resp ) 
    [ :conn
        [ :msg
            $msg is-ping? [
                $msg .params 0 vec-at :replyId
                ${ "PRIVMSG " $replyId " pong!" } $conn .send-message
            ] when
        ]
    ]
;

: is-eval? ( msg -- ? ) :msg
		$msg .command "PRIVMSG" str-eq?
		$msg .params " " str-join "$pisc" str-contains?
	and
;

: clean-eval-output ( vec -- str )
    "|" str-join
    "\n" " " str-replace 
    dup len 250 > [ 0 250 str-substr " (Truncated...)" str-concat ] when
;

: clean-eval-code ( str -- code ) 
    :code 
    $code "$pisc" str-contains? 
    $code "$piscbot-help" str-contains? not and [ 
        $code "$pisc" str-idx-of :start
        $code len :end
        $code 
            $start "$pisc" len +  
            $end 
        str-substr
    ] [ "" ]  if
    dup println
;

# This is curried 3 ways
: <evalbot-responder> (  vm  -- [ conn - [ msg - response ] ] ) 
    :vm 
    [ :conn
        [ :msg
            $msg is-eval? [
                $msg .params
                    dup 0 vec-at :replyId
                        1 vec-at :eval-code
                $eval-code clean-eval-code
                $vm .eval 
                clean-eval-output :body
                
                ${ "PRIVMSG " $replyId " :" $body } $conn .send-message
            ] when
        ]
    ]
;

: is-help? ( msg -- ? ) :msg
        $msg .command "PRIVMSG" str-eq?
        $msg .params " " str-join "$piscbot-help" str-contains?
    and
        $msg .params len 0 >
    and
;

: help-message ( replying-to -- str ) :reply-id
    ${
        "PRIVMSG " 
        $reply-id
        " :I can be used to evaluate pisc on IRC. See https://pisc.junglecoder.com for language details" 
    } 
;

: <help-responder> ( -- [ conn - [ msg - response ] ] )
    [ :conn 
        [ :msg
            $msg is-help? [
                $msg .params 0 vec-at help-message  $conn .send-message
            ] when
        ] 
    ] 
;

: irc-conf-ping-freenode! ( -- ) 
	<dict> dup :conf
		"wiki-bot" <<-nick
		"0" <<-pass
		"irc.freenode.com:6667" <<-address
	irc-conf-defaults irc-evented-server!
;

: prep-vm ( vm -- ) :vm
    "vm-prep.pisc" get-str-at-path $vm .eval println 
    "Prepped!" println
;

: irc-eval-ludumdare! ( -- ) 
	<irc-vm> :vm
    $vm prep-vm
	<dict> 
		"piscbot" <<-nick
		"0" <<-pass
		"irc.afternet.org:6667" <<-address
		{ "#botwars" "#botspam" "#ludumdare" "#alakajam" } <<-chanlist
		{ 
			<ping-responder>
			$vm <evalbot-responder>
            <help-responder>
		} <<-responders
    irc-evented-server!
;

: irc-eval-freenode! ( -- ) 
	<irc-vm> :vm
    $vm prep-vm
	<dict> 
		"piscbot" <<-nick
		"0" <<-pass
		"irc.freenode.org:6667" <<-address
		{ 
            "#botwars" "#proglangdesign" 
            "#pisc"
            # "#lobsters"
        } <<-chanlist
		{ 
			<ping-responder>
			$vm <evalbot-responder>
            <help-responder>
		} <<-responders
    irc-evented-server!
;

Added daemons/piscbot/vm-prep.pisc.



























































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
IRC_GLOBALS 
    {
        "1/ For every set of rules, there are intended behaviors which are encoded in the rules -simpson"
        "2/ And there are unintended behaviors which aries from interactions between rules and other entailments. Always -simpson"
        "3/ When making rules, be aware that they can interact in ways you cannot anticipate -simpson"
        "Antijokes are jokes. Antipatterns are patterns. Antipasto is not pasta. -simpson"
        "Is advertizing a tax on the computer-illiterate? -simpson"
        "New forms of interactivity are often addictive -yumaikas"
        "THIS IS NOT ZORK -Aurel300"
     } 
 <-quotes

: d6 ( -- roll ) 1 6 range-rand ;
: d12 ( -- roll ) 1 12 range-rand ;
: d20 ( -- roll ) 1 20 range-rand ;
: greet ( username -- greeting ) :n ${ "Hello, " $n "!" } ;
: dice ( dice  -- total ) 0 swap [ + ] vec-each ;

: quote ( -- quote ) IRC_GLOBALS ->quotes choice ; 
: add-quote ( quote -- ) IRC_GLOBALS ->quotes swap vec-push ;
: create-game-for-me ( -- message ) "You are in a _forest_, which direction _(n/s/e/w)_ do you go? (navigate by joining _marks_ after game-, i.e game-forest-n)" ;

: game-forest-n ( -- message ) "A clearing opens. You smell honeysuckle, see Queen Anne's lace and like what you see" ;
: game-forest-w ( -- message ) "The sun is setting in the distance, casting an amber tint over the trees" ;
: game-forest-e ( -- message ) "There's a _cave_ here, it seems to emit a faint azure glow." ;
: game-forest-s ( -- message ) "Your _home_, nestled in a glade. There is a _garden_ near it" ;
: game-home ( -- message ) "You see your journal and pen. The forest calls, however" ;
: game-cave ( -- message ) "As you enter the cave, you become enraptured by blue. Transfixed on the glow, you are eaten by a Grue!" ;
: game-garden ( -- message ) "The tomatoes and cabbages are nearing the harvest time." ;

Changes to debug.go.

1
2
3
4
5



6
7
8
9
10
11
12




































13









14
15
16
17
18
19
20
21

22












23
24

25
26

















27
28
29
30
31




32
33
34
35
36
37
38
39
40
41
42
43




































































44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package main

import (
	"fmt"
	"io"



	"strings"
	"time"
)

func (m *machine) loadDebugWords() error {
	// ( -- )
	m.predefinedWords["show-prefix-words"] = NilWord(func(m *machine) {




































		for name, _ := range m.prefixWords {









			fmt.Println(name)
		}
	})
	// ( quot -- .. time )
	m.predefinedWords["time"] = GoWord(func(m *machine) error {
		words := &codeQuotation{
			idx:   0,
			words: []word{"call"},

		}












		start := time.Now()
		executeWordsOnMachine(m, words)

		elapsed := time.Since(start)
		m.pushValue(String(fmt.Sprint("Code took ", elapsed)))

















		return nil
	})

	// ( -- )
	m.predefinedWords["dump-defined-words"] = GoWord(func(m *machine) error {




		for name, seq := range m.prefixWords {
			fmt.Println(":PRE", name, m.definedStackComments[name], DumpToString(seq), ";")
		}
		for name, seq := range m.definedWords {
			fmt.Println(":DOC", name, m.definedStackComments[name], m.helpDocs[name], ";")
			fmt.Println(":", name, m.definedStackComments[name], DumpToString(seq), ";")
		}
		return nil
	})
	return nil
}





































































func DumpToString(c codeSequence) string {
	c = c.cloneCode()
	words := make([]string, 0)
	for {
		w, err := c.nextWord()
		if err == io.EOF {
			return strings.Join(words, " ")
		}
		if err != nil {
			panic("Unexpected error!!!")
		}
		words = append(words, string(w))
	}
	return strings.Join(words, " ")
}
|




>
>
>




<
<
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
|
|
<
<
<
<
<
<
>
|
>
>
>
>
>
>
>
>
>
>
>
>
|
<
>
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
<
|
<
<
>
>
>
>
|
|
|
|
|
|
|
|
<



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>











|

<

1
2
3
4
5
6
7
8
9
10
11
12



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60






61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96

97


98
99
100
101
102
103
104
105
106
107
108
109

110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193

194
package pisc

import (
	"fmt"
	"io"
	"log"
	"os"
	"runtime/pprof"
	"strings"
	"time"
)




var ModDebugCore = Module{
	Author:    "Andrew Owen",
	Name:      "DebugCore",
	License:   "MIT",
	DocString: "The debug words used in PISC",
	Load:      loadDebugCore,
}

// Inspired by a computerphile video on how
// Postscript was a "big" language at 400
// "Operators" (words in PISC), so I can instruement
// the relative size of PISC in terms of surface area

func getNumGoWords(m *Machine) error {
	m.PushValue(Integer(len(m.PredefinedWords)))
	return nil
}

func getStackLen(m *Machine) error {
	l := len(m.Values)
	m.PushValue(Integer(l))
	return nil
}

func getNumPiscWords(m *Machine) error {
	m.PushValue(Integer(len(m.DefinedWords)))
	return nil
}

func getNumPrefixWords(m *Machine) error {
	m.PushValue(Integer(len(m.PrefixWords)))
	return nil
}

func logStack(m *Machine) error {
	arr := make([]string, len(m.Values))
	for i, v := range m.Values {
		arr[i] = v.String()
	}

	fmt.Println(strings.Join(arr, "\n"))
	return nil
}

func _showPrefixWords(m *Machine) error {
	for name := range m.PrefixWords {
		fmt.Println(name)
	}






	return nil
}

func _printDebugTrace(m *Machine) error {
	fmt.Println(m.DebugTrace)
	return nil
}

func _clearDebugTrace(m *Machine) error {
	m.DebugTrace = ""
	return nil
}

func _timeQuotation(m *Machine) error {
	start := time.Now()

	err := m.ExecuteQuotation()
	elapsed := time.Since(start)
	m.PushValue(String(fmt.Sprint("Code took ", elapsed)))
	return err
}

func _cpuPPROF(m *Machine) error {
	m.ExecuteString("swap", CodePosition{Source: "cpu-pprof GoWord"})
	path := m.PopValue().String()
	f, err := os.Create(path)
	if err != nil {
		log.Fatal("Unable to create profiling file")
		return err
	}
	if err := pprof.StartCPUProfile(f); err != nil {
		log.Fatal("Unable to start CPU profile")
		return err
	}
	m.ExecuteQuotation()
	pprof.StopCPUProfile()
	return nil

}



func _dumpDefinedWords(m *Machine) error {

	// var words = make(Array, 0)
	for name, seq := range m.PrefixWords {
		fmt.Println(":PRE", name, m.DefinedStackComments[name], DumpToString(seq), ";")
	}
	for name, seq := range m.DefinedWords {
		fmt.Println(":DOC", name, m.DefinedStackComments[name], m.HelpDocs[name], ";")
		fmt.Println(":", name, m.DefinedStackComments[name], DumpToString(seq), ";")
	}
	return nil

	return nil
}

func loadDebugCore(m *Machine) error {

	m.AddGoWordWithStack("log-stack",
		"( -- )",
		"Log the current state of the stack",
		logStack)

	m.AddGoWordWithStack("stack-len",
		"( -- stack-len )",
		"Get the length of the stack.",
		getStackLen)

	m.AddGoWordWithStack("count-go-words",
		"( -- num-go-words )",
		"Get the number of words in the machine that are defined in Go",
		getNumGoWords)

	m.AddGoWordWithStack("count-pisc-words",
		"( -- num-pisc-words )",
		"Get the number of words in this machine that are defined in PISC",
		getNumPiscWords)

	m.AddGoWordWithStack("count-prefix-words",
		"( -- num-prefix-words )",
		"Get the number of words that are defined as Prefixes",
		getNumPrefixWords)

	// ( -- )
	m.AddGoWordWithStack(
		"show-prefix-words",
		"( -- )",
		"Logs a list of prefix words to stdout",
		_showPrefixWords)

	// ( quot -- .. time )
	m.AddGoWordWithStack(
		"time",
		"( quot -- .. time )",
		"Times how long it takes to execute a quotation, leaving a string atop the stack describing the time",
		_timeQuotation)

	m.AddGoWordWithStack(
		"print-debug-trace",
		"( -- )",
		"Prints the extant debug trace",
		_printDebugTrace)

	m.AddGoWordWithStack(
		"clear-debug-trace",
		"( -- )",
		"Clears the debug trace",
		_clearDebugTrace)

	m.AddGoWordWithStack(
		"cpu-pprof",
		"( path quot -- )",
		"Runs the quotation in a PPROF session, saving the data to the file at path",
		_cpuPPROF)

	m.AddGoWordWithStack(
		"dump-defined-words",
		"( -- )",
		"Dump all of the currently defined words to STDOUT", _dumpDefinedWords)

	return m.ImportPISCAsset("stdlib/debug.pisc")
}

// TODO: See about this...
func DumpToString(c codeSequence) string {
	c = c.cloneCode()
	words := make([]string, 0)
	for {
		w, err := c.nextWord()
		if err == io.EOF {
			return strings.Join(words, " ")
		}
		if err != nil {
			panic("Unexpected error!!!")
		}
		words = append(words, w.str)
	}

}

Deleted debug.pisc.

1
2
3
4
5

:DOC show-prefix-words ( -- ) Shows which prefix words are currently loaded ;

:DOC show-locals ( -- ) Shows which locals are in current scope ;
: show-locals ( -- ) [  over >string " = " swap concat concat nip print ] each-local ; 
<
<
<
<
<










Added debugLog.go.

























>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
package pisc

import "fmt"

var xLOG = false

// This function is strictly for logging purposes.
func debugLog(args ...interface{}) {
	if xLOG {
		fmt.Println(args)
	}
}

Changes to dicts.go.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

































55
56
57
58














59
60










































package main

import (
// "strings"
)

func (m *machine) loadDictWords() error {

	// Push a dictionary to the stack.
	m.predefinedWords["<dict>"] = NilWord(func(m *machine) {
		dict := make(map[string]stackEntry)
		m.pushValue(Dict(dict))
	})

	// TODO: Consider deprecating this
	// ( dict quot -- vals.. )
	m.predefinedWords["dict-get-many"] = NilWord(func(m *machine) {
		q := m.popValue().(quotation)
		// Keep from popping the dictionary
		dict := m.values[len(m.values)-1].(Dict)
		for _, innerWord := range q.code {
			m.pushValue(dict[string(innerWord)])
		}
	})

	// ( dict key -- dict bool )
	m.predefinedWords["dict-has-key"] = NilWord(func(m *machine) {
		key := m.popValue().(String).String()
		dict := m.popValue().(Dict)
		_, ok := dict[key]
		m.pushValue(Boolean(ok))
	})

	// ( dict value key -- dict )
	m.predefinedWords["dict-set"] = NilWord(func(m *machine) {
		key := m.popValue().(String).String()
		value := m.popValue()
		// Peek, since we have no intention of popping here.
		dict := m.popValue().(Dict)
		dict[string(key)] = value
	})

	// ( dict key -- dict value )
	m.predefinedWords["dict-get"] = NilWord(func(m *machine) {
		key := m.popValue().(String).String()
		m.pushValue(m.popValue().(Dict)[key])
	})
	// ( dict -- key value )
	m.predefinedWords["dict-get-rand"] = GoWord(func(m *machine) error {
		dic := m.popValue().(Dict)
		// Rely on random key ordering
		for k, v := range dic {
			m.pushValue(String(k))
			m.pushValue(v)

































			break
		}
		return nil
	})














	return nil
}










































|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



<
>
>
>
>
>
>
>
>
>
>
>
>
>
>


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90

91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
package pisc

// "strings"

var ModDictionaryCore = Module{
	Author:  "Andrew Owen",
	Name:    "DictionaryCore",
	License: "MIT", // TODO: Clarify here
	Load:    loadDictMod,
	// Possible: indicate PISC files to be loaded?
}

var ErrMissingKey = Error{
	message: "Dictionary was missing key",
}

func loadDictMod(m *Machine) error {
	return loadDictWords(m)
}

func _buildDict(m *Machine) error {
	dict := make(map[string]StackEntry)
	m.PushValue(Dict(dict))
	return nil
}

func _dictHasKey(m *Machine) error {
	key := m.PopValue().(String).String()
	dict := m.PopValue().(Dict)
	_, ok := dict[key]
	m.PushValue(Boolean(ok))
	return nil
}

func _dictSet(m *Machine) error {
	key := m.PopValue().(String).String()
	value := m.PopValue()
	dict := m.PopValue().(Dict)
	dict[string(key)] = value
	return nil
}

func _dictPush(m *Machine) error {
	key := m.PopValue().(String).String()
	value := m.PopValue()
	dict := m.Values[len(m.Values)-1].(Dict)
	dict[string(key)] = value
	return nil
}

func getMissingKeyErr(key string) Error {
	return Error{
		message: "Dictionary was missing key:" + key,
	}
}

func _dictGet(m *Machine) error {
	key := m.PopValue().(String).String()
	dict := m.PopValue().(Dict)
	if val, found := dict[key]; found {
		m.PushValue(val)
		return nil
	} else {
		return getMissingKeyErr(key)
	}
}

func _dictKeys(m *Machine) error {
	dict := m.PopValue().(Dict)

	keyArr := make([]StackEntry, dict.Length())

	var i int = 0
	for k, _ := range dict {
		keyArr[i] = String(k)
		i++
	}
	m.PushValue(&Vector{Elements: keyArr})
	return nil
}

func _dictGetRand(m *Machine) error {
	dict := m.PopValue().(Dict)
	// Rely on random key ordering
	for k, v := range dict {
		m.PushValue(String(k))
		m.PushValue(v)
		break
	}
	return nil

}

// dict quot -- ...
func _dictEachKey(m *Machine) error {
	quot := m.PopValue().(*Quotation)
	dict := m.PopValue().(Dict)

	for k, _ := range dict {
		m.PushValue(String(k))
		err := m.execute(quot.inner)
		if err != nil {
			return err
		}
	}
	return nil
}

func loadDictWords(m *Machine) error {

	m.AddGoWordWithStack("<dict>",
		"( -- dict )",
		"Place an empty dictionary on the stack",
		_buildDict)
	m.AddGoWordWithStack("dict-has-key?",
		"( dict key -- has-key? )",
		"Check to see if a dictionary has a given key",
		_dictHasKey)

	m.AddGoWordWithStack(
		"dict-set",
		"( dict value key -- )",
		"Set the entry in dict at key to value",
		_dictSet)
	m.AddGoWordWithStack(
		"dict-push",
		"( dict value key -- dict )",
		"Set the entry in dict at key to value, leaving the dict on the stack",
		_dictPush)

	m.AddGoWordWithStack("dict-get",
		"( dict key -- value|error? )",
		"Get the key, or error if it doesn't exist",
		_dictGet)
	m.AddGoWordWithStack("dict-keys",
		"( dict -- { keys } )",
		"Loads all the keys for a dictionary into an array",
		_dictKeys)
	m.AddGoWordWithStack("dict-get-rand",
		"( dict -- key value )",
		"Get a random key/value pair from this dictionary",
		_dictGetRand)
	m.AddGoWordWithStack("dict-each-key",
		"(dict quot -- .. )",
		"Run a function over each key in the dictionary",
		_dictEachKey)

	return m.ImportPISCAsset("stdlib/dicts.pisc")
}

Deleted dicts.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* Dictionaries and their utilities */

:DOC <dict> ( -- dict )  Place an empty dictionary on the stack  ;

:DOC dict-get-many ( dict quot --  )  Get a value from the dictionary for each word in a quotation  ;

/* Does this dict have this key? */ : dict-has-key? ( dict key -- dict bool ) "dict-has-key" extern-call ;

:DOC dict-set ( dict key set -- dict )  Set the key to the value, leaving the dict on the stack  ;

:DOC dict-get ( dict key -- value )  Get the value from the dictionary  ;

: dict-if-empty-stack ( .. -- dict? ) stack-empty? [ <dict> ] when ;
: dict-if-not-dict ( .. -- dict ) dup typeof "Dictionary" str-neq [ <dict> ] when ;
: ensure-dictionary ( .. -- dict ) dict-if-empty-stack dict-if-not-dict ;

/* Fetch from dictionary */
:PRE -$ ( dict key -- val ) dict-get ;

/* Set dictionary value, and set option (in the tradition of shells) */
:PRE -: ( dict? val key -- dict ) [ [ ensure-dictionary ] dip ] dip dict-set ;

/*  Set an entry to true for each unicode character in this string */
:PRE -% ( dict? key -- dict ) [ ensure-dictionary ] dip [ t swap dict-set ] each-char ;

:PRE -? ( dict key -- dict ? ) dict-has-key? ;

: quot>dict ( quot -- dict ) get-locals call <dict> [ dict-set ] each-local drop-locals ;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
























































Added editors/SublimeText3/pisc.sublime-syntax.























































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
%YAML 1.2
---
# See http://www.sublimetext.com/docs/3/syntax.html
name: PISC
file_extensions:
  - pisc 
scope: source.pisc
contexts:
  main:
    # Strings begin and end with quotes, and use backslashes as an escape
    # character
    - match: '"'
      scope: punctuation.definition.string.begin.pisc
      push: double_quoted_string

    - include: comments

    - match: '\['
      scope: meta.brackets meta.block.section.brackets.begin

    - match: '\]'
      scope: meta.brackets meta.block.section.brackets.end 

    - match: '(?<!\w)[-\[\]:!@$%^&*<>+]+[^\s]+'
      scope: punctuation.definition.variable

    # Numbers
    - match: '\b(-)?[0-9.]+\b'
      scope: constant.numeric.pisc

    - match: '^\s*\:\s+'
      scope: punctuation.definition.keyword
      set: [word_def_comment, word_def_start]

    - match: '^\s*\:DOC\s+'
      scope: punctuation.definition.keyword
      set: [word_body_comment, word_def_comment, word_def_start]

    - match: '^\s*\:PRE\s+'
      scope: punctuation.definition.keyword
      set: [word_def_comment, word_def_start]

    # Boolean 
    - match: (^|\s)(t|f|\?)\s
      scope: constant.pisc

  comments: 
    # Comments begin with a '/*' and finish at the */
    - match: '/\*'
      scope: punctuation.definition.comment.block.pisc
      push: 
        - meta_scope: comment.block.pisc
        - match: '\*/'
          pop: true

    - match: '#'
      scope: punctuation.definition.comment.pisc
      push: 
        - meta_scope: comment.line.pisc
        - match: $
          pop: true


  word_def_start:
    - meta_scope: entity.name.function
    - match: /\*
      scope: invalid.illegal
    - match: '[^\s]+'
      pop: true

  word_def_comment:
    - match: \(\s*(.*)?\s(--)\s(.*)?\s?\) 
      scope: comment.punctuation.pisc
      pop: true

  word_body_comment:
    - match: '[^;\n\r]+'
      scope: comment.block.pisc
      push: 
      - match: (.+);$
        scope: punctuation.definition.pisc
        pop: true
      pop: true

  double_quoted_string:
    - meta_scope: string.quoted.double.pisc
    - match: '\\.'
      scope: constant.character.escape.pisc
    - match: '"'
      scope: punctuation.definition.string.end.pisc
      pop: true

Added editors/SublimeText3/syntax_test.pisc.











































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* This is a block comment */
# SYNTAX TEST PISC "Packages/PISC/pisc.sublime-syntax"
"string" 
# ^ source.pisc 
: word ( a -- b ) 1 2 + ;
: otherFunction ( a -- b ) ;

: if ( a b -- c )  ;

:DOC if ( a b -- c ) /* This is commentary about comments ;
/*
 this is another comment line that isn't getting hit. 
*/


: if ( a b -- c ) [ + ] call ;


/* 
This is a multline comment
*/

Added editors/vim-pisc/ftdetect/pisc.vim.







>
>
>
1
2
3
" ftdetect/pisc.vim
autocmd BufNewFile,BufRead *.pisc setfiletype pisc

Added editors/vim-pisc/ftplugin/pisc.vim.













>
>
>
>
>
>
1
2
3
4
5
6
" ftplugin/pisc.vim
"
" Add the prefix chars to keywords
setlocal iskeyword=-,_,:,~,!,@,$,%,*,<,+,>,?,.
setlocal commentstring=\#\ %s

Added editors/vim-pisc/syntax/pisc.vim.





































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
" syntax/pisc.vim

" PISC only has a few 'keywords', so we'll match them here.
syntax keyword piscKeyWords if when while :PRE :DOC 


" : name 
" NOTE: there are tabs and spaces in those gaps
syntax match piscFuncName /\v:[ \t]+[^ \t]+[     ]+/

" Match ;
syntax match piscKeyWords "\v\;"

" Match basic PISC numbers
" There are both tabs and spaces in both of the (||$) sections
syntax match piscNumber /\v(^| |\t)\@=-?\d+(  | |$)\@=/
syntax match piscNumber /\v(^| |\t)\@=-?\d+\.\d*( | |$)\@=/
syntax match piscBool "\v<t>"
syntax match piscBool "\v<f>" 

syntax match piscPrefixWord /\v(^| |\t)\@=[-_:!@$%^&<>+?\.]+[-a-zA-Z0-9]+>/

syntax match piscBraces "\v\$\{"
syntax match piscBraces "\v\{"
syntax match piscBraces "\v\}"
syntax match piscBraces "\v\["
syntax match piscBraces "\v\]"

" Strings
syntax region piscString start=/"/ skip=/\v\\./ end=/"/

" Comments
syntax region piscLineComment start=/\v#/ end=/\v$/ oneline
syntax region piscMultilineComment start=/\v\/\*/ end=/\v\*\//
syntax region piscStackComment start=/\v\(/ end=/\v\)/


" Set highlights
highlight default link piscNumber Number
highlight default link piscKeyWords Statement
highlight default link piscBool Boolean
highlight default link piscString String
highlight default link piscBraces Statement
highlight default link piscPrefixWord Identifier
highlight default link piscFuncName Statement

highlight default link piscLineComment Comment
highlight default link piscMultilineComment Comment
highlight default link piscStackComment Comment

Deleted factorial.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
: factorial ( x -- y ) :x 
	$x 0 >  [ $x $x 1 - factorial * ] 
		   [ 1 ]
	if ;

: decrement-x ( -- ) "x" get-local 1 - "x" set-local ;

: factorial-loop ( x -- y ) dup :x :result 
 $x [
 	decrement-x 
	$result $x * :result
 ] times 
 $result
 ;
<
<
<
<
<
<
<
<
<
<
<
<
<
<




























Added getsomedeps.sh.





>
>
1
2
go get -u github.com/jteeuwen/go-bindata/...
go get -u github.com/gopherjs/gopherjs

Changes to help.go.

1
2
3
4
5
6
7
8






9
10
11
12


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27













package main

import (
	"fmt"
	"strings"
)

// These are the help words







func (m *machine) loadHelpWords() {
	// ( val name -- )
	m.predefinedWords["help"] = GoWord(func(m *machine) error {


		searchTerm := m.popValue().(String).String()
		if len(m.helpDocs) > 0 {
			for k, v := range m.helpDocs {
				if strings.Contains(string(k), searchTerm) || strings.Contains(string(v), searchTerm) {
					fmt.Println("Word: ", k, "\n\tDescription: ", v)
				}
			}
			return nil
		} else {
			fmt.Println("No help avaialble.")
			return nil
		}
	})

}













|






|
>
>
>
>
>
>
|
<
<
<
>
>
|
|
|






|
|
|
<
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15



16
17
18
19
20
21
22
23
24
25
26
27
28
29

30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package pisc

import (
	"fmt"
	"strings"
)

// TODO: Indicate deps modules?
var ModHelpCore = Module{
	Author:    "Andrew Owen",
	Name:      "HelpCore",
	License:   "MIT",
	DocString: "A function to look up help for words",
	Load:      loadHelpCore,
}




func _help(m *Machine) error {
	searchTerm := m.PopValue().(String).String()
	if len(m.HelpDocs) > 0 {
		for k, v := range m.HelpDocs {
			if strings.Contains(string(k), searchTerm) || strings.Contains(string(v), searchTerm) {
				fmt.Println("Word: ", k, "\n\tDescription: ", v)
			}
		}
		return nil
	} else {
		fmt.Println("No help available.")
		return nil
	}

}

// TODO: Pull from more Sources of docs, like word defs, not just
// :DOC directive
func loadHelpCore(m *Machine) error {
	// TODO: Implement cli docs browser?

	m.AddGoWordWithStack(
		"help",
		"( search-terim -- )",
		"Search the docs for the given search term, printing out any entries that match",
		_help)
	return nil

}

Deleted interpertor.go.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
// TODO: look for ways to split this code up better.
package main

import (
	"fmt"
	"io"
	"regexp"
	"strconv"
	"strings"
)

var (
	EOF                       = fmt.Errorf("End of file")
	EncodingFault             = fmt.Errorf("Encoding error!")
	ConditionalTypeError      = fmt.Errorf("Expected a boolean value, but didn't find it.")
	WordDefParenExpectedError = fmt.Errorf("Word definitions require a stack effect comment!")
	QuotationTypeError        = fmt.Errorf("Expected quotation value, but didn't find it.")
	InvalidAddTypeError       = fmt.Errorf("Expected two integer values, but didn't find them.")
	UnexpectedStackDashError  = fmt.Errorf("Found unexpected -- in stack annotation")
	ParenBeforeStackDashError = fmt.Errorf("Found ) before -- in stack annotation")
	InvalidPrefixCharError    = fmt.Errorf("Found invalid character in prefix definition")
	ExitingProgram            = fmt.Errorf("User called `quit`, terminating program")
)

type word string

type codeSequence interface {
	nextWord() (word, error)
	getcodePosition() codePosition
	wrapError(error) error
	// Returns a codeSequence that starts a 0 for the same code
	cloneCode() codeSequence
}

type machine struct {
	// TODO: add a stack pointer so that we can keep from re-allocating a lot.
	// stackPtr int
	values []stackEntry
	// This is reallocated when locals are used
	locals []map[string]stackEntry
	// A map from words to slices of words.
	definedWords map[word]codeSequence
	// A map from prefixes to prefix words
	prefixWords map[word]codeSequence
	// A map from words to predefined words (words built in go)
	predefinedWords map[word]GoWord
	// TODO: try to work this out later.
	definedStackComments map[word]string
	// The top of the stack it the end of the []stackEntry slice.
	// Every so many entries, we may need to re-allocate the stack....
	helpDocs map[word]string

	// Each time we are asked for a symbol, supply the value here, then increment
	symbolIncr int64
}

func (m *machine) pushValue(entry stackEntry) {
	m.values = append(m.values, entry)
}

func (m *machine) genSymbol() {
	m.pushValue(Symbol(m.symbolIncr))
	m.symbolIncr++
}

func (m *machine) popValue() stackEntry {
	if len(m.values) <= 0 {
		panic("Data underflow")
	}

	popped := m.values[len(m.values)-1]
	// Snip the length of value
	m.values = m.values[:len(m.values)-1]
	return popped
}

func runCode(code string) *machine {
	// words := getWordList(strings.TrimSpace(code))
	p := &codeList{
		idx:  0,
		code: code,
	}
	m := &machine{
		values:               make([]stackEntry, 0),
		definedWords:         make(map[word]codeSequence),
		definedStackComments: make(map[word]string),
	}
	executeWordsOnMachine(m, p)
	return m
}

var (
	spaceMatch       = regexp.MustCompile(`[\s\r\n]+`)
	floatMatch       = regexp.MustCompile(`^-?\d+\.\d+$`)
	intMatch         = regexp.MustCompile(`^-?\d+$`)
	prefixMatchRegex = regexp.MustCompile(`^[-\[\]:~!@$%^&*<>+?]+`)
)

// This executes a given code sequence against a given machine
func executeWordsOnMachine(m *machine, p codeSequence) (retErr error) {
	var err error
	var wordVal word
	defer func() {
		pErr := recover()
		if pErr != nil {
			retErr = fmt.Errorf("%s", pErr)
		}
		if retErr != nil {
			fmt.Println("Error while executing", wordVal, ":", p.wrapError(retErr))
		}
	}()
	for err == nil {
		// fmt.Println(intMatch.MatchString(string(wordVal)))
		wordVal, err = p.nextWord()
		if err == io.EOF {
			return
		}
		if err != nil {
			return err
		}
		switch {
		case wordVal == "quit":
			return ExitingProgram
		// Comments are going to be exclusively of the /*  */ variety for now.
		case wordVal == "/*":
			for err == nil {
				wordVal, err = p.nextWord()
				if wordVal == "*/" {
					break
				}
			}
		case strings.HasPrefix(string(wordVal), "#"):
			// Skip line comment, potentialy work with it later, but not now.
			continue
		case floatMatch.MatchString(string(wordVal)):
			floatVal, floatErr := strconv.ParseFloat(string(wordVal), 64)
			if floatErr != nil {
				panic(floatErr)
			}
			m.pushValue(Double(floatVal))
		case intMatch.MatchString(string(wordVal)):
			intVal, intErr := strconv.Atoi(string(wordVal))
			if intErr != nil {
				panic(intErr)
			}
			m.pushValue(Integer(intVal))
		// This word needs to be defined before we can allow other things to be defined
		case wordVal == ":":
			err = m.readWordDefinition(p)
		case wordVal == ":PRE":
			err = m.readPrefixDefinition(p)
			// err = m.readPatternDefinition
		case wordVal == ":DOC":
			err = m.readWordDocumentation(p)
		case wordVal == "typeof":
			m.pushValue(String(m.popValue().Type()))
		case wordVal == "stack-empty?":
			if len(m.values) == 0 {
				m.pushValue(Boolean(true))
			} else {
				m.pushValue(Boolean(false))
			}
		case wordVal == "{":
			// Begin quotation
			pos := p.getcodePosition()
			quote := make([]word, 0)
			depth := 0
			for err == nil {
				wordVal, err = p.nextWord()
				if wordVal == "{" {
					depth++
				}
				if wordVal == "}" {
					depth--
				}
				// have to accomodate for the decrement in f
				if wordVal == "}" && depth == -1 {
					break
				}
				quote = append(quote, wordVal)
			}
			currIdx := len(m.values)
			// Run the { } as a quotation
			m.pushValue(quotation{
				code:         quote,
				codePosition: pos,
				locals:       m.locals[len(m.locals)-1]})
			err := m.executeQuotation()
			if err != nil {
				return err
			}
			vals := make([]stackEntry, len(m.values)-currIdx)
			copy(vals, m.values[currIdx:len(m.values)])
			m.values = m.values[:currIdx]
			m.pushValue(Array(vals))

		case wordVal == "${":
			// Begin quotation
			pos := p.getcodePosition()
			quote := make([]word, 0)
			depth := 0
			for err == nil {
				wordVal, err = p.nextWord()
				if wordVal == "{" {
					depth++
				}
				if wordVal == "${" {
					depth++
				}
				if wordVal == "}" {
					depth--
				}
				// have to accomodate for the decrement in f
				if wordVal == "}" && depth == -1 {
					break
				}
				quote = append(quote, wordVal)
			}
			currIdx := len(m.values)
			// Run the { } as a quotation
			m.pushValue(quotation{
				code:         quote,
				codePosition: pos,
				locals:       m.locals[len(m.locals)-1]})
			err := m.executeQuotation()
			if err != nil {
				return err
			}
			vals := make([]stackEntry, len(m.values)-currIdx)
			copy(vals, m.values[currIdx:len(m.values)])
			m.values = m.values[:currIdx]
			m.pushValue(Array(vals))
			executeWordsOnMachine(m, &codeList{
				idx:  0,
				code: " \"\" str-join ",
			})

		case wordVal == "[":
			// Begin quotation
			pos := p.getcodePosition()
			quote := make([]word, 0)
			depth := 0
			for err == nil {
				wordVal, err = p.nextWord()
				if wordVal == "[" {
					depth++
				}
				if wordVal == "]" {
					depth--
				}
				// have to accomodate for the decrement in f
				if wordVal == "]" && depth == -1 {
					break
				}
				quote = append(quote, wordVal)
			}
			m.pushValue(quotation{
				code:         quote,
				codePosition: pos,
				locals:       m.locals[len(m.locals)-1]})

		case isMathWord(wordVal):
			err = m.executeMathWord(wordVal)
		case wordVal == "]":
			// panic here.
			panic("Unbalanced ]")
		case strings.HasPrefix(string(wordVal), `"`):
			// This is the case for string literals
			// Slice out the " chracter
			strVal := strings.TrimSuffix(strings.TrimPrefix(string(wordVal), `"`), `"`)

			m.pushValue(String(strVal))
		case wordVal == "?":
			// If there is an error, this will stop the loop.
			err = m.runConditionalOperator()
		case wordVal == "call":
			err = m.executeQuotation()
		case wordVal == ")":
			panic("Unexpected )")
		case wordVal == ";":
			panic("Unexpected ;")
		case spaceMatch.MatchString(string(wordVal)):
			// TODO: capture this space?
			continue
		case len(wordVal) == 0:
			continue
		default:
			if fn, ok := m.predefinedWords[wordVal]; ok {
				if ok {
					err = fn(m)
					if err != nil {
						return err
					}
				}
			} else if val, ok := m.definedWords[wordVal]; ok {
				// Run the definition of this word on this machine.
				err = executeWordsOnMachine(m, val.cloneCode())
				if err != nil {
					return err
				}
			} else if prefixFunc, ok := m.prefixWords[getPrefixOf(wordVal)]; ok {
				// Put the post-prefix string at the top of the stack, so it can
				// be used.
				m.pushValue(String(getNonPrefixOf(wordVal)))
				err = executeWordsOnMachine(m, prefixFunc.cloneCode())
			} else if err = m.tryLocalWord(string(wordVal)); err == LocalFuncRun {
				err = nil
				// return p.wrapError(fmt.Errorf("Undefined word: %v", wordVal))
			} else {
				return p.wrapError(fmt.Errorf("Undefined word: %v", wordVal))
			}
			// Evaluate a defined word, or complain if a word is not defined.

			// Plan of attack: Expand word definition, and push terms into current spot on stack.
			// Hrm....
		}
		if err != nil {
			// TODO: add some ways to debug here....
			fmt.Println("Execution stopped during word:  ", wordVal, " error: ", err)
			return err
		}
	}
	return nil
}

var ErrNoLocals = fmt.Errorf("No locals to try !")
var LocalFuncRun = fmt.Errorf("Nothing was wrong")

func (m *machine) tryLocalWord(wordName string) error {
	// TODO: In progress
	if len(m.locals) > 0 {
		if localFunc, found := m.locals[len(m.locals)-1][string(wordName)]; found {
			if fn, ok := localFunc.(quotation); ok {
				code := &codeQuotation{
					idx:          0,
					words:        fn.code,
					codePosition: fn.codePosition,
				}
				err := executeWordsOnMachine(m, code)
				if err != nil {
					return err
				}
			} else if fn, ok := localFunc.(GoFunc); ok {
				err := fn(m)
				if err != nil {
					return err
				}
			} else {
				return fmt.Errorf("Value is not a word!")
			}
			return LocalFuncRun
		}
	}
	return ErrNoLocals
}

func (m *machine) readWordBody(name word, c codeSequence) ([]word, error) {
	var err = error(nil)
	openPar, err2 := c.nextWord()
	if openPar != "(" {
		fmt.Println("ERRR0!")
		return nil, WordDefParenExpectedError
	}
	// TODO: come back and clean this up.
	if err != nil || err2 != nil {
		return nil, fmt.Errorf("Errors %s | %s", err.Error(), err2.Error())
	}

	stackComment := "( "
	var wordVal word
	// read the stack annotation for the word
	{
		pushes := 0
		pops := 0
		// Counting pushes
		for err == nil {
			wordVal, err = c.nextWord()
			if err != nil {
				return nil, err
			}

			if wordVal == "--" {
				stackComment += "-- "
				break
			}

			if wordVal == ")" {
				return nil, ParenBeforeStackDashError
			}
			pushes++
			stackComment += string(wordVal) + " "
		}
		// Counting pops
		for err == nil {
			wordVal, err = c.nextWord()
			if err != nil {
				return nil, err
			}

			if wordVal == "--" {
				return nil, UnexpectedStackDashError
			}
			if wordVal == ")" {
				stackComment += ")"
				break
			}
			pops++
			stackComment += string(wordVal) + " "
		}
	}
	// fmt.Println("stackComment is", stackComment)
	m.definedStackComments[name] = strings.TrimSpace(stackComment)

	wordDef := make([]word, 0)
	hasLocal := false
	for err == nil {
		wordVal, err := c.nextWord()
		if err != nil {
			return nil, err
		}
		if isLocalWordPrefix(wordVal) {
			hasLocal = true
		}
		if wordVal == ";" {
			break
		}
		wordDef = append(wordDef, wordVal)
	}
	if hasLocal == true {
		wordDef = append([]word{"get-locals"}, wordDef...)
		wordDef = append(wordDef, "drop-locals")
	}
	return wordDef, nil
}

func getNonPrefixOf(w word) word {
	return word(prefixMatchRegex.ReplaceAllString(string(w), ""))
}

// Prefix words can only start with symbols like :!@#$%^&*
func getPrefixOf(w word) word {
	return word(prefixMatchRegex.FindString(strings.TrimSpace(string(w))))
}

//
// NB. We're going to allocate a lot for now.
func stringFromWordDef(definition []word) string {
	// Copied from std lib's strings.Join
	if len(definition) == 0 {
		return ""
	}
	if len(definition) == 1 {
		return string(definition[0])
	}
	n := len(" ") * (len(definition) - 1)
	for i := 0; i < len(definition); i++ {
		n += len(definition[i])
	}
	b := make([]byte, n)
	bp := copy(b, definition[0])

	for _, s := range definition[1:] {
		bp += copy(b[bp:], " ")
		bp += copy(b[bp:], s)
	}
	return string(b)
}

// Document comments, which end in a ;
func (m *machine) readWordDocumentation(c codeSequence) error {
	word, err := c.nextWord()
	if err != nil {
		return err
	}
	if _, found := m.prefixWords[word]; !found {
	} else if _, found := m.predefinedWords[word]; !found {
	} else if _, found := m.definedWords[word]; !found {
		return fmt.Errorf("No definition for word: %s", word)
	}
	// TODO: Make this it's own loop
	wordDef, err := m.readWordBody(word, c)
	// Save the docs here
	m.helpDocs[word] = stringFromWordDef(wordDef)
	return err
}

// Prefix (:PRE) definitions, which use a prefix
func (m *machine) readPrefixDefinition(c codeSequence) error {
	pos := c.getcodePosition()
	prefix, err := c.nextWord()
	if err != nil {
		return err
	}
	if !prefixMatchRegex.MatchString(string(prefix)) {
		return InvalidPrefixCharError
	}
	wordDef, err := m.readWordBody(prefix, c)
	if err != nil {
		return err
	}
	m.prefixWords[prefix] = &codeQuotation{
		idx:          0,
		words:        wordDef,
		codePosition: pos,
	}
	return nil
}

// Used for : defined words
func (m *machine) readWordDefinition(c codeSequence) error {
	pos := c.getcodePosition()
	name, err := c.nextWord()
	wordDef, err := m.readWordBody(name, c)
	if err != nil {
		fmt.Println(c.getcodePosition())
		return err
	}
	m.definedWords[name] = &codeQuotation{
		idx:          0,
		words:        wordDef,
		codePosition: pos,
	}
	return nil
}

// func (m *machine) readQuotation(c *codeSequence) error {
// }

// Used for call word.
func (m *machine) executeQuotation() error {
	quoteVal := m.popValue()
	if q, ok := quoteVal.(quotation); ok {
		m.locals = append(m.locals, q.locals)
		executeWordsOnMachine(m, &codeQuotation{
			idx:          0,
			words:        q.code,
			codePosition: q.codePosition,
		})
		m.locals = m.locals[:len(m.locals)-1]
		return nil
	} else if q, ok := quoteVal.(GoFunc); ok {
		return q(m)

	} else {
		return QuotationTypeError
	}
}

type _type int

const (
	type_int _type = iota
	type_double
	type_else
)

func (m *machine) runConditionalOperator() error {
	falseVal := m.popValue()
	trueVal := m.popValue()
	booleanVal := m.popValue()
	if b, ok := booleanVal.(Boolean); ok {
		if b {
			m.pushValue(trueVal)
		} else {
			m.pushValue(falseVal)
		}
		return nil
	} else {
		// Return the stack to it's previous state, for debugging...?
		m.pushValue(booleanVal)
		m.pushValue(trueVal)
		m.pushValue(falseVal)
		return ConditionalTypeError
	}
}
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<






























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Added interpreter.go.



































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
// TODO: look for ways to split this code up better.
package pisc

import (
	"fmt"
	"io"
	"os"
	"regexp"
	"strconv"
	"strings"
	"unicode"
)

var (
	EOF                       = fmt.Errorf("End of file")
	EncodingFault             = fmt.Errorf("Encoding error!")
	ConditionalTypeError      = fmt.Errorf("Expected a boolean value, but didn't find it.")
	WordDefParenExpectedError = fmt.Errorf("Word definitions require a stack effect comment!")
	QuotationTypeError        = fmt.Errorf("Expected Quotation value, but didn't find it.")
	InvalidAddTypeError       = fmt.Errorf("Expected two integer values, but didn't find them.")
	UnexpectedStackDashError  = fmt.Errorf("Found unexpected -- in stack annotation")
	ParenBeforeStackDashError = fmt.Errorf("Found ) before -- in stack annotation")
	InvalidPrefixCharError    = fmt.Errorf("Found invalid character in prefix definition")
	ExitingProgram            = fmt.Errorf("User called `quit`, terminating program")
)

type word struct {
	str  string
	impl GoWord
}

// Module The type for a function that extends PISC via adding words
type Module struct {
	Author    string
	Name      string
	License   string
	DocString string
	Load      func(m *Machine) error
}

// LoadModules Load a bunch of modules into this instance of the VM
func (m *Machine) LoadModules(modules ...Module) error {
	for _, mod := range modules {
		err := mod.Load(m)
		// Append the name
		m.LoadedModules = append(m.LoadedModules, mod.Name)
		if err != nil {
			return fmt.Errorf("Error loading %s, %s", mod.Name, err.Error())
		}
	}
	return nil
}

func (w word) String() string {
	return w.str
}

type codeSequence interface {
	nextWord() (*word, error)
	getCodePosition() CodePosition
	wrapError(error) error
	// Returns a codeSequence that starts a 0 for the same code
	cloneCode() codeSequence
}

type Machine struct {
	// TODO: add a stack pointer so that we can keep from re-allocating a lot.
	// stackPtr int
	Values []StackEntry

	// Keep a list of loaded modules names here, for doing some detection
	LoadedModules []string

	// This is reallocated when locals are used
	Locals []map[string]StackEntry
	// A map from words to slices of words.
	DefinedWords map[string]*CodeQuotation
	// A map from prefixes to prefix words
	PrefixWords map[string]*CodeQuotation
	// A map from words to predefined words (words built in go)
	PredefinedWords map[string]GoWord
	// TODO: try to work this out later.
	DefinedStackComments map[string]string
	// The top of the stack it the end of the []StackEntry slice.
	// Every so many entries, we may need to re-allocate the stack....
	HelpDocs map[string]string

	// Each time we are asked for a symbol, supply the value here, then increment
	SymbolIncr int64

	// Budgeting information
	NumDispatches  int64
	IsBudgeted     bool
	DispatchBudget int64

	DebugTrace string
}

func (m *Machine) LogAndResetDispatchCount(w io.Writer) {
	fmt.Fprintln(w, m.NumDispatches, "dispatches have occured")
	m.NumDispatches = 0
}

// Not the most efficient way, but should work for starting
func (m *Machine) trace(msg string) {
	m.DebugTrace += msg
}

// Append uses an allocation pattern via Go to amortize the number of allocations performed
func (m *Machine) PushValue(entry StackEntry) {
	m.Values = append(m.Values, entry)
}

func (m *Machine) genSymbol() {
	m.PushValue(Symbol(m.SymbolIncr))
	m.SymbolIncr++
}

func (m *Machine) PopValue() StackEntry {
	if len(m.Values) <= 0 {
		panic("Data underflow")
	}

	popped := m.Values[len(m.Values)-1]
	// Snip the length of value
	m.Values = m.Values[:len(m.Values)-1]
	return popped
}

func noop(m *Machine) error {
	return nil
}

func (m *Machine) ExecuteString(code string, pos CodePosition) (err error) {
	/*
		defer func() {
			val := recover()
			if val != nil {
				err = fmt.Errorf("Fatal panic while running code: %v", val)
			}
		}()
	*/
	p, err := stringToQuotation(code, pos)
	if err != nil {
		return err
	}
	return m.execute(p)
}

var (
	// spaceMatch       = regexp.MustCompile(`[\s\r\n]+`)
	// floatMatch       = regexp.MustCompile(`^-?\d+\.\d+$`)
	// intMatch         = regexp.MustCompile(`^-?\d+$`)
	prefixMatchRegex = regexp.MustCompile(`^[-_:~!@$%^&*<>+?.]+`)
)

var prefixChars = []rune{'-', '_', ':', '~', '!', '@', '$', '%', '^', '&', '*', '<', '>', '+', '?', '.'}

func isPrefixChar(r rune) bool {
	for _, c := range prefixChars {
		if r == c {
			return true
		}
	}
	return false
}

func (m *Machine) hasPrefixWord(w word) (*CodeQuotation, string, bool) {
	if !isPrefixChar(rune(w.str[0])) {
		return nil, "", false
	}
	var prefix string

	for i, r := range w.str {
		if !isPrefixChar(r) {
			prefix = string(w.str[0:i])
			seq, ok := m.PrefixWords[prefix]
			return seq, string(w.str[i:len(w.str)]), ok
		}
	}
	return nil, "", false
}

type intPusher int

func (i intPusher) pushInt(m *Machine) error {
	m.PushValue(Integer(i))
	return nil
}

// Both of the functions below are non-idomatic shenanegains, but chould present some pretty large gains...
func tryParseInt(w *word, intVal *int) bool {
	if len(w.str) <= 0 {
		return false
	}
	// This is a very easy early exit oppurtunity for this function.
	if !strings.ContainsRune("0123456789-+", rune(w.str[0])) {
		return false
	}
	var err error
	*intVal, err = strconv.Atoi(string(w.str))
	ip := intPusher(*intVal)
	// This is a method reference, will it work, and will it be more efficient than a closure or the like?
	w.impl = ip.pushInt
	return err == nil
}

type floatPusher float64

func (f floatPusher) pushFloat(m *Machine) error {
	m.PushValue(Double(f))
	return nil
}

func tryParseFloat(w *word, floatVal *float64) bool {
	if len(w.str) <= 0 {
		return false
	}
	// This is a very easy early exit oppurtunity for this function.
	if !strings.ContainsRune("0123456789-+", rune(w.str[0])) {
		return false
	}
	var err error
	*floatVal, err = strconv.ParseFloat(string(w.str), 64)
	fp := floatPusher(*floatVal)
	w.impl = fp.pushFloat
	return err == nil
}

func wordIsWhitespace(w word) bool {
	for _, r := range w.str {
		if !unicode.IsSpace(r) {
			return false
		}
	}
	return true
}

func (m *Machine) execute(p *CodeQuotation) error {
	var old_idx = p.Idx
	p.Idx = 0
	var retErr = m.do_execute(p)
	p.Idx = old_idx
	return retErr
}

// This executes a given code sequence against a given machine
func (m *Machine) do_execute(p *CodeQuotation) (retErr error) {
	var err error
	var wordVal *word
	for err == nil {
		wordVal, err = p.nextWord()
		if err == io.EOF {
			return
		}
		if err != nil {
			return err
		}
		// Hrm...
		m.NumDispatches++
		if m.IsBudgeted && m.NumDispatches >= m.DispatchBudget {
			return fmt.Errorf("You tried to do too much!")
		}
		// I wonder if this will be too much?
		var intVal int
		var floatVal float64
		switch {
		case wordVal.impl != nil:
			err = wordVal.impl(m)
		case wordVal.str == "quit":
			return ExitingProgram

		case wordVal.str == "/*":
			commentWordLen := 0
			for err == nil {
				wordVal, err = p.nextWord()
				commentWordLen++
				if err != nil {
					break
				}
				if wordVal.str == "*/" {
					break
				}
			}
			wordVal.impl = func(m *Machine) error {
				// fmt.Println("From impl")
				for i := 0; i <= commentWordLen; i++ {
					p.nextWord()
				}
				return nil
			}

		case strings.HasPrefix(wordVal.str, "#"):
			// Skip line comment, potentialy work with it later, but not now.
			continue

		// Both of these functions set the .impl values for the int word in question
		case tryParseInt(wordVal, &intVal):
			m.PushValue(Integer(intVal))
		case tryParseFloat(wordVal, &floatVal):
			m.PushValue(Double(floatVal))

		// This word needs to be defined before we can allow other things to be defined
		case wordVal.str == ":":
			err = m.readWordDefinition(p)
		case wordVal.str == ":PRE":
			err = m.readPrefixDefinition(p)
			// err = m.readPatternDefinition
		case wordVal.str == ":DOC":
			err = m.readWordDocumentation(p)
		case wordVal.str == "error":
			pos := p.getCodePosition()
			str := m.PopValue().String()
			output := fmt.Sprint(pos.Source, " ", pos.LineNumber+1, ":", pos.Offset, ": ", str)
			return fmt.Errorf("%s", output)

		case wordVal.str == "}":
			panic("Unbalanced }!")
		case wordVal.str == "{":
			// fmt.Println("Not cached")
			__quot := &CodeQuotation{
				Words:         make([]*word, 0),
				CodePositions: make([]CodePosition, 0),
			}
			// This is the word that will be patched in holding the Quotation words we're about to patch out.
			// quote := make([]*word, 0)
			depth := 0
			for err == nil {
				wordVal, err = p.nextWord()
				if wordVal.str == "${" {
					depth++
				}
				if wordVal.str == "{" {
					depth++
				}
				if wordVal.str == "}" {
					depth--
				}
				// have to accomodate for the decrement in f
				if wordVal.str == "}" && depth == -1 {
					break
				}
				__quot.CodePositions = append(__quot.CodePositions, p.getCodePosition())
				__quot.Words = append(__quot.Words, wordVal)
			}
			_quot := &Quotation{
				inner:  __quot,
				locals: m.Locals[len(m.Locals)-1]}
			// Run the { } as a Quotation
			_quot.locals = m.Locals[len(m.Locals)-1]
			currIdx := len(m.Values)
			m.PushValue(_quot)
			//fmt.Println(_quot.inner.words)
			err := m.ExecuteQuotation()
			if err != nil {
				return p.wrapError(err)
			}
			vals := make([]StackEntry, len(m.Values)-currIdx)
			copy(vals, m.Values[currIdx:len(m.Values)])
			m.Values = m.Values[:currIdx]
			m.PushValue(&Vector{Elements: vals})

		case wordVal.str == "${":
			// Begin Quotation
			pos := p.getCodePosition()
			//quote := make([]*word, 0)
			quot := &CodeQuotation{
				Words:         make([]*word, 0),
				CodePositions: make([]CodePosition, 0),
			}
			depth := 0
			for err == nil {
				wordVal, err = p.nextWord()
				if wordVal.str == "{" {
					depth++
				}
				if wordVal.str == "${" {
					depth++
				}
				if wordVal.str == "}" {
					depth--
				}
				// have to accomodate for the decrement in f
				if wordVal.str == "}" && depth == -1 {
					break
				}
				quot.CodePositions = append(quot.CodePositions, p.getCodePosition())
				quot.Words = append(quot.Words, wordVal)
			}
			// anchorWord.str = fmt.Sprint("herp", len(__quot.words))
			// Run the { } as a Quotation
			_quot := &Quotation{
				inner:  quot,
				locals: m.Locals[len(m.Locals)-1],
			}
			join, err := stringToQuotation(`"" str-join`, pos)
			if err != nil {
				panic(err)
			}
			_join := &Quotation{
				inner:  join,
				locals: m.Locals[len(m.Locals)-1],
			}
			_quot.locals = m.Locals[len(m.Locals)-1]
			currIdx := len(m.Values)
			// m.PushValue(_quot)
			err = m.execute(_quot.inner)
			if err != nil {
				return err
			}
			vals := make([]StackEntry, len(m.Values)-currIdx)
			copy(vals, m.Values[currIdx:len(m.Values)])
			m.Values = m.Values[:currIdx]
			m.PushValue(&Vector{Elements: vals})
			err = m.execute(_join.inner)

		case wordVal.str == "[":
			// Begin Quotation
			__quot := &CodeQuotation{
				Words:         make([]*word, 0),
				CodePositions: make([]CodePosition, 0),
			}
			depth := 0
			for err == nil {
				wordVal, err = p.nextWord()
				if wordVal.str == "[" {
					depth++
				}
				if wordVal.str == "]" {
					depth--
				}
				// have to accomodate for the decrement in f
				if wordVal.str == "]" && depth == -1 {
					break
				}
				__quot.CodePositions = append(__quot.CodePositions, p.getCodePosition())
				__quot.Words = append(__quot.Words, wordVal)
			}
			_Quotation := &Quotation{
				inner:  __quot,
				locals: m.Locals[len(m.Locals)-1],
			}
			// _Quotation.locals = m.Locals[len(m.Locals)-1]
			m.PushValue(_Quotation)

		case wordVal.str == "]":
			// panic here.
			panic("Unbalanced ]")
		case strings.HasPrefix(wordVal.str, `"`):
			// This is the case for string literals
			// Slice out the " chracter
			strVal := strings.TrimSuffix(strings.TrimPrefix(wordVal.str, `"`), `"`)

			m.PushValue(String(strVal))
		case wordVal.str == ")":
			panic("Unexpected )")
		case wordVal.str == ";":
			panic("Unexpected ;")
		case wordIsWhitespace(*wordVal):
			wordVal.impl = func(m *Machine) error {
				return nil
			}
			// TODO: capture this space?
			continue
		case len(wordVal.str) == 0:
			wordVal.impl = func(m *Machine) error {
				return nil
			}
			continue
		default:
			if fn, ok := m.PredefinedWords[wordVal.str]; ok {
				if ok {
					err = fn(m)
					if err != nil {
						return err
					}
					wordVal.impl = fn
				}
			} else if val, ok := m.DefinedWords[wordVal.str]; ok {
				// Run the definition of this word on this machine.
				// val.idx = 0
				err = m.execute(val)
				if err != nil {
					return err
				}
				// This is a closure, so I'll need to be careful about it's performance
				wordVal.impl = func(m *Machine) error {
					// val.idx = 0
					return m.execute(val)
				}
			} else if prefixFunc, nonPrefix, ok := m.hasPrefixWord(*wordVal); ok {
				// Put the post-prefix string at the top of the stack, so it can
				// be used.
				m.PushValue(String(nonPrefix))
				err = m.execute(prefixFunc)
				if err != nil {
					return err
				}
				// Captures prefix/nonprefix
				wordVal.impl = func(m *Machine) error {
					m.PushValue(String(nonPrefix))
					return m.execute(prefixFunc)
				}
			} else if err = m.tryLocalWord(wordVal); err == LocalFuncRun || err == WordNotFound {
				if err == WordNotFound {
					return p.wrapError(fmt.Errorf("Undefined word: %v, %v", wordVal, err))
				}
				err = nil
			} else {
				return p.wrapError(err)
			}
		}
		if err != nil {
			// TODO: add some ways to debug here....
			fmt.Fprintln(os.Stderr, "Execution stopped during word:  ", wordVal, " error: ", err)
			return err
		}
	}
	return nil
}

var ErrNoLocals = fmt.Errorf("No locals to try !")
var LocalFuncRun = fmt.Errorf("Nothing was wrong")
var WordNotFound = fmt.Errorf("word was undefined")

func (c *Quotation) execute(m *Machine) error {

	var old_idx = c.inner.Idx
	c.inner.Idx = 0
	m.Locals = append(m.Locals, c.locals)

	var err = m.execute(c.inner)

	m.Locals = m.Locals[:len(m.Locals)-1]
	c.inner.Idx = old_idx
	return err
}

func (m *Machine) tryLocalWord(w *word) error {
	// TODO: In progress
	if len(m.Locals) > 0 {
		if localFunc, found := m.Locals[len(m.Locals)-1][w.str]; found {
			if fn, ok := localFunc.(*Quotation); ok {
				// Push the locals on
				m.Locals = append(m.Locals, fn.locals)
				err := fn.execute(m)
				// Take the local off
				m.Locals = m.Locals[:len(m.Locals)-1]
				if err != nil {
					return err
				}
				return LocalFuncRun
			} else if fn, ok := localFunc.(GoFunc); ok {
				// fmt.Println("HEX")
				err := fn(m)
				if err != nil {
					return err
				}
			} else {
				return WordNotFound
			}
			return LocalFuncRun
		} else {
			return fmt.Errorf("word not found %v", w.str)
		}
	}
	return ErrNoLocals
}

func (m *Machine) readWordBody(name word, c codeSequence) ([]*word, []CodePosition, error) {
	var err = error(nil)
	openPar, err2 := c.nextWord()
	if openPar.str != "(" {
		fmt.Fprintln(os.Stderr, "ERRR0!")
		return nil, nil, WordDefParenExpectedError
	}
	// TODO: come back and clean this up.
	if err != nil || err2 != nil {
		return nil, nil, fmt.Errorf("Errors %s | %s", err.Error(), err2.Error())
	}

	stackComment := "( "
	var wordVal *word
	// read the stack annotation for the word
	{
		pushes := 0
		pops := 0
		// Counting pushes
		for err == nil {
			wordVal, err = c.nextWord()
			if err != nil {
				return nil, nil, err
			}

			if wordVal.str == "--" {
				stackComment += "-- "
				break
			}

			if wordVal.str == ")" {
				return nil, nil, ParenBeforeStackDashError
			}
			pushes++
			stackComment += wordVal.str + " "
		}
		// Counting pops
		for err == nil {
			wordVal, err = c.nextWord()
			if err != nil {
				return nil, nil, err
			}

			if wordVal.str == "--" {
				return nil, nil, UnexpectedStackDashError
			}
			if wordVal.str == ")" {
				stackComment += ")"
				break
			}
			pops++
			stackComment += wordVal.str + " "
		}
	}
	// fmt.Println("stackComment is", stackComment)
	m.DefinedStackComments[name.str] = strings.TrimSpace(stackComment)

	wordDef := make([]*word, 0)
	wordInfo := make([]CodePosition, 0)
	hasLocal := false
	for err == nil {
		wordVal, err := c.nextWord()
		if err != nil {
			return nil, nil, err
		}
		if isLocalWordPrefix(*wordVal) {
			hasLocal = true
		}
		if wordVal.str == ";" {
			break
		}
		wordDef = append(wordDef, wordVal)
		wordInfo = append(wordInfo, c.getCodePosition())
	}
	if hasLocal == true {
		wordDef = append([]*word{&word{str: "get-locals"}}, wordDef...)
		wordInfo = append([]CodePosition{CodePosition{Source: "Hardcoded"}}, wordInfo...)
		wordDef = append(wordDef, &word{str: "drop-locals"})
		wordInfo = append(wordInfo, CodePosition{Source: "Hardcoded"})
	}
	// fmt.Println(wordDef, wordInfo)
	return wordDef, wordInfo, nil
}

func getNonPrefixOf(w word) string {
	return prefixMatchRegex.ReplaceAllString(w.str, "")
}

// Prefix words can only start with symbols like :!@#$%^&*
func getPrefixOf(w word) string {
	return prefixMatchRegex.FindString(strings.TrimSpace(w.str))
}

// NB. We're going to allocate a lot for now.
func stringFromWordDef(definition []*word) string {
	// Copied from std lib's strings.Join
	if len(definition) == 0 {
		return ""
	}
	if len(definition) == 1 {
		return definition[0].str
	}
	n := len(" ") * (len(definition) - 1)
	for i := 0; i < len(definition); i++ {
		n += len(definition[i].str)
	}
	b := make([]byte, n)
	bp := copy(b, definition[0].str)

	for _, s := range definition[1:] {
		bp += copy(b[bp:], " ")
		bp += copy(b[bp:], s.str)
	}
	return string(b)
}

// Document comments, which end in a ;
func (m *Machine) readWordDocumentation(c codeSequence) error {
	word, err := c.nextWord()
	if err != nil {
		return err
	}
	if _, found := m.PrefixWords[word.str]; !found {
	} else if _, found := m.PredefinedWords[word.str]; !found {
	} else if _, found := m.DefinedWords[word.str]; !found {
		return fmt.Errorf("No definition for word: %s", word)
	}
	// TODO: Make this it's own loop
	wordDef, _, err := m.readWordBody(*word, c)
	// Save the docs here
	m.HelpDocs[word.str] = stringFromWordDef(wordDef)
	return err
}

// Prefix (:PRE) definitions, which use a prefix
func (m *Machine) readPrefixDefinition(c codeSequence) error {
	prefix, err := c.nextWord()
	if err != nil {
		return err
	}
	if !prefixMatchRegex.MatchString(prefix.str) {
		return InvalidPrefixCharError
	}
	wordDef, positions, err := m.readWordBody(*prefix, c)
	if err != nil {
		return err
	}
	m.PrefixWords[prefix.str] = &CodeQuotation{
		Idx:           0,
		Words:         wordDef,
		CodePositions: positions,
	}
	return nil
}

// Used for : defined words
func (m *Machine) readWordDefinition(c codeSequence) error {
	name, err := c.nextWord()
	wordDef, positions, err := m.readWordBody(*name, c)
	if err != nil {
		fmt.Println(c.getCodePosition())
		return err
	}
	m.DefinedWords[name.str] = &CodeQuotation{
		Idx:           0,
		Words:         wordDef,
		CodePositions: positions,
	}
	return nil
}

// Used for call word.
func (m *Machine) ExecuteQuotation() error {
	quoteVal := m.PopValue()
	if q, ok := quoteVal.(*Quotation); ok {
		// q.inner = q.inner.cloneCode()
		m.Locals = append(m.Locals, q.locals)
		err := m.execute(q.toCode())
		m.Locals = m.Locals[:len(m.Locals)-1]
		// Works if the err is nil or
		return err
	} else if q, ok := quoteVal.(GoFunc); ok {
		return q(m)

	} else {
		return QuotationTypeError
	}
}

type _type int

const (
	type_int _type = iota
	type_double
	type_else
)

func (m *Machine) runConditionalOperator() error {
	falseVal := m.PopValue()
	trueVal := m.PopValue()
	booleanVal := m.PopValue()
	if b, ok := booleanVal.(Boolean); ok {
		if b {
			m.PushValue(trueVal)
		} else {
			m.PushValue(falseVal)
		}
		return nil
	} else {
		// Return the stack to it's previous state, for debugging...?
		m.PushValue(booleanVal)
		m.PushValue(trueVal)
		m.PushValue(falseVal)
		return ConditionalTypeError
	}
}

Changes to io.go.

1
2
3
4
5
6
7
8
9
10
11






























































































































































12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90

91
92
93
94
95
96
97
98
99
100



101
102
103
104


105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135

136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157

158
159
160
161

162
package main

import (
	"bufio"
	"fmt"
	"io"
	"io/ioutil"
	"os"
	"strings"
)































































































































































type PISCReader interface {
	io.RuneReader
	io.ByteReader
	io.Reader
	ReadString(delim byte) (string, error)
}

func makeReader(reader PISCReader) Dict {
	file := make(Dict)
	EOF := false
	file["read-byte"] = GoFunc(func(m *machine) error {
		b, err := reader.ReadByte()
		if err == io.EOF {
			EOF = true
			err = nil
		}
		if err != nil {
			return err
		}
		m.pushValue(Integer(int(b)))
		return nil
	})
	file["read-rune"] = GoFunc(func(m *machine) error {
		ch, _, err := reader.ReadRune()
		if err == io.EOF {
			EOF = true
			err = nil
		}
		if err != nil {
			return err
		}
		m.pushValue(String(string(ch)))
		return nil
	})
	file["read-line"] = GoFunc(func(m *machine) error {
		str, err := reader.ReadString('\n')
		if err == io.EOF {
			EOF = true
			err = nil
		}
		if err != nil {
			return err
		}
		// Deal with \r on windows
		m.pushValue(String(strings.TrimRight(str, "\r\n")))
		return nil
	})
	file["EOF"] = GoFunc(func(m *machine) error {
		m.pushValue(Boolean(EOF))
		return nil
	})
	return file
}

func (m *machine) loadIOWords() error {
	m.predefinedWords["import"] = GoWord(func(m *machine) error {
		fileName := m.popValue().(String)
		data, err := ioutil.ReadFile(string(fileName))
		if err != nil {
			return err
		}
		// Reading in the data
		code := &codeList{
			idx:  0,
			code: string(data),
			codePosition: codePosition{
				source: "file:" + string(fileName),
			},
		}
		err = executeWordsOnMachine(m, code)
		if err != nil {
			return err
		}
		return nil
	})

	m.predefinedWords["filepath>string"] = GoWord(func(m *machine) error {
		fileName := m.popValue().(String)
		data, err := ioutil.ReadFile(string(fileName))

		if err != nil {
			return err
		}
		m.pushValue(String(string(data)))
		return nil
	})

	m.predefinedWords["open-file-writer"] = GoWord(func(m *machine) error {
		fileName := m.popValue().(String)
		goFile, err := os.Create(string(fileName))



		if err != nil {
			return err
		}
		err = goFile.Chmod(os.ModePerm | 0644)


		if err != nil {
			return err
		}
		fileWriter := bufio.NewWriter(goFile)
		var file = Dict(make(map[string]stackEntry))
		file["close"] = GoFunc(func(m *machine) error {
			return goFile.Close()
		})
		file["write-line"] = GoFunc(func(m *machine) error {
			str := m.popValue().String()
			_, err := fileWriter.WriteString(str + "\n")
			fileWriter.Flush()
			return err
		})

		file["write-string"] = GoFunc(func(m *machine) error {
			str := m.popValue().String()
			_, err := fileWriter.WriteString(str)
			fileWriter.Flush()
			return err
		})
		m.pushValue(file)

		return nil

	})

	m.predefinedWords["open-file-reader"] = GoWord(func(m *machine) error {
		var fileName = m.popValue().(String)
		// var file = Dict(make(map[string]stackEntry))
		goFile, err := os.Open(string(fileName))

		if err != nil {
			return err
		}
		var reader = bufio.NewReader(goFile)
		file := makeReader(reader)
		file["close"] = GoFunc(func(m *machine) error {
			return goFile.Close()
		})
		m.pushValue(file)
		/*
			toExec := &codeList{
				idx:    0,
				code:   quot,
				spaces: make([]string, 0),
			}

			executeWordsOnMachine(m, toExec)
		*/
		return nil
	})

	m.predefinedWords["priv_puts"] = NilWord(func(m *machine) {

		data := m.popValue().(String)
		fmt.Println(string(data))
	})
	return nil

}
|










>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







|


|








|


|








|


|









|


|
|





|
<
|





|
<
<
<
|
<
|
<
|
|
|
<
<
<
<
<
<
>
|
|
|
<
|
<
|
<
<
<
>
>
>
|
|
|
<
>
>
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
>
|
|
|
<
<
<
|
<
<
<
<
<
<
<
|

<
<
<
<
<
<
>
|
<
<
<
>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224

225
226
227
228
229
230
231



232

233

234
235
236






237
238
239
240

241

242



243
244
245
246
247
248

249
250
251
252
253




























254
255
256
257



258







259
260






261
262



263
264
package pisc

import (
	"bufio"
	"fmt"
	"io"
	"io/ioutil"
	"os"
	"strings"
)

var ModIOCore = Module{
	Author:    "Andrew Owen",
	Name:      "IOCore",
	License:   "MIT",
	DocString: "Some File I/O bits",
	Load:      loadIOCore,
}

/*
// Windows only right now!
func getch(m *Machine) error {
	char := C.getch()
	m.PushValue(Integer(char))
	return nil
}
// m.AddGoWord*Change?*("getkey", "( -- keyval )", GoWord(getch))
*/

func _emitESC(m *Machine) error {
	m.PushValue(String("\x1B"))
	return nil
}

func _getStrAtPath(m *Machine) error {
	fileName := m.PopValue().(String)
	data, err := ioutil.ReadFile(string(fileName))
	if err != nil {
		return err
	}
	m.PushValue(String(string(data)))
	return nil
}

func _saveStrToPath(m *Machine) error {
	fileName := m.PopValue().(String)
	data := m.PopValue().String()
	return ioutil.WriteFile(string(fileName), []byte(data), os.FileMode(0644))
}

func _openFileWriter(m *Machine) error {
	fileName := m.PopValue().(String)
	goFile, err := os.Create(string(fileName))
	if err != nil {
		return err
	}
	// err = goFile.Chmod(os.ModePerm | 0644)
	if err != nil {
		return err
	}
	fileWriter := bufio.NewWriter(goFile)
	var file = Dict(make(map[string]StackEntry))
	file["close"] = GoFunc(func(m *Machine) error {
		return goFile.Close()
	})
	file["write-line"] = GoFunc(func(m *Machine) error {
		str := m.PopValue().String()
		_, err := fileWriter.WriteString(str + "\n")
		fileWriter.Flush()
		return err
	})

	file["write-string"] = GoFunc(func(m *Machine) error {
		str := m.PopValue().String()
		_, err := fileWriter.WriteString(str)
		fileWriter.Flush()
		return err
	})
	m.PushValue(file)

	return m.ImportPISCAsset("stdlib/io.pisc")
}

func _openFileReader(m *Machine) error {
	var fileName = m.PopValue().(String)
	// var file = Dict(make(map[string]StackEntry))
	goFile, err := os.Open(string(fileName))
	if err != nil {
		return err
	}
	var reader = bufio.NewReader(goFile)
	file := MakeReader(reader)
	file["close"] = GoFunc(func(m *Machine) error {
		return goFile.Close()
	})
	m.PushValue(file)
	return nil
}

func _priv_puts(m *Machine) error {
	data := m.PopValue().(String)
	fmt.Print(string(data))
	return nil
}

func loadIOCore(m *Machine) error {
	NL := "\n"
	m.AddGoWordWithStack(
		"import",
		"( file-path -- )",
		"Loads the PISC file at the given path",
		importPISC)

	m.AddGoWordWithStack("ESC",
		"( -- ESC-char )",
		"Emits the terminal escape char, for use in terminal escape codes",
		_emitESC)

	// TODO: Consider deleting this later, if it isn't used.
	m.AddGoWordWithStack(
		"import-asset",
		"( file-path -- ? )",
		"Load the packed script (mostly used for the standard library)",
		importAssetPISC)

	m.AddGoWordWithStack(
		"get-str-at-path",
		"( path -- contents )",
		"Load the contents at path into a string",
		_getStrAtPath)

	m.AddGoWordWithStack(
		"save-str-to-path",
		"( str path -- )",
		"Save the value in str to the file at path",
		_saveStrToPath)

	m.AppendToHelpTopic("readers",
		`Readers can currently be made from strings or files

They support the following calls (assuming a reader in $reader)

- <code>$reader .read-byte<code> reads a single byte, and puts it atop the stack
- <code>$reader .read-rune<code> reads a single UTF-8 rune
- <code>$reader .read-line<code> reads a single line into a string

`)
	m.AddGoWordWithStack(
		"open-file-writer",
		"( path -- file-writer )",
		"Opens a file-writer that that writes to the supplied path, if can be made"+NL+
			"A file-writer supports 3 calls: "+NL+
			`<code>"str" $writer .write-line<code>, which writes "str\n" to the file`+NL+
			`- <code>"str" $writer .write-string<code>, which writes "str" to the file`+NL+
			`- <code>"str" $writer .write-string<code>, which writes "str" to the file`+NL,
		_openFileWriter)

	m.AddGoWordWithStack(
		"open-file-reader",
		"( path -- file-reader )",
		"Opens a file-readr that reads from the file at the supplied path, if a file exists at the given path"+NL+
			"Support the standard @reader calls, as well as <code>.close<code>"+NL+
			"See also @readers",
		_openFileReader)

	m.AddGoWordWithStack("priv_puts", "( str -- )", "Prints str to STDOUT", _priv_puts)
	return nil
}

type PISCReader interface {
	io.RuneReader
	io.ByteReader
	io.Reader
	ReadString(delim byte) (string, error)
}

func MakeReader(reader PISCReader) Dict {
	file := make(Dict)
	EOF := false
	file["read-byte"] = GoFunc(func(m *Machine) error {
		b, err := reader.ReadByte()
		if err == io.EOF {
			EOF = true
			err = nil
		}
		if err != nil {
			return err
		}
		m.PushValue(Integer(int(b)))
		return nil
	})
	file["read-rune"] = GoFunc(func(m *Machine) error {
		ch, _, err := reader.ReadRune()
		if err == io.EOF {
			EOF = true
			err = nil
		}
		if err != nil {
			return err
		}
		m.PushValue(String(string(ch)))
		return nil
	})
	file["read-line"] = GoFunc(func(m *Machine) error {
		str, err := reader.ReadString('\n')
		if err == io.EOF {
			EOF = true
			err = nil
		}
		if err != nil {
			return err
		}
		// Deal with \r on windows
		m.PushValue(String(strings.TrimRight(str, "\r\n")))
		return nil
	})
	file["EOF"] = GoFunc(func(m *Machine) error {
		m.PushValue(Boolean(EOF))
		return nil
	})
	return file
}

func importPISC(m *Machine) error {

	fileName := m.PopValue().(String)
	data, err := ioutil.ReadFile(string(fileName))
	if err != nil {
		return err
	}
	// Reading in the data
	code, err := stringToQuotation(string(data), CodePosition{



		Source: "file:" + string(fileName),

	})

	if err != nil {
		return err
	}






	err = m.execute(code)
	if err != nil {
		return err
	}

	return nil

}




func (m *Machine) ImportPISCAsset(assetkey string) error {
	data, err := Asset(string(assetkey))
	if err != nil {
		return err
	}

	// Reading in the data
	code, err := stringToQuotation(string(data), CodePosition{Source: "file:" + string(assetkey)})
	if err != nil {
		return err
	}




























	err = m.execute(code)
	if err != nil {
		return err
	}



	return nil







}







func importAssetPISC(m *Machine) error {
	fileName := m.PopValue().(String).String()



	return m.ImportPISCAsset(fileName)
}

Deleted io.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* The IO libraries of PISC */

/* This doc isn't for a specific word */
:DOC IO ( -- ) 
# Readers

Currently, PISC has reading and writing objects that are bound to underlying go based bufio objects. Each reader has the following functions loaded into its dictionary entries:

## read-byte ( -- byte )
Reads a byte from the reader as an int, setting the readers EOF to true if the end of the file is reached

## read-rune ( -- rune )
Reads a UTF-8 rune from the reader

## read-line ( -- str )
Reads a line from the reader, trimming '\r' and '\n' off the end

## EOF ( -- EOF? )
Returns true if the end of the file has been reached, false otherwise

;

:DOC open-file-reader ( path -- Reader ) File readers have a `close` entry that can be called to close the underlying file handle ;

:DOC open-file-writer ( path -- writer ) Writers are simpler than readers, as they can only write lines or strings ;
	
:DOC write-string ( str -- ) Write str to the attached writer ;

:DOC write-line ( str -- ) Write str to the attached writer, appending \n to the end ;

:DOC filepath>string ( fileName -- strContents )  A utility function for reading small files into strings. Do not use on large files  ;

:DOC priv_puts ( str -- )  priv_puts is the underlying word used for printing values  ;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<


































































Added irckit.go.



































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
package pisc

import (
	"fmt"
	"time"

	"gopkg.in/sorcix/irc.v2"
)

var ModIRCKit = Module{
	Author:    "Andrew Owen",
	Name:      "IRCKit",
	License:   "MIT",
	DocString: "A wrapper around IRC, built to make it easy to write IRC bots",
	Load:      loadIRCKit,
}

var NL = "\n"

type ircConn irc.Conn
type ircMessage irc.Message

var InvalidIRCMessage = fmt.Errorf("IRC message formmated incorrectly")

func (conn *ircConn) close(m *Machine) error {
	return ((*irc.Conn)(conn)).Close()
}

func (conn *ircConn) write(m *Machine) error {
	str := m.PopValue().String()
	msg := irc.ParseMessage(str)

	if msg == nil {
		return InvalidIRCMessage
	}

	err := (*irc.Conn)(conn).Encode(msg)
	go func() { fmt.Println(msg) }()
	if err != nil {
		return err
	}
	return nil
}

func (_msg ircMessage) getMessageCommand(m *Machine) error {
	msg := irc.Message(_msg)
	m.PushValue(String(msg.Command))
	return nil
}

func (_msg ircMessage) getMessagePrefixIsUserLike(m *Machine) error {
	msg := irc.Message(_msg)
	m.PushValue(Boolean(msg.IsHostmask()))
	return nil
}

func (_msg ircMessage) getMessagePrefixIsServerLike(m *Machine) error {
	msg := irc.Message(_msg)
	m.PushValue(Boolean(msg.IsServer()))
	return nil
}

func (_msg ircMessage) getName(m *Machine) error {
	msg := irc.Message(_msg)
	m.PushValue(String(msg.Name))
	return nil
}

func (_msg ircMessage) getParams(m *Machine) error {
	msg := irc.Message(_msg)
	params := make([]StackEntry, len(msg.Params))
	for i := 0; i < len(msg.Params); i++ {
		params[i] = String(msg.Params[i])
	}
	m.PushValue(&Vector{Elements: params})
	return nil
}

func (_msg ircMessage) msgRaw(m *Machine) error {
	msg := irc.Message(_msg)
	m.PushValue(String(string(msg.Bytes())))
	return nil
}

func (conn *ircConn) readMessage(m *Machine) error {
	_msg, err := (*irc.Conn)(conn).Decode()
	if err != nil {
		return err
	}

	buf := _msg.Bytes()

	go func() { fmt.Println("READ:", string(buf)) }()
	msg := (*ircMessage)(_msg)
	msgDict := Dict{
		"command":       GoFunc(msg.getMessageCommand),
		"name":          GoFunc(msg.getName),
		"is-userlike":   GoFunc(msg.getMessagePrefixIsUserLike),
		"is-serverlike": GoFunc(msg.getMessagePrefixIsServerLike),
		"params":        GoFunc(msg.getParams),
		"raw-str":       GoFunc(msg.msgRaw),
	}

	m.PushValue(msgDict)
	return nil
}

func (conn *ircConn) readMessageString(m *Machine) error {
	msg, err := (*irc.Conn)(conn).Decode()
	if err != nil {
		return err
	}
	str := String(msg.Bytes())
	go func() { fmt.Println("READ:", string(str)) }()
	m.PushValue(str)
	return nil
}

func ircDial(m *Machine) error {
	addr := m.PopValue().String()
	conn, err := irc.Dial(addr)
	if err != nil {
		return err
	}
	stackConn := (*ircConn)(conn)

	connDict := Dict{
		"close":               GoFunc(stackConn.close),
		"send-message":        GoFunc(stackConn.write),
		"recieve-message-str": GoFunc(stackConn.readMessageString),
		"recieve-message":     GoFunc(stackConn.readMessage),
	}

	m.PushValue(connDict)
	return nil
}

func attachIRC_GLOBALS(m *Machine, globals Dict) {
	m.AddGoWordWithStack(
		"IRC_GLOBALS",
		" ( -- dict ) ",
		"Puts the IRC_GLOBALS dict on the stack, allowing you to save and store information out of it.",
		func(inner_m *Machine) error {
			inner_m.PushValue(globals)
			return nil
		})
}

func buildIRCEvalVM() (*Machine, error) {
	ircVM := &Machine{
		Values:               make([]StackEntry, 0),
		DefinedWords:         make(map[string]*CodeQuotation),
		DefinedStackComments: make(map[string]string),
		PredefinedWords:      make(map[string]GoWord),
		PrefixWords:          make(map[string]*CodeQuotation),
		HelpDocs:             make(map[string]string),
		DispatchBudget:       2000,
		IsBudgeted:           true,
	}
	err := ircVM.LoadModules(
		ModLoopCore,
		ModLocalsCore,
		ModDictionaryCore,
		ModStringsCore,
		ModMathCore,
		ModBoolCore,
		ModVectorCore,
		ModSymbolCore,
		ModRandomCore,
		ModPISCCore)
	if err != nil {
		return nil, err
	}

	vmGlobals := make(Dict)
	attachIRC_GLOBALS(ircVM, vmGlobals)
	err = ircVM.ExecuteString("seed-rand-time", CodePosition{Source: "irckit.go"})
	if err != nil {
		return nil, err
	}
	return ircVM, nil
}

func (ircVM *Machine) ircRestart(m *Machine) error {
	ircVM.ExecuteString("IRC_GLOBALS", CodePosition{Source: "irckit.go"})
	vmGlobals, ok := ircVM.PopValue().(Dict)
	if !ok {
		//
		fmt.Println("Somehow IRC_GLOBALS got corrupted, so it's getting reset")
		vmGlobals = make(Dict)
	}

	vm, err := buildIRCEvalVM()
	if err != nil {
		time.Sleep(time.Minute * 1)
		return err
	}
	attachIRC_GLOBALS(vm, vmGlobals)
	ircVM = vm
	return nil
}

func safeEval(m *Machine, code string) (err error) {
	defer func() {
		pErr := recover()
		if pErr != nil {
			err = fmt.Errorf("Error while running irc eval %v", pErr)
		}
	}()
	err = m.ExecuteString(code, CodePosition{Source: "IRC Connection"})
	return
}

func (ircVM *Machine) evalOnVM(m *Machine) error {
	code := string(m.PopValue().(String))
	err := safeEval(ircVM, code)
	// If there is an error, put it on the stack
	if err != nil {
		m.PushValue(&Vector{
			Elements: []StackEntry{String(err.Error())},
		})
	} else {
		m.PushValue(&Vector{Elements: ircVM.Values})
	}

	// Reset the intermediate VM state.
	ircVM.Values = make([]StackEntry, 0)
	ircVM.NumDispatches = 0
	return nil
}

func stackIRCEvalVM(m *Machine) error {
	vm, err := buildIRCEvalVM()
	if err != nil {
		return err
	}
	vmDict := Dict{
		"restart": GoFunc(vm.ircRestart),
		"eval":    GoFunc(vm.evalOnVM),
	}
	m.PushValue(vmDict)
	return nil
}

func loadIRCKit(m *Machine) error {
	m.AppendToHelpTopic("irc-message",
		"An irc-message is a dict which supports the following calls (assuming a irc-message in $msg)"+NL+
			"`$msg .command`. ( -- command-str ) Retrives the command for the message, for example, PRIVMSG or JOIN"+NL+
			"`$msg .name`. Gets the nick or server name that sent the message"+NL+
			"`$msg .is-userlike`. ( -- userlike? ) Returns a boolean indicating if the name looks like a username"+NL+
			"`$msg .is-serverlike`. ( -- serverlike? ) Returns a boolean indicating if the name looks like a server name"+NL+
			"`$msg .params`. ( -- params-vec ) Returns a boolean indicating if the name looks like a server name"+NL+
			"`$msg .raw-str. ( -- str ) Gets the raw string of bytes that formed the underlying IRC message`"+NL+
			"")
	m.AddGoWordWithStack(
		"irc-dial",
		"( addr-str -- conn )",
		"Returns a an irc connnection, which supports the folloing calls (assuming a var $conn):`"+NL+
			"`$conn .close` ( -- ) which closes the underlying connnection"+NL+NL+

			"`\"/PRIVMSG #channel message\" $conn .send-message` ( message-str -- ) which takes an IRC command in string form,"+
			"parses it, and attemps to send it on the connection behind `$conn`"+NL+
			"`$conn .recieve-message-str` ( -- message-str ) which waits for a message on the connection, and then pulls the string form of that message out and puts it on the stack"+NL+
			"`$conn .recieve-message` ( -- message-dict ) which waits for a message on `$conn`, and then puts an @irc-message object on the stack"+NL+
			"",
		ircDial)
	m.AddGoWordWithStack(
		"<irc-vm>",
		"( -- vm )",
		"Builds a PISC vm that has been harded for IRC. AN IRC VM supports the following calls:"+NL+
			"`$vm .eval` ( code -- result-vec ) Takes code, evaluates on $vm, and pushes a vector that contains the results "+
			"of running the code. Example:  "+NL+
			"`\"1 2 +\" $vm .eval` => `{ 3 }`"+NL+
			"`$vm .restart` "+NL+
			""+NL+
			"",
		stackIRCEvalVM)
	return nil
}

// IDEAS:
/*

:ON JOIN ( %{ .nick .channel } -- )
    ->>nick :nick
    ->channel :channel
;

*/

Changes to lexer.go.

1
2
3
4
5

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41








42
43




44
45
















46
47
48
49
50
51
52
53
54
55



56
57
58
59
60
61
62
63


















64
65
66
67
68
69
70
71
72
73
74
75
76

77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113

114

115
116
117
118
119
120
121
...
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165


166




167
168
169

170
171
172
173
174
175
176
177
178
179
package main

import (
	"fmt"
	"io"

	"unicode/utf8"
)

/*
The plan is to hav the source field indicate
where this code came from. Potential values are currently
stdin:
file:
db:
*/
type codePosition struct {
	lineNumber int
	offset     int
	source     string
}

type codeList struct {
	codePosition
	idx  int
	code string
	// This is for error handling purposes only, indicating where a given word defintion starts
	fileName string
}

func (c codeList) getcodePosition() codePosition {
	return c.codePosition
}

func (c codeList) wrapError(e error) error {
	return fmt.Errorf("%v\n in File: %v Line: %v column %v", e.Error(), c.source, c.lineNumber, c.offset)
}

func (c codeList) cloneCode() codeSequence {
	return &codeList{
		idx:          0,
		code:         c.code,








		codePosition: c.codePosition,
	}




}

















func (c *codeList) nextWord() (word, error) {
	currentWord := ""
	skipChar := false
	inString := false
	inLineComment := false
	currentLine := ""
	if c.idx >= len(c.code) {
		return "", io.EOF
	}
	for _, v := range c.code[c.idx:] {



		width := utf8.RuneLen(v)
		c.idx += width
		c.offset += width
		if v == '\n' {
			// fmt.Println("Parsing:", currentLine)
			currentLine = ""
			c.lineNumber++
			c.offset = 0


















		}
		currentLine += string(v)
		if inLineComment {
			switch v {
			case '\n':
				fallthrough
			case '\r':
				return word(currentWord), nil
			default:
				currentWord += string(v)
				continue
			}
		}

		if skipChar {
			switch v {
			case 'n':
				currentWord += "\n"
				skipChar = false
				continue
			case 't':
				currentWord += "\t"
				skipChar = false
				continue
			case 'r':
				currentWord += "\n"
				skipChar = false
				continue
			case '\\':
				currentWord += `\`
				skipChar = false
				continue
			case '"':
				currentWord += `"`
				skipChar = false
				continue
			default:
				return "", fmt.Errorf(fmt.Sprint(
					"Invalid escape sequence:", v,
					"current word: ", currentWord,
					"line:", c.lineNumber))
			}
		}

		switch v {
		case '\\':
			if inString {
				skipChar = true
			}
			continue
		case '#':

			inLineComment = true

			currentWord += string(v)
			continue
		case '"':
			if inString {
				currentWord += "\""
				inString = false
				continue
................................................................................
			fallthrough
		case '\n':
			fallthrough
		case '\r':
			if inString {
				currentWord += string(v)
			} else if len(currentWord) > 0 {
				return word(currentWord), nil
			} else {
				// Skip leading whitespace
				continue
			}
		default:
			currentWord += string(v)
		}
	}
	if inString {
		return "", fmt.Errorf("Unterminated string!")
	}
	return word(currentWord), nil
}

type codeQuotation struct {
	idx   int
	words []word
	codePosition
}

func (c *codeQuotation) nextWord() (word, error) {
	if c.idx >= len(c.words) {
		return word(""), io.EOF
	}
	c.idx++
	return c.words[c.idx-1], nil
}

func (c codeQuotation) wrapError(e error) error {


	return fmt.Errorf("%v\n in %v in quotation starting on Line: %v column %v", e.Error(), c.source, c.lineNumber, c.offset)




}

func (c codeQuotation) getcodePosition() codePosition {

	return c.codePosition
}

func (c codeQuotation) cloneCode() codeSequence {
	return &codeQuotation{
		idx:          0,
		words:        c.words,
		codePosition: c.codePosition,
	}
}
|




>




|





|
|
|
|


|
|
|
|

|


|
|


|
|


|
|
|
|
>
>
>
>
>
>
>
>
|

>
>
>
>
|

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|





|
|

|
>
>
>

|
|



|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







|





>











|











<
|
|
<










>
|
>







 







|









|

|


|
|
|
|


|
|
|

|
|


|
>
>
|
>
>
>
>


<
>
|


|
|
|
|
|


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150

151
152

153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
...
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225

226
227
228
229
230
231
232
233
234
235
236
package pisc

import (
	"fmt"
	"io"
	"strings"
	"unicode/utf8"
)

/*
The plan is to hav the Source field indicate
where this code came from. Potential values are currently
stdin:
file:
db:
*/
type CodePosition struct {
	LineNumber int
	Offset     int
	Source     string
}

type CodeList struct {
	CodePosition
	Idx  int
	Code string
	// This is for error handling purposes only, indicating where a given word defintion starts
	FileName string
}

func (c CodeList) getCodePosition() CodePosition {
	return c.CodePosition
}

func (c CodeList) wrapError(e error) error {
	return fmt.Errorf("%v\n in File: %v Line: %v column %v", e.Error(), c.Source, c.LineNumber, c.Offset)
}

func (c CodeList) cloneCode() codeSequence {
	return &CodeList{
		Idx:          0,
		Code:         c.Code,
		CodePosition: c.CodePosition,
	}
}

func stringToQuotation(code string, pos CodePosition) (*CodeQuotation, error) {
	basis := &CodeList{
		Idx:          0,
		Code:         code,
		CodePosition: pos,
	}
	quot := &CodeQuotation{
		Idx:           0,
		Words:         make([]*word, 0),
		CodePositions: make([]CodePosition, 0),
	}

	var err error
	var _word *word
	for err == nil {
		_word, err = basis.nextWord()
		if err == io.EOF {
			return quot, nil
		}
		if err != nil {
			return nil, err
		}
		quot.Words = append(quot.Words, _word)
		quot.CodePositions = append(quot.CodePositions, basis.getCodePosition())
	}
	return quot, nil
}

func (c *CodeList) nextWord() (*word, error) {
	currentWord := ""
	skipChar := false
	inString := false
	inLineComment := false
	currentLine := ""
	if c.Idx >= len(c.Code) {
		return &word{str: ""}, io.EOF
	}
	for _, v := range c.Code[c.Idx:] {
		if currentWord == "${" || currentWord == "{" || currentWord == "}" || currentWord == "[" || currentWord == "]" {
			return &word{str: currentWord}, nil
		}
		width := utf8.RuneLen(v)
		c.Idx += width
		c.Offset += width
		if v == '\n' {
			// fmt.Println("Parsing:", currentLine)
			currentLine = ""
			c.LineNumber++
			c.Offset = 0
		}

		if !(inString || inLineComment) {
			if v == '{' && strings.HasSuffix(currentWord, "$") && currentWord != "$" {
				// Unread both the { and the $,
				c.Idx -= width + len("$")
				c.Offset -= width + len("$")
				return &word{str: currentWord[:len(currentWord)-len("$")]}, nil
			}
			if v == '{' && strings.HasSuffix(currentWord, "$") && currentWord == "$" {
				return &word{str: "${"}, nil
			}
			if (v == '[' || v == '{' || v == '}' || v == ']') && len(currentWord) != 0 {
				// Unread the {, }, [ or ], and return the word up to this point
				c.Idx -= width
				c.Offset -= width
				return &word{str: currentWord}, nil
			}
		}
		currentLine += string(v)
		if inLineComment {
			switch v {
			case '\n':
				fallthrough
			case '\r':
				return &word{str: currentWord}, nil
			default:
				currentWord += string(v)
				continue
			}
		}

		if skipChar {
			switch v {
			case 'n':
				currentWord += "\n"
				skipChar = false
				continue
			case 't':
				currentWord += "\t"
				skipChar = false
				continue
			case 'r':
				currentWord += "\r"
				skipChar = false
				continue
			case '\\':
				currentWord += `\`
				skipChar = false
				continue
			case '"':
				currentWord += `"`
				skipChar = false
				continue
			default:

				return nil, fmt.Errorf("Invalid escape sequence: %v current word: %v line: %v",
					v, currentWord, c.LineNumber)

			}
		}

		switch v {
		case '\\':
			if inString {
				skipChar = true
			}
			continue
		case '#':
			if !inString {
				inLineComment = true
			}
			currentWord += string(v)
			continue
		case '"':
			if inString {
				currentWord += "\""
				inString = false
				continue
................................................................................
			fallthrough
		case '\n':
			fallthrough
		case '\r':
			if inString {
				currentWord += string(v)
			} else if len(currentWord) > 0 {
				return &word{str: currentWord}, nil
			} else {
				// Skip leading whitespace
				continue
			}
		default:
			currentWord += string(v)
		}
	}
	if inString {
		return nil, fmt.Errorf("Unterminated string!")
	}
	return &word{str: currentWord}, nil
}

type CodeQuotation struct {
	Idx           int
	Words         []*word
	CodePositions []CodePosition
}

func (c *CodeQuotation) nextWord() (*word, error) {
	if c.Idx >= len(c.Words) {
		return nil, io.EOF
	}
	c.Idx++
	return c.Words[c.Idx-1], nil
}

func (c *CodeQuotation) wrapError(e error) error {
	fmt.Println(c.Words)
	// return e
	return fmt.Errorf("%v\n in %v in Quotation starting on Line: %v column %v",
		e.Error(),
		c.CodePositions[c.Idx-1].Source,
		c.CodePositions[c.Idx-1].LineNumber,
		c.CodePositions[c.Idx-1].Offset)
}


func (c *CodeQuotation) getCodePosition() CodePosition {
	return c.CodePositions[c.Idx-1]
}

func (c *CodeQuotation) cloneCode() codeSequence {
	return &CodeQuotation{
		Idx:           0,
		Words:         c.Words,
		CodePositions: c.CodePositions,
	}
}

Added libs/boltdb/boltdb.go.





















































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package boltdb

import (
	"fmt"

	"pisc"

	"github.com/asdine/storm"
	"github.com/asdine/storm/codec/gob"
)

var ModBoltDB = pisc.Module{
	Author:    "Andrew Owen",
	Name:      "BoltDBExt",
	License:   "MIT",
	DocString: "WIP: This module is for interfacing with BoltDB",
	Load:      loadBoltDB,
}

// This default DB is intended to act like a single file registry

// ErrBucketNotFound indicates that a database file doesn't have it's string bucket.
var ErrBucketNotFound = fmt.Errorf("could not find strings bucket in database")

type counter int

type kvDB (storm.DB)

type kvNode struct {
	node storm.Node
}

func (kv *kvDB) Close(m *pisc.Machine) error {
	return (*storm.DB)(kv).Close()
}

func (kv kvNode) WithTransaction(m *pisc.Machine) error {
	// Should be a Quotation
	quot := m.PopValue()
	db := kv.node
	node, err := db.Begin(true)
	if err != nil {
		return err
	}
	transactionNode := kvNode{
		node: node,
	}
	kvWrapper := pisc.Dict{
		"save-int": pisc.GoFunc(transactionNode.SaveInt),
		"get-int":  pisc.GoFunc(transactionNode.GetInt),
		"save-str": pisc.GoFunc(transactionNode.SaveString),
		"get-str":  pisc.GoFunc(transactionNode.GetString),
	}
	m.PushValue(kvWrapper)
	m.PushValue(quot)
	err = m.ExecuteQuotation()
	if err != nil {
		node.Rollback()
		return err
	}
	return node.Commit()
}

// k v -- err?
func (kv kvNode) SaveInt(m *pisc.Machine) error {
	i := m.PopValue().(pisc.Integer)
	k := m.PopValue().String()
	err := kv.node.Set("GLOBAL", k, i)
	return err
}

func (kv kvNode) GetInt(m *pisc.Machine) error {
	var i int
	k := m.PopValue().String()
	err := kv.node.Get("GLOBAL", k, &i)
	m.PushValue(pisc.Integer(i))
	return err
}

// k v -- err?
func (kv kvNode) SaveString(m *pisc.Machine) error {
	v := m.PopValue().String()
	k := m.PopValue().String()
	err := kv.node.Set("GLOBAL", k, v)
	return err
}

func (kv kvNode) GetString(m *pisc.Machine) error {
	var s string
	k := m.PopValue().String()
	err := kv.node.Get("GLOBAL", k, &s)
	m.PushValue(pisc.String(s))
	return err
}

// This function builds a KV store based on Storm/BoltDB
// TODO: Look into making this not depend on Storm
func initKVStore(m *pisc.Machine) error {
	fileName := m.PopValue().String()
	db, err := storm.Open(fileName, storm.Codec(gob.Codec))
	if err != nil {
		return err
	}
	kv := kvNode{
		node: db,
	}

	kvWrapper := pisc.Dict{
		"close":    pisc.GoFunc((*kvDB)(db).Close),
		"save-int": pisc.GoFunc(kv.SaveInt),
		"get-int":  pisc.GoFunc(kv.GetInt),
		"save-str": pisc.GoFunc(kv.SaveString),
		"get-str":  pisc.GoFunc(kv.GetString),
	}
	m.PushValue(kvWrapper)
	return nil
}

func loadBoltDB(m *pisc.Machine) error {
	m.AddGoWord("<open-kv-at-path>", "( path -- kvstore )", initKVStore)
	return nil
}

Added libs/http/httpClient.go.















































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package httpClient

import (
	"bufio"
	"io"
	"io/ioutil"
	"net/http"
	"pisc"
	"strings"
)

var ModHTTPRequests = pisc.Module{
	Author:    "Andrew Owen",
	Name:      "HTTPRequests",
	License:   "MIT",
	DocString: "Wrapper around Go's standard lib HTTP client",
	Load:      loadHTTPClient,
}

type httpErr string

func (e httpErr) Error() string {
	return string(e)
}

func doSmallHTTPReq(m *pisc.Machine) error {

	// TODO: Fix bugs
	opts := m.PopValue().(pisc.Dict)
	url := m.PopValue().String()
	verb := m.PopValue().String()

	var body io.Reader = nil
	if str, found := opts["body"]; found {
		body = strings.NewReader(str.String())
	}

	req, err := http.NewRequest(verb, url, body)
	if err != nil {
		return err
	}
	if headers, ok := opts["header"]; ok {
		headersVec, ok := headers.(pisc.Array)
		if !ok {
			return httpErr("Headers, if present, need to be an array of string pairs")
		}
		for _, val := range headersVec {
			inner := val.(pisc.Array)
			req.Header.Add(inner[0].String(), inner[1].String())
		}
	}
	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		return err
	}
	reader := resp.Body
	wrapper := pisc.MakeReader(bufio.NewReader(reader))
	wrapper["close"] = pisc.GoFunc(func(m *pisc.Machine) error {
		return reader.Close()
	})

	resp.Cookies()

	result := pisc.Dict{
		"status-code":  pisc.Integer(resp.StatusCode),
		"reply-reader": wrapper,
		// TOOD: Expose headers, cookies, other things
		"content-str": pisc.GoFunc(func(m *pisc.Machine) error {
			body, err := ioutil.ReadAll(reader)
			if err != nil {
				return err
			}
			m.PushValue(pisc.String(string(body)))
			// Close the reader since we have the content loaded down
			return reader.Close()
		}),
	}

	m.PushValue(result)
	return nil
}

func loadHTTPClient(m *pisc.Machine) error {
	m.AddGoWord("do-http-req", "( verb url options[ ->headers? ->body? ] -- reply[.status-code, .reply-reader, .content-str, ] ) ", doSmallHTTPReq)
	// Todo: look into adding a full
	return nil
}

Added libs/shell/shell.go.















































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package shell

import (
	"fmt"
	"io/ioutil"
	"os"
	"pisc"
	"strconv"
)

var ModShellUtils = pisc.Module{
	Author:    "Andrew Owen",
	Name:      "ShellUtils",
	License:   "MIT",
	DocString: `A set of fucntions that are used to provide some shell-like functionality`,
	Load:      loadShellWords,
}

func _listFilesAt(m *pisc.Machine) error {
	dirPath := m.PopValue().String()
	files, err := ioutil.ReadDir(dirPath)
	if err != nil {
		fmt.Fprintln(os.Stderr, "Error: ", err)
	}
	arr := make([]pisc.StackEntry, len(files))
	for i, f := range files {
		arr[i] = fileInfoToDict(f)
	}
	m.PushValue(&pisc.Vector{Elements: arr})
	return nil
}

func _listFiles(m *pisc.Machine) error {
	files, err := ioutil.ReadDir(".")
	if err != nil {
		fmt.Fprintln(os.Stderr, "Error: ", err)
	}
	arr := make([]pisc.StackEntry, len(files))
	for i, f := range files {
		arr[i] = fileInfoToDict(f)
	}
	m.PushValue(&pisc.Vector{Elements: arr})
	return nil
}

func _stat(m *pisc.Machine) error {
	path := m.PopValue().String()
	info, err := os.Stat(path)
	if err != nil {
		return err
	}
	m.PushValue(fileInfoToDict(info))
	return nil
}

func _pwd(m *pisc.Machine) error {
	dir, err := os.Getwd()
	if err != nil {
		return err
	}
	m.PushValue(pisc.String(dir))
	return nil
}

func _envGet(m *pisc.Machine) error {
	key := m.PopValue().String()
	m.PushValue(pisc.String(os.Getenv(key)))
	return nil
}

func _envSet(m *pisc.Machine) error {
	val := m.PopValue().String()
	key := m.PopValue().String()
	return os.Setenv(key, val)
}

func _cd(m *pisc.Machine) error {
	location := m.PopValue().String()
	if err := os.Chdir(location); err != nil {
		return err
	}
	if dir, err := os.Getwd(); err != nil {
		return err
	} else {
		fmt.Println(dir)
	}
	return nil
}

func loadShellWords(m *pisc.Machine) error {
	m.AddGoWord("list-files-at", "( path -- files )", _listFilesAt)
	m.AddGoWord("list-files", "( -- files ) ", _listFiles)
	m.AddGoWord("stat", "( filepath -- info )", _stat)
	m.AddGoWord("pwd", "( -- workingdir )", _pwd)
	m.AddGoWord("env-get", " ( key -- envVal ) ", _envGet)
	m.AddGoWord("env-set", " ( key value -- ) ", _envSet)
	m.AddGoWord("cd", "( new-dir -- ) ", _cd)

	return m.ImportPISCAsset("stdlib/shell.pisc")
}

func fileInfoToDict(info os.FileInfo) pisc.Dict {
	dict := make(pisc.Dict)
	dict["name"] = pisc.String(info.Name())
	dict["size"] = pisc.Integer(info.Size())
	// dict["is-dir"] = Boolean(info.IsDir())
	dict["mode"] = pisc.String(info.Mode().String())
	dict["timestamp"] = pisc.String(strconv.FormatInt(info.ModTime().Unix(), 10))
	dict["__type"] = pisc.String("inode")
	dict["__ordering"] = &pisc.Vector{
		Elements: []pisc.StackEntry{
			pisc.String("name"),
			pisc.String("mode"),
			pisc.String("size"),
			pisc.String("timestamp"),
		},
	}
	return dict
}

Changes to locals.go.

1
2
3
4
5
6








7
8
9
10
11
12
13
14
15

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30



31
32
33
34
35
36
37
38

39
40


41
42
43
44
45



46
47
48
49
50


51
52

53
54
55
56
57

58
59
60
61
62
63
64















































































package main

import (
	"fmt"
	"strings"
)









// Used when parsing words
func isLocalWordPrefix(w word) bool {
	return strings.HasPrefix(string(w), ":") ||
		strings.HasPrefix(string(w), "$")
}

var ErrLocalNotFound = fmt.Errorf("Local variable not found!")
var ErrNoLocalsExist = fmt.Errorf("A local frame hasn't been allocated with get-locals!")


func (m *machine) loadLocalWords() {
	// Make sure we always have locals
	m.locals = append(m.locals, make(map[string]stackEntry))
	// ( val name -- )
	m.predefinedWords["set-local"] = GoWord(func(m *machine) error {
		varName := m.popValue().(String)
		if len(m.locals) <= 0 {
			return ErrNoLocalsExist
		}
		m.locals[len(m.locals)-1][varName.String()] = m.popValue()
		return nil
	})
	// ( name -- val )
	m.predefinedWords["get-local"] = GoWord(func(m *machine) error {



		varName := m.popValue().(String)
		if len(m.locals) <= 0 {
			return ErrNoLocalsExist
		}
		if val, ok := m.locals[len(m.locals)-1][varName.String()]; ok {
			m.pushValue(val)
			return nil
		} else {

			return ErrLocalNotFound
		}


	})
	m.predefinedWords["get-locals"] = NilWord(func(m *machine) {
		m.locals = append(m.locals, make(map[string]stackEntry))
	})
	m.predefinedWords["drop-locals"] = NilWord(func(m *machine) {



		m.locals = m.locals[:len(m.locals)-1]
	})
	// ( -- locals.. )
	// Run a quotation for each local
	m.predefinedWords["each-local"] = GoWord(func(m *machine) error {


		quot := m.popValue().(quotation)
		code := &codeQuotation{idx: 0, words: quot.code, codePosition: quot.codePosition}

		for key, val := range m.locals[len(m.locals)-1] {
			m.pushValue(val)
			m.pushValue(String(key))
			code.idx = 0
			err := executeWordsOnMachine(m, code)

			if err != nil {
				return err
			}
		}
		return nil
	})
}















































































|





>
>
>
>
>
>
>
>



|
|




>

<
|
<
<
<
|
|
|
|
|
|
<
<
<
>
>
>
|
|
|
|
|
|
|
|
>
|
|
>
>
|
<
|
<
<
>
>
>
|
|
|
<
<
>
>
|
|
>
|
|
|
|
<
>
|
|
|
|
|
<

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

26



27
28
29
30
31
32



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

50


51
52
53
54
55
56


57
58
59
60
61
62
63
64
65

66
67
68
69
70
71

72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package pisc

import (
	"fmt"
	"strings"
)

var ModLocalsCore = Module{
	Author:    "Andrew Owen",
	Name:      "LocalsCore",
	License:   "MIT",
	DocString: "TODO: Fill this in",
	Load:      loadLocalCore,
}

// Used when parsing words
func isLocalWordPrefix(w word) bool {
	return strings.HasPrefix(w.str, ":") ||
		strings.HasPrefix(w.str, "$")
}

var ErrLocalNotFound = fmt.Errorf("Local variable not found!")
var ErrNoLocalsExist = fmt.Errorf("A local frame hasn't been allocated with get-locals!")
var ErrAttemtToIncrementNonNumber = fmt.Errorf("Attempted to increment a non-integer")


func _setLocal(m *Machine) error {



	varName := m.PopValue().(String)
	if len(m.Locals) <= 0 {
		return ErrNoLocalsExist
	}
	m.Locals[len(m.Locals)-1][varName.String()] = m.PopValue()
	return nil



}

func _getLocal(m *Machine) error {
	varName := m.PopValue().(String)
	if len(m.Locals) <= 0 {
		return ErrNoLocalsExist
	}
	if val, ok := m.Locals[len(m.Locals)-1][varName.String()]; ok {
		m.PushValue(val)
		return nil
	} else {
		fmt.Printf("Can't find %v", varName)
		return ErrLocalNotFound
	}
}

func _getLocals(m *Machine) error {

	m.Locals = append(m.Locals, make(map[string]StackEntry))


	return nil
}

func _dropLocals(m *Machine) error {
	m.Locals = m.Locals[:len(m.Locals)-1]
	return nil


}

func _eachLocal(m *Machine) error {
	quot := m.PopValue().(*Quotation)
	code := quot.toCode()
	for key, val := range m.Locals[len(m.Locals)-1] {
		m.PushValue(val)
		m.PushValue(String(key))
		code.Idx = 0

		err := m.execute(code)
		if err != nil {
			return err
		}
	}
	return nil

}

func _incrLocal(m *Machine) error {
	varName := m.PopValue().(String)
	if len(m.Locals) <= 0 {
		return ErrNoLocalsExist
	}
	if val, ok := m.Locals[len(m.Locals)-1][varName.String()]; ok {
		// TODO: Clean up this cast
		v, canNumber := val.(Integer)
		if canNumber {
			m.Locals[len(m.Locals)-1][varName.String()] = v + 1
			return nil
		} else {
			return ErrAttemtToIncrementNonNumber
		}
	} else {
		return ErrLocalNotFound
	}
}

func _decrLocal(m *Machine) error {
	varName := m.PopValue().(String)
	if len(m.Locals) <= 0 {
		return ErrNoLocalsExist
	}
	if val, ok := m.Locals[len(m.Locals)-1][varName.String()]; ok {
		// TODO: Clean up this cast
		v, canNumber := val.(Integer)
		if canNumber {
			m.Locals[len(m.Locals)-1][varName.String()] = v - 1
			return nil
		} else {
			return ErrAttemtToIncrementNonNumber
		}
	} else {
		return ErrLocalNotFound
	}
}

func loadLocalCore(m *Machine) error {
	// Make sure we always have locals
	m.Locals = append(m.Locals, make(map[string]StackEntry))

	m.AddGoWordWithStack(
		"set-local", "( value name -- ) ",
		"Usually handled by :var, but also can be used directly",
		_setLocal)

	m.AddGoWordWithStack(
		"get-local", "( name -- value ) ",
		"Usually handled by $var, but also can be used directly",
		_getLocal)

	m.AddGoWordWithStack(
		"get-locals", "( -- ) ",
		"Pushes a new frame onto the locals stack",
		_getLocals)

	m.AddGoWordWithStack(
		"drop-locals", "( -- ) ",
		"Drops the current locals from the locals stack",
		_dropLocals)

	m.AddGoWordWithStack(
		"each-local", "( quot -- ? ) ",
		"Run a function for each local in the current locals frame",
		_eachLocal)

	m.AddGoWordWithStack(
		"incr-local-var", "( name --  ) ",
		"Increment the integer at :name, if it exists. Error otherwise",
		_incrLocal)

	m.AddGoWordWithStack(
		"decr-local-var", "( name --  ) ",
		"Decrement the integer at :name, if it exists. Error otherwise",
		_decrLocal)
	return m.ImportPISCAsset("stdlib/locals.pisc")
}

Deleted locals.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
/* Locals in PISC */

# So this is all stuff....
:DOC set-local ( val name -- ) Set name to val  ;

:DOC get-local ( name -- val ) Get the value associated with a local value  ;

:DOC get-locals ( -- ) Push a stack frame for locals onto the locals stack ;

:DOC drop-locals ( -- ) Pop a frame of locals off the locals stack  ;

:DOC each-local ( quot [ k v - .. ] -- locals.. )  Run a quotation for each local in the current stack frame SEE: quot>dict  ;
<
<
<
<
<
<
<
<
<
<
<
<
























Changes to loops.go.

1
2
3
4




5
6



7
8













9
10










11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42








43
44
45
46


47
48
49
50
51

52
53
54
55
56
package main

func (m *machine) loadLoopWords() error {
	m.predefinedWords["times"] = GoWord(func(m *machine) error {





		toExec := m.popValue().(quotation).toCode()



		nOfTimes := m.popValue().(Integer)
		for i := int(0); i < int(nOfTimes); i++ {













			toExec.idx = 0
			err := executeWordsOnMachine(m, toExec)










			if err != nil {
				return err
			}
		}
		return nil
	})
	// ( pred body -- .. )
	m.predefinedWords["while"] = GoWord(func(m *machine) error {
		body := m.popValue().(quotation).toCode()
		pred := m.popValue().(quotation).toCode()

		for {
			pred.idx = 0
			err := executeWordsOnMachine(m, pred)
			if err != nil {
				return err
			}

			if !bool(m.popValue().(Boolean)) {
				break
			}
			body.idx = 0
			executeWordsOnMachine(m, body)
		}
		return nil
	})

	/*

		m.predefinedWords["each"] = NilWord(func(m *machine) {

		})








					case "while":
						body := m.popValue().(quotation)
						pred := m.popValue().(quotation)



			case "while":
				body := m.popValue().(quotation)
				predicate := m.popValue().(quotation)

				for {


				}
	*/
	return nil
}
|

|
|
>
>
>
>
|
<
>
>
>
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
|
<
>
>
>
>
>
>
>
>
>
>





<
<
<
<
<
|
<
<
<
<
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
>
>
>
>
>
>
>
>
|
<
<
<
>
>
|
<
<

<
>
|
<
<
<
<
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43





44





45















46
47
48
49
50
51
52
53
54



55
56
57


58

59
60




package pisc

var ModLoopCore = Module{
	Author:    "Andrew Owen",
	Name:      "LoopCore",
	License:   "MIT",
	DocString: "times is the standard counted loop, while takes two conditions",
	Load:      loadLoopCore,
}


func _doTimes(m *Machine) error {
	toExec := m.PopValue().(*Quotation)
	nOfTimes := m.PopValue().(Integer)
	for i := int(0); i < int(nOfTimes); i++ {
		m.PushValue(toExec)
		err := m.ExecuteQuotation()
		if err != nil {
			return err
		}
	}
	return nil
}

func _doWhile(m *Machine) error {
	body := m.PopValue().(*Quotation).toCode()
	pred := m.PopValue().(*Quotation).toCode()
	for {
		pred.Idx = 0

		err := m.execute(pred)
		if err != nil {
			return err
		}

		if !bool(m.PopValue().(Boolean)) {
			break
		}
		body.Idx = 0
		err = m.execute(body)
		if err != nil {
			return err
		}
	}
	return nil





}





















func loadLoopCore(m *Machine) error {
	m.AddGoWordWithStack(
		"times",
		"( n quot -- ... )",
		"Call quot n times",
		_doTimes)
	// ( pred body -- .. )
	m.AddGoWordWithStack(
		"while",



		"( pred quot -- ... )",
		"Call quot while pred leave true at the top of the stack",
		_doWhile)




	return m.ImportPISCAsset("stdlib/loops.pisc")
}




Deleted loops.pisc.

1
2
3
4
5
6
/*
Loops.pisc
*/

:DOC times ( n quot -- .. ) Execute `quot` n times ;
:DOC while ( pred quot -- .. ) Execute `quot` while `pred` leaves `t` ;
<
<
<
<
<
<












Changes to main.go.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

16
17






18
19





























20
21
22
23
24
25
26
27
28















































































































29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

77
78
79
80
81
82
83
84

85
86
87
88
89
90


// Posisition
// Independent
// Source
// Code
package main

import (
	"io"
	// "flag" TODO: Implement flags for file and burst modes
	"fmt"
	"gopkg.in/readline.v1"
	"os"
	"strings"
)


// This function starts an interpertor
func main() {






	// given_files := flag.Bool("f", false, "Sets the rest of the arguments to list of files")
	// Run command stuff here.





























	m := &machine{
		values:               make([]stackEntry, 0),
		definedWords:         make(map[word]codeSequence),
		definedStackComments: make(map[word]string),
		predefinedWords:      make(map[word]GoWord),
		prefixWords:          make(map[word]codeSequence),
		helpDocs:             make(map[word]string),
	}
	m.loadPredefinedValues()
















































































































	rl, err := readline.NewEx(&readline.Config{
		Prompt:          ">> ",
		HistoryFile:     "/tmp/readline.tmp",
		InterruptPrompt: "^C",
		EOFPrompt:       "exit",
		Stdout:          os.Stderr,
		Stderr:          os.Stderr,
	})
	if err != nil {
		fmt.Fprintln(os.Stderr, err)
		return
	}

	fmt.Fprintln(
		os.Stderr,
		`Postion
Independent
Source
Code`)
	numEntries := 0
	for {
		// fmt.Print(">> ")
		line, err := rl.Readline()
		if strings.TrimSpace(line) == "exit" {
			fmt.Fprintln(os.Stderr, "Exiting")
			return
		}
		if strings.TrimSpace(line) == "preload" {
			m.loadPredefinedValues()
		}
		if err == io.EOF {
			fmt.Fprintln(os.Stderr, "Exiting program")
			return
		}
		if err != nil {
			panic(err)
		}
		numEntries++
		// fmt.Println(words)
		p := &codeList{
			idx:  0,
			code: line,
			codePosition: codePosition{
				source: fmt.Sprint("stdin:", numEntries),
			},
		}
		err = executeWordsOnMachine(m, p)

		if err == ExitingProgram {
			fmt.Fprintln(os.Stderr, "Exiting program")
			return
		}
		if err != nil {
			fmt.Fprintln(os.Stderr, "Error:")
			fmt.Fprintln(os.Stderr, err.Error())
		}

		fmt.Fprintln(os.Stderr, "Data Stack:")
		for _, val := range m.values {
			fmt.Fprintln(os.Stderr, val.String(), fmt.Sprint("<", val.Type(), ">"))
		}
	}
}


|



|

<
<
|
<
<
<
<
|
<
>
|

>
>
>
>
>
>
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
|
|
|
|
|

<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>






<
<






|
<
|








|


<
<
<

|







<
<
<
<
<
<
|
<
>

|



|
|

>
|
|
|


|
>
>
1
2
3
4
5
6


7




8

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173


174
175
176
177
178
179
180

181
182
183
184
185
186
187
188
189
190
191
192



193
194
195
196
197
198
199
200
201






202

203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
// Position
// Independent
// Source
// Code
package pisc



// "flag" TODO: Implement flags for file and burst modes






/*
// This function starts an interpreter
func main() {
	app := cli.NewApp()
	app.Author = "Andrew Owen, @yumaikas"
	app.Name = "PISC, aka Position Independent Source Code"
	app.Usage = "A small stack based scripting langauge built for fun"
	app.Action = handleFlags
	app.Flags = []cli.Flag{
		cli.BoolFlag{
			Name:  "interactive, i",
			Usage: "Run the interactive version of PISC",
		},
		cli.StringFlag{
			Name:  "command, c",
			Usage: "Expressions to run from the command line, before -i, if it exists",
		},
		cli.BoolFlag{
			Name:  "boltdb, d",
			Usage: "Tells PISC to enable boltdb integration",
		},
		cli.StringFlag{
			Name:  "file, f",
			Usage: "Execute a file as a bit of pisc, runs before -i or -c",
		},
		cli.BoolFlag{
			Name:  "chatbot",
			Usage: "Load the chatbot modules before -c and -i",
		},
		cli.BoolFlag{
			Name:   "benchmark",
			Hidden: true,
			Usage:  "Run various benchmarks, using pprof, and print out pertinent information",
		},
	}
	app.Run(os.Args)
}


func initMachine() *Machine {
	m := &Machine{
		Values:               make([]StackEntry, 0),
		DefinedWords:         make(map[string]*CodeQuotation),
		DefinedStackComments: make(map[string]string),
		PredefinedWords:      make(map[string]GoWord),
		PrefixWords:          make(map[string]*CodeQuotation),
		HelpDocs:             make(map[string]string),
	}

	return m
}

func benchmark(m *Machine) {
	err := m.loadForCLI()
	if err != nil {
		log.Fatalf("Unable to start benchmark due to error %v", err.Error())
		return
	}
	err = m.ExecuteString(`"factorial.pisc" import`, CodePosition{Source: "pre-benchmark import"})
	if err != nil {
		log.Fatalf("Unable to start benchmark due to error %v", err.Error())
		return
	}
	f, err := os.Create("bench-cpu-recursion.prof")
	if err != nil {
		log.Fatal("Unable to create profiling file")
		return
	}
	pos := CodePosition{Source: "Benchmark recursive"}
	if err := pprof.StartCPUProfile(f); err != nil {
		log.Fatal("Unable to start CPU profile")
	}
	err = m.ExecuteString("100000 [ 12 factorial drop ] times", pos)
	if err != nil {
		log.Fatal("Recursive benchmark failed:", err)
	}
	pprof.StopCPUProfile()
	f, err = os.Create("bench-cpu-iteration.prof")
	if err != nil {
		log.Fatal("Unable to create profiling file")
		return
	}
	pos = CodePosition{Source: "Benchmark loop"}
	if err := pprof.StartCPUProfile(f); err != nil {
		log.Fatal("Unable to start CPU profile")
		return
	}
	err = m.ExecuteString("100000 [ 12 factorial-loop drop ] times", pos)
	if err != nil {
		log.Fatal("Recursive benchmark failed:", err)
		pprof.StopCPUProfile()
		return
	}
	pprof.StopCPUProfile()
	return
}

func handleFlags(ctx *cli.Context) {
	m := initMachine()
	fmt.Println("???")
	// Execute this before benchmarking since we aren't yet benchmarking file loads
	if ctx.IsSet("benchmark") {
		benchmark(m)
	}
	// Load PISC with libraries, according to the context
	if ctx.IsSet("file") || ctx.IsSet("command") || ctx.IsSet("interactive") {
		if ctx.IsSet("chatbot") {
			err := m.loadForChatbot()
			if err != nil {
				fmt.Fprintln(os.Stderr, err.Error())
				log.Fatal("Error while loading modules")
			}
		}
		if ctx.IsSet("boltdb") {
			err := m.loadForDB()
			if err != nil {
				fmt.Fprintln(os.Stderr, err.Error())
				log.Fatal("Error while loading modules")
			}
		} else {
			err := m.loadForCLI()
			if err != nil {
				fmt.Fprintln(os.Stderr, err.Error())
				log.Fatal("Error while loading modules")
			}
		}
		m.logAndResetDispatchCount(os.Stderr)
	}
	if ctx.IsSet("file") {
		m.PushValue(String(ctx.String("file")))
		err := m.ExecuteString("import", CodePosition{
			Source: "argument line",
		})
		if err != nil {
			log.Println(err)
			log.Fatal("Error running file")
		}
		m.logAndResetDispatchCount(os.Stderr)
	}
	if ctx.IsSet("command") {
		line := ctx.String("command")
		p, err := stringToQuotation(line, CodePosition{Source: "args"})
		if err != nil {
			log.Fatal("Error in command: ", err)
		}
		err = m.execute(p)
		if err != nil {
			log.Fatal("Error in command: ", err)
		}
		m.logAndResetDispatchCount(os.Stderr)
	}
	if ctx.IsSet("interactive") {
		loadInteractive(m)
	}
}

func loadInteractive(m *Machine) {

	// given_files := flag.Bool("f", false, "Sets the rest of the arguments to list of files")
	// Run command stuff here.

	rl, err := readline.NewEx(&readline.Config{
		Prompt:          ">> ",
		HistoryFile:     "/tmp/readline.tmp",
		InterruptPrompt: "^C",
		EOFPrompt:       "exit",


	})
	if err != nil {
		fmt.Fprintln(os.Stderr, err)
		return
	}

	fmt.Println(

		`Position
Independent
Source
Code`)
	numEntries := 0
	for {
		// fmt.Print(">> ")
		line, err := rl.Readline()
		if strings.TrimSpace(line) == "exit" {
			fmt.Println("Exiting")
			return
		}



		if err == io.EOF {
			fmt.Println("Exiting program")
			return
		}
		if err != nil {
			panic(err)
		}
		numEntries++
		// fmt.Println(words)








		err = m.ExecuteString(line, CodePosition{Source: fmt.Sprint("stdin:", numEntries)})
		if err == ExitingProgram {
			fmt.Println("Exiting program")
			return
		}
		if err != nil {
			fmt.Fprintln(os.Stderr, "Error:", err.Error())
			return
		}
		m.logAndResetDispatchCount(os.Stderr)
		fmt.Println("Data Stack:")
		for _, val := range m.Values {
			fmt.Println(val.String(), fmt.Sprint("<", val.Type(), ">"))
		}
	}

}
*/

Changes to main_test.go.

1
2
3
4
5
6
7

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88


89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package main

import "testing"

func TestParser(t *testing.T) {
	m := runCode(`1 2 dup`)


	a := m.popValue().(Integer)
	b := m.popValue().(Integer)
	c := m.popValue().(Integer)
	if a != Integer(2) || b != Integer(2) || c != Integer(1) {
		t.Fail()
		t.Log("Stack values were: ", a, b, c)
	}
}

func TestExecution(t *testing.T) {
	m := runCode(`t [ 1 ] [ 2 ] ? call
 f [ 1 ] [ 2 ] ? call`)
	a := m.popValue().(Integer)
	b := m.popValue().(Integer)
	if a != Integer(2) || b != Integer(1) {
		t.Fail()
		t.Log("Stack values were", a, b, m.values)
	}
}

func TestCall(t *testing.T) {
	m := runCode(`[ 1 ] call`)
	a := m.popValue().(Integer)
	if a != Integer(1) {
		t.Fail()
		t.Log("Stack values were", a, m.values)
	}

}

func TestWordDefinition(t *testing.T) {
	m := runCode(`: if ( ? a b -- x ) ? call ;
		f [ 2 ] [ 4 ] if`)
	a := m.popValue().(Integer)
	ifWord := m.definedWords[word("if")]
	ifComment := m.definedStackComments[word("if")]
	if a != Integer(4) ||
		ifWord[0] != word("?") ||
		ifWord[1] != "call" ||
		ifComment != "? a b -- x" {
		t.Fail()
		t.Log("Not everything was as expected")
		t.Log(m.definedWords)
		t.Log(m.definedStackComments)
		t.Log(m.values)
	}
}

func TestIntAddition(t *testing.T) {
	m := runCode(`1 2 +`)
	a := m.popValue().(Integer)
	if a != Integer(3) {
		t.Fail()
		t.Log("Stack values:", a, m.values)
	}
}

func TestAdditionTypePromotion(t *testing.T) {
	m := runCode(`1 2.0 +`)
	a := m.popValue().(Double)
	if a != Double(3) {
		t.Fail()
		t.Log("Stack values:", a, m.values)
	}
}

// This is just a test to make sure that performance isn't hugely sucky.
func TestManyIntAddition(t *testing.T) {
	m := runCode(`1 2 3 4 5 6 300 2 3 2 3 2 3 2 3 2 3 + + + + + + + + + + + + + + + +`)
	a := m.popValue().(Integer)
	if a != Integer(346) {
		t.Fail()
		t.Log("Stack values:", a, m.values)
	}
}

func TestMath(t *testing.T) {
	m := runCode(`1 2 -`)
	a := m.popValue().(Integer)
	if a != Integer(-1) {
		t.Fail()


		t.Log(m.values)
	}
}

func TestBooleanOr(t *testing.T) {
	m := runCode(`t f or`)
	a := m.popValue().(Boolean)
	if a != Boolean(true) {
		t.Fail()
		t.Log(m.values)
	}
}

func TestBooleanAnd(t *testing.T) {
	m := runCode(`t f and`)
	a := m.popValue().(Boolean)
	if a != Boolean(false) {
		t.Fail()
		t.Log(m.values)
	}
}

func TestEven(t *testing.T) {
	m := runCode(`: even? ( x -- ? ) 2 mod zero? ; 2 even? 3 even? 4 even?`)
	a := m.popValue().(Boolean)
	b := m.popValue().(Boolean)
	c := m.popValue().(Boolean)
	if a != Boolean(true) || b != Boolean(false) || c != Boolean(true) {
		t.Fail()
		t.Log(m.values)
	}
}

func TestRecursion(t *testing.T) {
	m := runCode(`: countDown ( n x -- x ) 1 - dup dup zero? [ drop ] [ countDown ] ? call ; 3 countDown`)
	a := m.popValue().(Integer)
	if a != Integer(0) {
		t.Fail()
		t.Log(m.values)
	}
}

func TestString(t *testing.T) {
	m := runCode(`"aa" " as " "bo" concat concat`)
	if m.popValue() != String("aa as bo") {
		t.Fail()
		t.Log(m.values)
	}
}

func TestStringConv(t *testing.T) {
	m := runCode(`1.34 >string`)
	if m.popValue() != String("1.34") {
		t.Fail()
		t.Log(m.values)
	}
}
|



|
|
<
>
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
<
<
<
<
<
<

<

|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
>
>
|
<
<
<
<
<
<
<

<


<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
1
2
3
4
5
6

7
8











































9







10

11
12

























13
14
15







16

17
18













































package pisc

import "testing"

func TestRunPISCTests(t *testing.T) {
	m := initMachine()

	err := m.loadForCLI()
	if err != nil {











































		t.Log(err)







		t.Fail()

	}


























	err = m.ExecuteString(`"tests/all.pisc" import`, CodePosition{Source: "go test"})
	if err != nil {
		t.Log(err)







		t.Fail()

	}
}













































Changes to math.go.

1
2
3
4
5
6
7












8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44




























































45
46






47
48
49
50
51
52
53
54
55
56
57
58
59
60
..
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109



110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
package main

import (
	"fmt"
	"math"
)













type number interface {
	stackEntry
	Add(number) number
	Negate() number
	Multiply(number) number
	Divide(number) number
	LessThan(number) Boolean
}

func isMathWord(w word) bool {
	return w == "+" ||
		w == "-" ||
		w == "*" ||
		w == "/" ||
		// w == "div" ||
		w == "mod" ||
		w == "<" ||
		w == "zero?"
}

func (m *machine) loadHigherMathWords() error {
	// Why do we duplicate the work here?
	// Because we want both the >double word and the
	// math1arg words
	m.predefinedWords[">double"] = GoWord(func(m *machine) error {
		a := m.popValue()
		if i, ok := a.(Integer); ok {
			m.pushValue(Double(float64(i)))
			return nil
		}
		if d, ok := a.(Double); ok {
			m.pushValue(Double(d))
			return nil
		}
		return fmt.Errorf("Unexpected type %s cannot be coverted to double", a.Type())
	})





























































	var math1Arg = func(name string, mathyFunc func(float64) float64) {
		m.predefinedWords[word(name)] = GoWord(func(m *machine) error {






			a := m.popValue()
			if i, ok := a.(Integer); ok {
				m.pushValue(Double(mathyFunc(float64(i))))
				return nil
			}
			if d, ok := a.(Double); ok {
				m.pushValue(Double(mathyFunc(float64(d))))
				return nil
			}
			return fmt.Errorf("Unexpected type %s cannot be coverted to double", a.Type())
		})
	}

	math1Arg("acos", math.Acos)
................................................................................
	math1Arg("trunc", math.Trunc)
	math1Arg("y0", math.Y0)
	math1Arg("y1", math.Y1)

	return nil
}

func (m *machine) executeMathWord(w word) error {
	switch w {
	case "+":
		return m.executeAdd()
	case "-":
		return m.executeSubtract()
	case "*":
		return m.executeMultiply()
	case "/":
		return m.executeDivide()
	case "<":
		return m.executeLessThan()
	case "zero?":
		a := m.popValue().(number)



		if a == Integer(0) || a == Double(0.0) {
			m.pushValue(Boolean(true))
		} else {
			m.pushValue(Boolean(false))
		}
	case "mod":
		m.executeModulus()
	}
	return nil
}

func (m *machine) executeLessThan() error {
	a := m.popValue().(number)
	b := m.popValue().(number)
	m.pushValue(b.LessThan(a))
	return nil
}

// Run add on doubles and ints
func (m *machine) executeAdd() error {
	a := m.popValue().(number)
	b := m.popValue().(number)
	m.pushValue(a.Add(b))
	return nil
}

// Run subtract on doubles and ints
func (m *machine) executeSubtract() error {
	a := m.popValue().(number)
	b := m.popValue().(number)
	m.pushValue(b.Add(a.Negate()))
	return nil
}

func (m *machine) executeMultiply() error {
	a := m.popValue().(number)
	b := m.popValue().(number)
	m.pushValue(a.Multiply(b))
	return nil
}

func (m *machine) executeDivide() error {
	a := m.popValue().(number)
	b := m.popValue().(number)
	m.pushValue(b.Divide(a))
	return nil
}

// Currently modulus is for ints only
func (m *machine) executeModulus() error {
	a := m.popValue().(Integer)
	b := m.popValue().(Integer)
	m.pushValue(Integer(b % a))
	return nil
}

func (d Double) Negate() number {
	return number(-d)
}

|






>
>
>
>
>
>
>
>
>
>
>
>

|







|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
|



|
|
|
|
<
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

<
>
>
>
>
>
>
|
|
|



|







 







|
<
<
<
<
<
<
<
<
<
<
<
<
|
>
>
>
|
|
|
|
<
<
<




|
|
|
|




|
|
|
|




|
|
|
|



|
|
|
|



|
|
|
|




|
|
|
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29















30
31
32
33
34
35
36
37
38
39

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101

102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
...
150
151
152
153
154
155
156
157












158
159
160
161
162
163
164
165



166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
package pisc

import (
	"fmt"
	"math"
)

var ModMathCore = Module{
	Author:    "Andreb Owen",
	Name:      "MathCore",
	License:   "MIT",
	DocString: `Basic math stuff.`,
	Load:      loadMathCore,
}

func loadMathCore(m *Machine) error {
	return m.loadHigherMathWords()
}

type number interface {
	StackEntry
	Add(number) number
	Negate() number
	Multiply(number) number
	Divide(number) number
	LessThan(number) Boolean
}

func _toDouble(m *Machine) error {















	a := m.PopValue()
	if i, ok := a.(Integer); ok {
		m.PushValue(Double(float64(i)))
		return nil
	}
	if d, ok := a.(Double); ok {
		m.PushValue(Double(d))
		return nil
	}
	return fmt.Errorf("Unexpected type %s cannot be coverted to double", a.Type())

}

func (m *Machine) loadHigherMathWords() error {

	m.AppendToHelpTopic("operators",
		"The basic math operators (+,-,*,/) all work in a similar fasion:"+NL+
			"1) Check the top two stack entries to see if they are numbers"+NL+
			"2) Do any necessary promotion (right now just Int->Double)"+NL+
			"3) Perform the operation"+NL)
	m.AddGoWordWithStack(
		"+",
		"( a b -- c )  addition",
		"The addition @operator",
		executeAdd)
	m.AddGoWordWithStack(
		"-",
		"( a b -- c )",
		"The subtraction @operator",
		executeSubtract)
	m.AddGoWordWithStack(
		"*",
		"( a b -- c )",
		"The multiplication @operator",
		executeMultiply)
	m.AddGoWordWithStack(
		"/",
		"( a b -- c )",
		"The division @operator",
		executeDivide)
	m.AddGoWordWithStack(
		"mod",
		"( a b -- c )",
		"Computes a mod b, only for integers",
		executeModulus)
	m.AddGoWordWithStack(
		"<",
		"( a b -- c ) numeric less than ",
		"Numeric less-than. Coerces to doubles if needed.",
		executeLessThan)
	m.AddGoWordWithStack(
		"zero?",
		"( a -- isZero? )",
		"Returns true if a is zero.",
		isZeroPred)

	// For now, PISC words are late-bound, so we can get away with this.
	err := m.ImportPISCAsset("stdlib/math.pisc")
	if err != nil {
		return err
	}

	// Why do we duplicate the work here?
	// Because we want both the >double word and the
	// math1arg words

	m.AddGoWordWithStack(
		">double",
		"( d? -- d! )",
		"Either converts the number to a double, or throws an error",
		_toDouble)

	var math1Arg = func(name string, mathyFunc func(float64) float64) {


		m.AddGoWordWithStack(
			name,
			"( x -- 'x )",
			fmt.Sprint("Wrapper for Go implementation of ", name),
			func(m *Machine) error {
				a := m.PopValue()
				if i, ok := a.(Integer); ok {
					m.PushValue(Double(mathyFunc(float64(i))))
					return nil
				}
				if d, ok := a.(Double); ok {
					m.PushValue(Double(mathyFunc(float64(d))))
					return nil
				}
				return fmt.Errorf("Unexpected type %s cannot be coverted to double", a.Type())
			})
	}

	math1Arg("acos", math.Acos)
................................................................................
	math1Arg("trunc", math.Trunc)
	math1Arg("y0", math.Y0)
	math1Arg("y1", math.Y1)

	return nil
}

func isZeroPred(m *Machine) error {












	a, ok := m.PopValue().(number)
	if !ok {
		return fmt.Errorf("value %v was not a number", a)
	}
	if a == Integer(0) || a == Double(0.0) {
		m.PushValue(Boolean(true))
	} else {
		m.PushValue(Boolean(false))



	}
	return nil
}

func executeLessThan(m *Machine) error {
	a := m.PopValue().(number)
	b := m.PopValue().(number)
	m.PushValue(b.LessThan(a))
	return nil
}

// Run add on doubles and ints
func executeAdd(m *Machine) error {
	a := m.PopValue().(number)
	b := m.PopValue().(number)
	m.PushValue(a.Add(b))
	return nil
}

// Run subtract on doubles and ints
func executeSubtract(m *Machine) error {
	a := m.PopValue().(number)
	b := m.PopValue().(number)
	m.PushValue(b.Add(a.Negate()))
	return nil
}

func executeMultiply(m *Machine) error {
	a := m.PopValue().(number)
	b := m.PopValue().(number)
	m.PushValue(a.Multiply(b))
	return nil
}

func executeDivide(m *Machine) error {
	a := m.PopValue().(number)
	b := m.PopValue().(number)
	m.PushValue(b.Divide(a))
	return nil
}

// Currently modulus is for ints only
func executeModulus(m *Machine) error {
	a := m.PopValue().(Integer)
	b := m.PopValue().(Integer)
	m.PushValue(Integer(b % a))
	return nil
}

func (d Double) Negate() number {
	return number(-d)
}

Deleted math.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
:DOC >double ( x -- d ) Coerce a number to a double ;
:DOC acos ( x -- y ) Arc cosine ; 
:DOC acosh ( x -- y ) Hyperbolic arc cosine ; 
:DOC asin ( x -- y ) Arc sine ; 
:DOC asinh ( x -- y ) Hyperbolic arc sine ; 
:DOC atan ( x -- y ) Arc tangent ; 
:DOC atanh ( x -- y ) Hyperbolic arc tanget ; 
:DOC cbrt ( x -- y ) Cube root ; 
:DOC ceil ( x -- y ) Ceiling of a double precision number ; 
:DOC cos ( x -- y ) Cosine ; 
:DOC cosh ( x -- y ) Hyperbolic cosine ; 
:DOC erf ( x -- y ) Error function ; 
:DOC erfc ( x -- y ) Complementary error function ; 
:DOC exp ( x -- y ) Exponentiation ; 
:DOC exp2 ( x -- y ) Two the power of `x` ; 
:DOC expm1 ( x -- y ) `exp 1 -`, more precise for small numbers  ; 
:DOC floor ( x -- y ) Floor of a double precision number ; 
:DOC gamma ( x -- y ) Gamma function TODO ; 
:DOC j0 ( x -- y ) j0 Bessel function ; 
:DOC j1 ( x -- y ) First kind Bessel function ; 
:DOC log ( x -- y ) Natural Logarithm ;  
:DOC log10 ( x -- y ) Log base 10 ; 
:DOC log1p ( x -- y ) `x 1 + log `, but more accurate with small values ; 
:DOC log2 ( x -- y ) Log base 2 ; 
:DOC logb ( x -- y ) Binary exponent of x ; 
:DOC sin ( x -- y ) Sine function ; 
:DOC sinh ( x -- y ) Hyperbolic sine function ; 
:DOC sqrt ( x -- y ) Square root function ; 
:DOC tan ( x -- y ) Tangent function ; 
:DOC tanh ( x -- y ) Hyperbolic tangent function ; 
:DOC trunc ( x -- y ) Integer value of x, as a double ; 
:DOC y0 ( x -- y ) Order-zero Bessel function of the second kind ; 
:DOC y1 ( x -- y ) Order-one Bessel function of the second kind ; 
/*
TODO: all the two arg math functions
*/
: min ( a b -- smaller ) 2dup > [ nip ] [ drop ] if ;
: max ( a b -- larger )   2dup > [ drop ] [ nip ] if ;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<












































































Added metaquotation.go.





















































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package pisc

import (
	"fmt"
	"strings"
)

var ModMetaQuoation = Module{
	Author:    "Andrew Owen",
	Name:      "MetaQuotation",
	License:   "MIT",
	DocString: "Words that manipulate Quotations. Use with care",
	Load:      loadQuotWords,
}

func loadQuotWords(m *Machine) error {
	// This is probably a dangerous word...
	m.AddGoWord("quot-set-var", " ( quot key val -- ) ", GoWord(func(m *Machine) error {
		val := m.PopValue()
		key := m.PopValue().String()
		quot := m.PopValue().(*Quotation)
		if !strings.HasPrefix(key, "_") {
			return fmt.Errorf("attempted to set a private local (%v)", key)
		}
		if quot.locals == nil {
			return fmt.Errorf("attempted to add local to word that has no locals")
		}
		quot.locals[key] = val
		return nil
	}))
	m.AddGoWord("quot-has-var", " ( quot key -- ? ) ", GoWord(func(m *Machine) error {
		key := m.PopValue().String()
		quot := m.PopValue().(*Quotation)
		if !strings.HasPrefix(key, "_") {
			return fmt.Errorf("attempted to get a private local (%v)", key)
		}
		if quot.locals == nil {
			m.PushValue(Boolean(false))
			return nil
		}
		_, found := quot.locals[key]
		m.PushValue(Boolean(found))
		return nil
	}))
	m.AddGoWord("quot-get-var", " ( quot key -- val ) ", GoWord(func(m *Machine) error {
		key := m.PopValue().String()
		quot := m.PopValue().(*Quotation)
		if !strings.HasPrefix(key, "_") {
			return fmt.Errorf("attempted to get a private local (%v)", key)
		}
		if quot.locals == nil {
			return fmt.Errorf("Attempted to get a local on a word that has no locals")
		}
		m.PushValue(quot.locals[key])
		return nil
	}))
	return m.ImportPISCAsset("stdlib/with.pisc")
}

Added performance-testing/yumaikas/report-constest.svg.



































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1868)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1868 1824.4839,-1868 1824.4839,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="1072.373,-1704 1072.373,-1856 1544.373,-1856 1544.373,-1704 1072.373,-1704"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="1535.9514,-1848 1080.7947,-1848 1080.7947,-1712 1535.9514,-1712 1535.9514,-1848"/>
<text text-anchor="start" x="1088.584" y="-1818.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="1088.584" y="-1786.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="1088.584" y="-1754.4" font-family="Times,serif" font-size="32.00" fill="#000000">4.18s of 4.35s total (96.09%)</text>
<text text-anchor="start" x="1088.584" y="-1722.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 38 nodes (cum &lt;= 0.02s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (1.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1304.4164,-1576 1046.3297,-1576 1046.3297,-1496 1304.4164,-1496 1304.4164,-1576"/>
<text text-anchor="middle" x="1175.373" y="-1552.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="1175.373" y="-1528.8" font-family="Times,serif" font-size="24.00" fill="#000000">0.69s(15.86%)</text>
<text text-anchor="middle" x="1175.373" y="-1504.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 1.57s(36.09%)</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="runtime.deferproc (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1531.9277,-1446 1400.8183,-1446 1400.8183,-1390 1531.9277,-1390 1531.9277,-1446"/>
<text text-anchor="middle" x="1466.373" y="-1429.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="1466.373" y="-1413.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.15s(3.45%)</text>
<text text-anchor="middle" x="1466.373" y="-1397.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.19s(4.37%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N11 -->
<g id="edge33" class="edge">
<title>N1&#45;&gt;N11</title>
<g id="a_edge33"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.19s)">
<path fill="none" stroke="#000000" d="M1304.5652,-1508.7486C1332.2779,-1500.6485 1360.8752,-1490.5023 1386.373,-1478 1400.3049,-1471.1688 1414.2598,-1461.7944 1426.5236,-1452.485"/>
<polygon fill="#000000" stroke="#000000" points="1428.995,-1454.9958 1434.7226,-1446.0826 1424.6868,-1449.4786 1428.995,-1454.9958"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.19s)">
<text text-anchor="middle" x="1427.0972" y="-1466.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.newobject (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="979.9795,-1241.5 866.7666,-1241.5 866.7666,-1194.5 979.9795,-1194.5 979.9795,-1241.5"/>
<text text-anchor="middle" x="923.373" y="-1227.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="923.373" y="-1214.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.15%)</text>
<text text-anchor="middle" x="923.373" y="-1201.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.40s(9.20%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N20 -->
<g id="edge62" class="edge">
<title>N1&#45;&gt;N20</title>
<g id="a_edge62"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.05s)">
<path fill="none" stroke="#000000" d="M1299.7155,-1495.7398C1321.0675,-1483.1921 1340.4943,-1466.9431 1353.373,-1446 1366.4104,-1424.799 1363.3508,-1412.8013 1353.373,-1390 1327.9035,-1331.7965 1304.5397,-1322.6927 1248.373,-1293 1165.9594,-1249.4317 1058.6751,-1231.0003 990.3909,-1223.3203"/>
<polygon fill="#000000" stroke="#000000" points="990.5094,-1219.8129 980.1918,-1222.2207 989.7589,-1226.7726 990.5094,-1219.8129"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.05s)">
<text text-anchor="middle" x="1362.0972" y="-1360.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="main.(*machine).execute.func12 (1.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1003.8346,-1438.5 842.9114,-1438.5 842.9114,-1397.5 1003.8346,-1397.5 1003.8346,-1438.5"/>
<text text-anchor="middle" x="923.373" y="-1425.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).execute.func12</text>
<text text-anchor="middle" x="923.373" y="-1414.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.46%)</text>
<text text-anchor="middle" x="923.373" y="-1403.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 1.23s(28.28%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N31 -->
<g id="edge21" class="edge">
<title>N1&#45;&gt;N31</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func12 (0.42s)">
<path fill="none" stroke="#000000" d="M1089.7057,-1495.8859C1052.3042,-1478.3725 1009.6022,-1458.3772 976.8303,-1443.0316"/>
<polygon fill="#000000" stroke="#000000" points="977.9708,-1439.7009 967.4302,-1438.6299 975.0023,-1446.0404 977.9708,-1439.7009"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func12 (0.42s)">
<text text-anchor="middle" x="1066.0972" y="-1466.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="main.(*machine).execute.func3 (0.53s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1138.9356,-1436 1021.8105,-1436 1021.8105,-1400 1138.9356,-1400 1138.9356,-1436"/>
<text text-anchor="middle" x="1080.373" y="-1419.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).execute.func3</text>
<text text-anchor="middle" x="1080.373" y="-1411.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.53s(12.18%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N36 -->
<g id="edge88" class="edge">
<title>N1&#45;&gt;N36</title>
<g id="a_edge88"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func3 (0.01s)">
<path fill="none" stroke="#000000" d="M1142.3651,-1495.816C1137.5076,-1489.8549 1132.5756,-1483.7758 1127.9248,-1478 1119.045,-1466.9723 1109.3218,-1454.7333 1100.9945,-1444.2004"/>
<polygon fill="#000000" stroke="#000000" points="1103.6019,-1441.8547 1094.6582,-1436.1748 1098.1078,-1446.1924 1103.6019,-1441.8547"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func3 (0.01s)">
<text text-anchor="middle" x="1145.0972" y="-1466.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="656.1859,-1436 510.5602,-1436 510.5602,-1400 656.1859,-1400 656.1859,-1436"/>
<text text-anchor="middle" x="583.373" y="-1419.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="583.373" y="-1411.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.69%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N39 -->
<g id="edge78" class="edge">
<title>N1&#45;&gt;N39</title>
<g id="a_edge78"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.03s)">
<path fill="none" stroke="#000000" d="M1046.197,-1517.8988C943.5594,-1502.338 796.7623,-1477.4485 670.373,-1446 662.1834,-1443.9622 653.6414,-1441.5626 645.2469,-1439.0394"/>
<polygon fill="#000000" stroke="#000000" points="646.0774,-1435.633 635.4902,-1436.0349 644.0172,-1442.323 646.0774,-1435.633"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.03s)">
<text text-anchor="middle" x="825.0972" y="-1466.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="825.1859,-1436 679.5602,-1436 679.5602,-1400 825.1859,-1400 825.1859,-1436"/>
<text text-anchor="middle" x="752.373" y="-1419.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="752.373" y="-1411.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(2.99%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N40 -->
<g id="edge36" class="edge">
<title>N1&#45;&gt;N40</title>
<g id="a_edge36"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.13s)">
<path fill="none" stroke="#000000" d="M1046.142,-1507.7904C1008.4876,-1498.9437 967.4025,-1488.6796 929.9248,-1478 886.8537,-1465.7265 876.7984,-1460.3473 834.373,-1446 828.0539,-1443.863 821.4636,-1441.6262 814.8856,-1439.3883"/>
<polygon fill="#000000" stroke="#000000" points="815.8845,-1436.0312 805.29,-1436.1203 813.6277,-1442.6574 815.8845,-1436.0312"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.13s)">
<text text-anchor="middle" x="947.0972" y="-1466.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="runtime.memmove (0.46s)">
<polygon fill="#f8f8f8" stroke="#000000" points="622.6671,-657 440.079,-657 440.079,-605 622.6671,-605 622.6671,-657"/>
<text text-anchor="middle" x="531.373" y="-635.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="531.373" y="-613.4" font-family="Times,serif" font-size="22.00" fill="#000000">0.46s(10.57%)</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="runtime.usleep (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1122.7594,-545.5 993.9867,-545.5 993.9867,-499.5 1122.7594,-499.5 1122.7594,-545.5"/>
<text text-anchor="middle" x="1058.373" y="-526.3" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="1058.373" y="-507.3" font-family="Times,serif" font-size="19.00" fill="#000000">0.32s(7.36%)</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="runtime.gentraceback (1.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="816.4243,-555 636.3218,-555 636.3218,-490 816.4243,-490 816.4243,-555"/>
<text text-anchor="middle" x="726.373" y="-535.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.gentraceback</text>
<text text-anchor="middle" x="726.373" y="-516.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.27s(6.21%)</text>
<text text-anchor="middle" x="726.373" y="-497.8" font-family="Times,serif" font-size="19.00" fill="#000000">of 1.17s(26.90%)</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.findfunc (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="651.8867,-440 548.8594,-440 548.8594,-393 651.8867,-393 651.8867,-440"/>
<text text-anchor="middle" x="600.373" y="-425.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.findfunc</text>
<text text-anchor="middle" x="600.373" y="-412.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.15%)</text>
<text text-anchor="middle" x="600.373" y="-399.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.07s(1.61%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N19 -->
<g id="edge73" class="edge">
<title>N4&#45;&gt;N19</title>
<g id="a_edge73"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.findfunc (0.04s)">
<path fill="none" stroke="#000000" d="M687.5408,-489.8316C671.285,-476.1561 652.4989,-460.3519 636.5386,-446.925"/>
<polygon fill="#000000" stroke="#000000" points="638.3839,-443.9035 628.4784,-440.1442 633.8775,-449.2601 638.3839,-443.9035"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.findfunc (0.04s)">
<text text-anchor="middle" x="680.0972" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.scanstack.func1 (0.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1016.4986,-438.5 884.2475,-438.5 884.2475,-394.5 1016.4986,-394.5 1016.4986,-438.5"/>
<text text-anchor="middle" x="950.373" y="-424.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.scanstack.func1</text>
<text text-anchor="middle" x="950.373" y="-412.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.92%)</text>
<text text-anchor="middle" x="950.373" y="-400.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.64s(14.71%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N25 -->
<g id="edge18" class="edge">
<title>N4&#45;&gt;N25</title>
<g id="a_edge18"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.scanstack.func1 (0.44s)">
<path fill="none" stroke="#000000" d="M787.0736,-489.9219C797.0012,-484.1732 807.0746,-478.0774 816.373,-472 825.0196,-466.3487 825.8389,-462.9139 834.9248,-458 847.2866,-451.3144 860.9457,-445.3181 874.4121,-440.1001"/>
<polygon fill="#000000" stroke="#000000" points="876.0308,-443.231 884.1624,-436.4393 873.5703,-436.6776 876.0308,-443.231"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.scanstack.func1 (0.44s)">
<text text-anchor="middle" x="852.0972" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.adjustframe (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="782.8398,-438.5 669.9062,-438.5 669.9062,-394.5 782.8398,-394.5 782.8398,-438.5"/>
<text text-anchor="middle" x="726.373" y="-424.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.adjustframe</text>
<text text-anchor="middle" x="726.373" y="-412.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.69%)</text>
<text text-anchor="middle" x="726.373" y="-400.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.38s(8.74%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N27 -->
<g id="edge25" class="edge">
<title>N4&#45;&gt;N27</title>
<g id="a_edge25"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.adjustframe (0.32s)">
<path fill="none" stroke="#000000" d="M726.373,-489.8316C726.373,-476.81 726.373,-461.8585 726.373,-448.867"/>
<polygon fill="#000000" stroke="#000000" points="729.8731,-448.5004 726.373,-438.5005 722.8731,-448.5005 729.8731,-448.5004"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.adjustframe (0.32s)">
<text text-anchor="middle" x="743.0972" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.funcspdelta (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="531.0104,-438.5 419.7357,-438.5 419.7357,-394.5 531.0104,-394.5 531.0104,-438.5"/>
<text text-anchor="middle" x="475.373" y="-424.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.funcspdelta</text>
<text text-anchor="middle" x="475.373" y="-412.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.69%)</text>
<text text-anchor="middle" x="475.373" y="-400.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.10s(2.30%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N28 -->
<g id="edge38" class="edge">
<title>N4&#45;&gt;N28</title>
<g id="a_edge38"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.funcspdelta (0.10s)">
<path fill="none" stroke="#000000" d="M649.359,-489.9761C613.2671,-474.7341 570.853,-456.8222 536.9383,-442.4997"/>
<polygon fill="#000000" stroke="#000000" points="538.1841,-439.2265 527.6102,-438.5603 535.4608,-445.6751 538.1841,-439.2265"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.funcspdelta (0.10s)">
<text text-anchor="middle" x="618.0972" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.adjustpointers (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="788.3463,-341.5 610.3998,-341.5 610.3998,-297.5 788.3463,-297.5 788.3463,-341.5"/>
<text text-anchor="middle" x="699.373" y="-323.1" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.adjustpointers</text>
<text text-anchor="middle" x="699.373" y="-305.1" font-family="Times,serif" font-size="18.00" fill="#000000">0.26s(5.98%)</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.scanobject (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="952.8239,-1040 799.9222,-1040 799.9222,-978 952.8239,-978 952.8239,-1040"/>
<text text-anchor="middle" x="876.373" y="-1021.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.scanobject</text>
<text text-anchor="middle" x="876.373" y="-1003.6" font-family="Times,serif" font-size="18.00" fill="#000000">0.22s(5.06%)</text>
<text text-anchor="middle" x="876.373" y="-985.6" font-family="Times,serif" font-size="18.00" fill="#000000">of 0.33s(7.59%)</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.heapBitsForObject (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="871.5062,-135 681.2399,-135 681.2399,-95 871.5062,-95 871.5062,-135"/>
<text text-anchor="middle" x="776.373" y="-118.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.heapBitsForObject</text>
<text text-anchor="middle" x="776.373" y="-102.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.16s(3.68%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N8 -->
<g id="edge48" class="edge">
<title>N6&#45;&gt;N8</title>
<g id="a_edge48"><a xlink:title="runtime.scanobject &#45;&gt; runtime.heapBitsForObject (0.08s)">
<path fill="none" stroke="#000000" d="M952.6973,-996.7367C1033.7717,-981.4953 1150.373,-952.2337 1150.373,-910 1150.373,-910 1150.373,-910 1150.373,-218 1150.373,-93.0929 1002.7583,-164.9726 880.373,-140 876.0603,-139.12 871.6545,-138.1886 867.2101,-137.2229"/>
<polygon fill="#000000" stroke="#000000" points="867.9594,-133.8041 857.4394,-135.0607 866.4469,-140.6388 867.9594,-133.8041"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.scanobject &#45;&gt; runtime.heapBitsForObject (0.08s)">
<text text-anchor="middle" x="1167.0972" y="-575.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="runtime.greyobject (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1011.501,-140 889.2451,-140 889.2451,-90 1011.501,-90 1011.501,-140"/>
<text text-anchor="middle" x="950.373" y="-124.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.greyobject</text>
<text text-anchor="middle" x="950.373" y="-110.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.09s(2.07%)</text>
<text text-anchor="middle" x="950.373" y="-96.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.27s(6.21%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N14 -->
<g id="edge85" class="edge">
<title>N6&#45;&gt;N14</title>
<g id="a_edge85"><a xlink:title="runtime.scanobject &#45;&gt; runtime.greyobject (0.03s)">
<path fill="none" stroke="#000000" d="M952.646,-1002.0064C1025.4693,-994.27 1129.1681,-980.1725 1164.373,-960 1189.5541,-945.5713 1206.373,-939.0219 1206.373,-910 1206.373,-910 1206.373,-910 1206.373,-218 1206.373,-185.4492 1191.6152,-175.8164 1164.373,-158 1141.1331,-142.8011 1074.3672,-130.9118 1021.5272,-123.5239"/>
<polygon fill="#000000" stroke="#000000" points="1021.8818,-120.0399 1011.4997,-122.1519 1020.9328,-126.9753 1021.8818,-120.0399"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.scanobject &#45;&gt; runtime.greyobject (0.03s)">
<text text-anchor="middle" x="1223.0972" y="-575.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.scanblock (0.49s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1017.1155,-246 883.6306,-246 883.6306,-190 1017.1155,-190 1017.1155,-246"/>
<text text-anchor="middle" x="950.373" y="-229.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.scanblock</text>
<text text-anchor="middle" x="950.373" y="-213.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.17s(3.91%)</text>
<text text-anchor="middle" x="950.373" y="-197.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.49s(11.26%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N8 -->
<g id="edge47" class="edge">
<title>N7&#45;&gt;N8</title>
<g id="a_edge47"><a xlink:title="runtime.scanblock &#45;&gt; runtime.heapBitsForObject (0.08s)">
<path fill="none" stroke="#000000" d="M902.8268,-189.8548C876.6342,-174.35 844.3885,-155.262 819.0151,-140.2421"/>
<polygon fill="#000000" stroke="#000000" points="820.7362,-137.1937 810.348,-135.1116 817.1704,-143.2175 820.7362,-137.1937"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.scanblock &#45;&gt; runtime.heapBitsForObject (0.08s)">
<text text-anchor="middle" x="886.0972" y="-160.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N14 -->
<g id="edge31" class="edge">
<title>N7&#45;&gt;N14</title>
<g id="a_edge31"><a xlink:title="runtime.scanblock &#45;&gt; runtime.greyobject (0.24s)">
<path fill="none" stroke="#000000" d="M950.373,-189.8548C950.373,-177.756 950.373,-163.4754 950.373,-150.6485"/>
<polygon fill="#000000" stroke="#000000" points="953.8731,-150.2955 950.373,-140.2956 946.8731,-150.2956 953.8731,-150.2955"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.scanblock &#45;&gt; runtime.greyobject (0.24s)">
<text text-anchor="middle" x="967.0972" y="-160.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.heapBitsSetType (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="408.334,-1029 230.4121,-1029 230.4121,-989 408.334,-989 408.334,-1029"/>
<text text-anchor="middle" x="319.373" y="-1012.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="319.373" y="-996.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.16s(3.68%)</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.(*gcWork).put (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1031.9981,-40 868.748,-40 868.748,0 1031.9981,0 1031.9981,-40"/>
<text text-anchor="middle" x="950.373" y="-23.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.(*gcWork).put</text>
<text text-anchor="middle" x="950.373" y="-7.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.15s(3.45%)</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.systemstack (0.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="667.9173,-928 586.8288,-928 586.8288,-892 667.9173,-892 667.9173,-928"/>
<text text-anchor="middle" x="627.373" y="-911.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="627.373" y="-903.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.91s(20.92%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N72 -->
<g id="edge87" class="edge">
<title>N11&#45;&gt;N72</title>
<g id="a_edge87"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.02s)">
<path fill="none" stroke="#000000" d="M1435.1556,-1389.853C1403.0472,-1362.1015 1350.6261,-1320.0312 1299.373,-1293 1260.3372,-1272.4123 1247.3125,-1274.7382 1205.373,-1261 1109.7289,-1229.6697 1088.4805,-1210.5243 989.373,-1193 945.6235,-1185.2642 625.3295,-1201.8398 589.9248,-1175 543.6165,-1139.8943 533.957,-1121.0932 579.373,-978 584.2391,-962.6685 593.9485,-947.8134 603.3694,-935.919"/>
<polygon fill="#000000" stroke="#000000" points="606.0917,-938.1193 609.7824,-928.188 600.704,-933.6501 606.0917,-938.1193"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.02s)">
<text text-anchor="middle" x="607.0972" y="-1163.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="runtime.mallocgc (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="532.2545,-1143 410.4916,-1143 410.4916,-1090 532.2545,-1090 532.2545,-1143"/>
<text text-anchor="middle" x="471.373" y="-1127" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="471.373" y="-1112" font-family="Times,serif" font-size="15.00" fill="#000000">0.13s(2.99%)</text>
<text text-anchor="middle" x="471.373" y="-1097" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.39s(8.97%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N9 -->
<g id="edge34" class="edge">
<title>N12&#45;&gt;N9</title>
<g id="a_edge34"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.16s)">
<path fill="none" stroke="#000000" d="M433.8,-1089.927C410.1541,-1073.2037 379.7734,-1051.7174 356.2595,-1035.0875"/>
<polygon fill="#000000" stroke="#000000" points="358.1179,-1032.1149 347.9324,-1029.1982 354.0759,-1037.8301 358.1179,-1032.1149"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.16s)">
<text text-anchor="middle" x="422.0972" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.(*mcache).nextFree (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="532.4987,-1027 426.2474,-1027 426.2474,-991 532.4987,-991 532.4987,-1027"/>
<text text-anchor="middle" x="479.373" y="-1010.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="479.373" y="-1002.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(1.38%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N41 -->
<g id="edge60" class="edge">
<title>N12&#45;&gt;N41</title>
<g id="a_edge60"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.06s)">
<path fill="none" stroke="#000000" d="M473.3506,-1089.927C474.5424,-1073.9119 476.0593,-1053.5287 477.2725,-1037.2257"/>
<polygon fill="#000000" stroke="#000000" points="480.7676,-1037.4206 478.0195,-1027.1884 473.7869,-1036.901 480.7676,-1037.4206"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.06s)">
<text text-anchor="middle" x="493.0972" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.gcAssistAlloc (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="212.1429,-1027 124.6032,-1027 124.6032,-991 212.1429,-991 212.1429,-1027"/>
<text text-anchor="middle" x="168.373" y="-1010.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcAssistAlloc</text>
<text text-anchor="middle" x="168.373" y="-1002.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.92%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N50 -->
<g id="edge75" class="edge">
<title>N12&#45;&gt;N50</title>
<g id="a_edge75"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcAssistAlloc (0.04s)">
<path fill="none" stroke="#000000" d="M410.6125,-1102.1382C359.0934,-1088.9707 283.8338,-1067.3779 221.373,-1040 216.1864,-1037.7266 210.87,-1035.0617 205.7011,-1032.2658"/>
<polygon fill="#000000" stroke="#000000" points="207.0466,-1029.0067 196.6161,-1027.1478 203.6108,-1035.1055 207.0466,-1029.0067"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcAssistAlloc (0.04s)">
<text text-anchor="middle" x="319.0972" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="runtime.duffcopy (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="535.6629,-39 415.0831,-39 415.0831,-1 535.6629,-1 535.6629,-39"/>
<text text-anchor="middle" x="475.373" y="-23" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.duffcopy</text>
<text text-anchor="middle" x="475.373" y="-8" font-family="Times,serif" font-size="15.00" fill="#000000">0.11s(2.53%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N10 -->
<g id="edge35" class="edge">
<title>N14&#45;&gt;N10</title>
<g id="a_edge35"><a xlink:title="runtime.greyobject &#45;&gt; runtime.(*gcWork).put (0.15s)">
<path fill="none" stroke="#000000" d="M950.373,-89.5417C950.373,-77.4331 950.373,-62.869 950.373,-50.2046"/>
<polygon fill="#000000" stroke="#000000" points="953.8731,-50.1089 950.373,-40.1089 946.8731,-50.109 953.8731,-50.1089"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.greyobject &#45;&gt; runtime.(*gcWork).put (0.15s)">
<text text-anchor="middle" x="967.0972" y="-60.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime/internal/atomic.Or8 (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1200.832,-38 1049.9141,-38 1049.9141,-2 1200.832,-2 1200.832,-38"/>
<text text-anchor="middle" x="1125.373" y="-22.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime/internal/atomic.Or8</text>
<text text-anchor="middle" x="1125.373" y="-10.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.69%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N30 -->
<g id="edge80" class="edge">
<title>N14&#45;&gt;N30</title>
<g id="a_edge80"><a xlink:title="runtime.greyobject &#45;&gt; runtime/internal/atomic.Or8 (0.03s)">
<path fill="none" stroke="#000000" d="M996.8104,-89.7912C1023.6219,-75.2364 1057.0856,-57.0703 1083.1506,-42.9207"/>
<polygon fill="#000000" stroke="#000000" points="1084.9198,-45.9428 1092.0385,-38.0959 1081.5801,-39.7909 1084.9198,-45.9428"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.greyobject &#45;&gt; runtime/internal/atomic.Or8 (0.03s)">
<text text-anchor="middle" x="1071.0972" y="-60.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="runtime.pcvalue (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="528.4705,-140 422.2756,-140 422.2756,-90 528.4705,-90 528.4705,-140"/>
<text text-anchor="middle" x="475.373" y="-124.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.pcvalue</text>
<text text-anchor="middle" x="475.373" y="-110.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.08s(1.84%)</text>
<text text-anchor="middle" x="475.373" y="-96.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.15s(3.45%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N13 -->
<g id="edge55" class="edge">
<title>N15&#45;&gt;N13</title>
<g id="a_edge55"><a xlink:title="runtime.pcvalue &#45;&gt; runtime.duffcopy (0.07s)">
<path fill="none" stroke="#000000" d="M475.373,-89.5417C475.373,-77.1755 475.373,-62.2482 475.373,-49.3989"/>
<polygon fill="#000000" stroke="#000000" points="478.8731,-49.196 475.373,-39.1961 471.8731,-49.1961 478.8731,-49.196"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.pcvalue &#45;&gt; runtime.duffcopy (0.07s)">
<text text-anchor="middle" x="492.0972" y="-60.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.typedmemmove (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="849.1184,-1243 695.6277,-1243 695.6277,-1193 849.1184,-1193 849.1184,-1243"/>
<text text-anchor="middle" x="772.373" y="-1227.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="772.373" y="-1213.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.07s(1.61%)</text>
<text text-anchor="middle" x="772.373" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.09s(2.07%)</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.convT2I (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="975.098,-1340 871.6481,-1340 871.6481,-1293 975.098,-1293 975.098,-1340"/>
<text text-anchor="middle" x="923.373" y="-1325.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="923.373" y="-1312.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.06s(1.38%)</text>
<text text-anchor="middle" x="923.373" y="-1299.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.39s(8.97%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N20 -->
<g id="edge24" class="edge">
<title>N17&#45;&gt;N20</title>
<g id="a_edge24"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.33s)">
<path fill="none" stroke="#000000" d="M923.373,-1292.9068C923.373,-1280.6915 923.373,-1265.5546 923.373,-1252.092"/>
<polygon fill="#000000" stroke="#000000" points="926.8731,-1251.742 923.373,-1241.7421 919.8731,-1251.7421 926.8731,-1251.742"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.33s)">
<text text-anchor="middle" x="940.0972" y="-1263.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime/internal/atomic.Cas (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="902.3621,-649 740.384,-649 740.384,-613 902.3621,-613 902.3621,-649"/>
<text text-anchor="middle" x="821.373" y="-633.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime/internal/atomic.Cas</text>
<text text-anchor="middle" x="821.373" y="-620.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.06s(1.38%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N12 -->
<g id="edge23" class="edge">
<title>N20&#45;&gt;N12</title>
<g id="a_edge23"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (0.35s)">
<path fill="none" stroke="#000000" d="M866.612,-1195.0087C863.8487,-1194.2562 861.0929,-1193.5793 858.373,-1193 783.8401,-1177.126 583.2976,-1210.6097 515.9248,-1175 505.7281,-1169.6105 497.1797,-1160.7393 490.3862,-1151.515"/>
<polygon fill="#000000" stroke="#000000" points="493.1487,-1149.3521 484.6437,-1143.0342 487.3524,-1153.2769 493.1487,-1149.3521"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (0.35s)">
<text text-anchor="middle" x="533.0972" y="-1163.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.scanframeworker (0.60s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1025.2832,-343 875.4629,-343 875.4629,-296 1025.2832,-296 1025.2832,-343"/>
<text text-anchor="middle" x="950.373" y="-328.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.scanframeworker</text>
<text text-anchor="middle" x="950.373" y="-315.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.15%)</text>
<text text-anchor="middle" x="950.373" y="-302.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.60s(13.79%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N7 -->
<g id="edge17" class="edge">
<title>N21&#45;&gt;N7</title>
<g id="a_edge17"><a xlink:title="runtime.scanframeworker &#45;&gt; runtime.scanblock (0.49s)">
<path fill="none" stroke="#000000" d="M950.373,-295.9587C950.373,-284.2215 950.373,-269.7275 950.373,-256.4336"/>
<polygon fill="#000000" stroke="#000000" points="953.8731,-256.1049 950.373,-246.1049 946.8731,-256.105 953.8731,-256.1049"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.scanframeworker &#45;&gt; runtime.scanblock (0.49s)">
<text text-anchor="middle" x="967.0972" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.49s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.stackmapdata (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="865.0006,-236 743.7455,-236 743.7455,-200 865.0006,-200 865.0006,-236"/>
<text text-anchor="middle" x="804.373" y="-220.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.stackmapdata</text>
<text text-anchor="middle" x="804.373" y="-208.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.92%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N26 -->
<g id="edge84" class="edge">
<title>N21&#45;&gt;N26</title>
<g id="a_edge84"><a xlink:title="runtime.scanframeworker &#45;&gt; runtime.stackmapdata (0.03s)">
<path fill="none" stroke="#000000" d="M917.4759,-295.8321C903.6066,-285.9217 887.2567,-274.3272 872.373,-264 861.9436,-256.7634 850.5407,-248.9945 840.1038,-241.9395"/>
<polygon fill="#000000" stroke="#000000" points="841.8544,-238.8985 831.6067,-236.2085 837.9402,-244.7019 841.8544,-238.8985"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.scanframeworker &#45;&gt; runtime.stackmapdata (0.03s)">
<text text-anchor="middle" x="909.0972" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.pcdatavalue (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="612.362,-238.5 506.3841,-238.5 506.3841,-197.5 612.362,-197.5 612.362,-238.5"/>
<text text-anchor="middle" x="559.373" y="-225.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.pcdatavalue</text>
<text text-anchor="middle" x="559.373" y="-214.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.46%)</text>
<text text-anchor="middle" x="559.373" y="-203.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.10s(2.30%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N34 -->
<g id="edge83" class="edge">
<title>N21&#45;&gt;N34</title>
<g id="a_edge83"><a xlink:title="runtime.scanframeworker &#45;&gt; runtime.pcdatavalue (0.03s)">
<path fill="none" stroke="#000000" d="M875.1177,-299.5987C870.4674,-298.3784 865.8571,-297.1711 861.373,-296 778.7377,-274.419 683.2942,-249.8233 622.1905,-234.1191"/>
<polygon fill="#000000" stroke="#000000" points="622.8694,-230.6799 612.313,-231.5811 621.1273,-237.4597 622.8694,-230.6799"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.scanframeworker &#45;&gt; runtime.pcdatavalue (0.03s)">
<text text-anchor="middle" x="804.0972" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.tracebackdefers (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="976.1061,-546 834.6399,-546 834.6399,-499 976.1061,-499 976.1061,-546"/>
<text text-anchor="middle" x="905.373" y="-531.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.tracebackdefers</text>
<text text-anchor="middle" x="905.373" y="-518.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.15%)</text>
<text text-anchor="middle" x="905.373" y="-505.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.34s(7.82%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N19 -->
<g id="edge86" class="edge">
<title>N22&#45;&gt;N19</title>
<g id="a_edge86"><a xlink:title="runtime.tracebackdefers &#45;&gt; runtime.findfunc (0.03s)">
<path fill="none" stroke="#000000" d="M847.7377,-498.956C840.2217,-495.9238 832.6188,-492.8755 825.373,-490 804.7948,-481.8333 798.2676,-482.7711 778.9248,-472 769.9001,-466.9746 769.8334,-462.1474 760.373,-458 722.0546,-441.2014 706.4684,-450.6634 661.7398,-439.7373"/>
<polygon fill="#000000" stroke="#000000" points="662.6262,-436.3515 652.0633,-437.1735 660.8334,-443.118 662.6262,-436.3515"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.tracebackdefers &#45;&gt; runtime.findfunc (0.03s)">
<text text-anchor="middle" x="796.0972" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N25 -->
<g id="edge32" class="edge">
<title>N22&#45;&gt;N25</title>
<g id="a_edge32"><a xlink:title="runtime.tracebackdefers &#45;&gt; runtime.scanstack.func1 (0.20s)">
<path fill="none" stroke="#000000" d="M916.3834,-498.9721C920.2655,-490.5092 924.6003,-480.8644 928.373,-472 931.6266,-464.3555 934.9995,-456.0571 938.0981,-448.2636"/>
<polygon fill="#000000" stroke="#000000" points="941.4374,-449.3361 941.8467,-438.7492 934.9246,-446.7702 941.4374,-449.3361"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.tracebackdefers &#45;&gt; runtime.scanstack.func1 (0.20s)">
<text text-anchor="middle" x="951.0972" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N27 -->
<g id="edge61" class="edge">
<title>N22&#45;&gt;N27</title>
<g id="a_edge61"><a xlink:title="runtime.tracebackdefers &#45;&gt; runtime.adjustframe (0.06s)">
<path fill="none" stroke="#000000" d="M898.5621,-498.8622C893.4513,-485.1005 885.1085,-468.4558 872.373,-458 859.776,-447.6578 825.2625,-437.6205 792.9547,-430.0083"/>
<polygon fill="#000000" stroke="#000000" points="793.5556,-426.5552 783.0257,-427.7261 791.9875,-433.3773 793.5556,-426.5552"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.tracebackdefers &#45;&gt; runtime.adjustframe (0.06s)">
<text text-anchor="middle" x="901.0972" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.assertI2T (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="812.8457,-1338.5 711.9004,-1338.5 711.9004,-1294.5 812.8457,-1294.5 812.8457,-1338.5"/>
<text text-anchor="middle" x="762.373" y="-1324.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="762.373" y="-1312.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.92%)</text>
<text text-anchor="middle" x="762.373" y="-1300.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.13s(2.99%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N16 -->
<g id="edge39" class="edge">
<title>N23&#45;&gt;N16</title>
<g id="a_edge39"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.09s)">
<path fill="none" stroke="#000000" d="M764.6422,-1294.1488C765.8729,-1282.0268 767.4219,-1266.7686 768.8096,-1253.0996"/>
<polygon fill="#000000" stroke="#000000" points="772.3034,-1253.3372 769.8314,-1243.0348 765.3392,-1252.6301 772.3034,-1253.3372"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.09s)">
<text text-anchor="middle" x="785.0972" y="-1263.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.memclr (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="302.8477,-337.5 209.8984,-337.5 209.8984,-301.5 302.8477,-301.5 302.8477,-337.5"/>
<text text-anchor="middle" x="256.373" y="-321.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="256.373" y="-309.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.92%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N21 -->
<g id="edge13" class="edge">
<title>N25&#45;&gt;N21</title>
<g id="a_edge13"><a xlink:title="runtime.scanstack.func1 &#45;&gt; runtime.scanframeworker (0.60s)">
<path fill="none" stroke="#000000" d="M950.373,-394.4892C950.373,-382.2845 950.373,-366.8516 950.373,-353.1634"/>
<polygon fill="#000000" stroke="#000000" points="953.8731,-353.1184 950.373,-343.1184 946.8731,-353.1184 953.8731,-353.1184"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="runtime.scanstack.func1 &#45;&gt; runtime.scanframeworker (0.60s)">
<text text-anchor="middle" x="967.0972" y="-363.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.60s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N5 -->
<g id="edge28" class="edge">
<title>N27&#45;&gt;N5</title>
<g id="a_edge28"><a xlink:title="runtime.adjustframe &#45;&gt; runtime.adjustpointers (0.26s)">
<path fill="none" stroke="#000000" d="M720.2463,-394.4892C716.7157,-381.805 712.2145,-365.634 708.2965,-351.5585"/>
<polygon fill="#000000" stroke="#000000" points="711.6224,-350.4547 705.569,-341.7595 704.8788,-352.3318 711.6224,-350.4547"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.adjustframe &#45;&gt; runtime.adjustpointers (0.26s)">
<text text-anchor="middle" x="732.0972" y="-363.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N26 -->
<g id="edge89" class="edge">
<title>N27&#45;&gt;N26</title>
<g id="a_edge89"><a xlink:title="runtime.adjustframe &#45;&gt; runtime.stackmapdata (0.01s)">
<path fill="none" stroke="#000000" d="M756.1442,-394.4219C771.3561,-381.3213 788.492,-363.3212 797.373,-343 810.9138,-312.0167 810.5826,-272.5298 808.2386,-246.3156"/>
<polygon fill="#000000" stroke="#000000" points="811.7114,-245.873 807.1861,-236.2933 804.7497,-246.6041 811.7114,-245.873"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.adjustframe &#45;&gt; runtime.stackmapdata (0.01s)">
<text text-anchor="middle" x="826.0972" y="-315.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N34 -->
<g id="edge49" class="edge">
<title>N27&#45;&gt;N34</title>
<g id="a_edge49"><a xlink:title="runtime.adjustframe &#45;&gt; runtime.pcdatavalue (0.07s)">
<path fill="none" stroke="#000000" d="M671.9745,-394.4877C628.73,-376.4676 574.4324,-352.4636 567.9248,-343 548.9925,-315.4679 549.7013,-275.9709 553.297,-248.7804"/>
<polygon fill="#000000" stroke="#000000" points="556.7927,-249.0735 554.8423,-238.6597 549.8729,-248.0168 556.7927,-249.0735"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.adjustframe &#45;&gt; runtime.pcdatavalue (0.07s)">
<text text-anchor="middle" x="585.0972" y="-315.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N15 -->
<g id="edge51" class="edge">
<title>N28&#45;&gt;N15</title>
<g id="a_edge51"><a xlink:title="runtime.funcspdelta &#45;&gt; runtime.pcvalue (0.07s)">
<path fill="none" stroke="#000000" d="M475.373,-394.33C475.373,-342.5225 475.373,-213.1653 475.373,-150.3446"/>
<polygon fill="#000000" stroke="#000000" points="478.8731,-150.1377 475.373,-140.1377 471.8731,-150.1378 478.8731,-150.1377"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.funcspdelta &#45;&gt; runtime.pcvalue (0.07s)">
<text text-anchor="middle" x="492.0972" y="-266.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.newstack (1.60s)">
<polygon fill="#f8f8f8" stroke="#000000" points="775.8457,-842 674.9004,-842 674.9004,-798 775.8457,-798 775.8457,-842"/>
<text text-anchor="middle" x="725.373" y="-828.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="725.373" y="-816.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.69%)</text>
<text text-anchor="middle" x="725.373" y="-804.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.60s(36.78%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N13 -->
<g id="edge76" class="edge">
<title>N29&#45;&gt;N13</title>
<g id="a_edge76"><a xlink:title="runtime.newstack &#45;&gt; runtime.duffcopy (0.04s)">
<path fill="none" stroke="#000000" d="M674.7957,-800.9035C671.6218,-799.8766 668.4624,-798.899 665.373,-798 594.8313,-777.4731 342.373,-800.9676 342.373,-727.5 342.373,-727.5 342.373,-727.5 342.373,-115 342.373,-79.8762 373.4674,-56.5083 405.5866,-41.7395"/>
<polygon fill="#000000" stroke="#000000" points="407.3173,-44.804 415.0993,-37.6143 404.5323,-38.3818 407.3173,-44.804"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.duffcopy (0.04s)">
<text text-anchor="middle" x="359.0972" y="-412.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.castogscanstatus (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="902.0405,-748 776.7056,-748 776.7056,-707 902.0405,-707 902.0405,-748"/>
<text text-anchor="middle" x="839.373" y="-735.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.castogscanstatus</text>
<text text-anchor="middle" x="839.373" y="-724.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.46%)</text>
<text text-anchor="middle" x="839.373" y="-713.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.08s(1.84%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N33 -->
<g id="edge45" class="edge">
<title>N29&#45;&gt;N33</title>
<g id="a_edge45"><a xlink:title="runtime.newstack &#45;&gt; runtime.castogscanstatus (0.08s)">
<path fill="none" stroke="#000000" d="M752.6789,-797.8439C768.6423,-784.8912 788.9167,-768.4404 805.8447,-754.705"/>
<polygon fill="#000000" stroke="#000000" points="808.2924,-757.2262 813.8524,-748.2075 803.8818,-751.7905 808.2924,-757.2262"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.castogscanstatus (0.08s)">
<text text-anchor="middle" x="806.0972" y="-768.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.copystack (1.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="689.1429,-745.5 611.6032,-745.5 611.6032,-709.5 689.1429,-709.5 689.1429,-745.5"/>
<text text-anchor="middle" x="650.373" y="-729.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.copystack</text>
<text text-anchor="middle" x="650.373" y="-721.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.02s(23.45%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N48 -->
<g id="edge6" class="edge">
<title>N29&#45;&gt;N48</title>
<g id="a_edge6"><a xlink:title="runtime.newstack &#45;&gt; runtime.copystack (1.02s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M695.5938,-797.9505C689.3187,-792.502 683.0534,-786.3834 677.9248,-780 671.8354,-772.4207 666.4888,-763.2875 662.1659,-754.7787"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="665.2196,-753.0525 657.7351,-745.5536 658.9097,-756.0831 665.2196,-753.0525"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.copystack (1.02s)">
<text text-anchor="middle" x="695.0972" y="-768.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.02s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.scanstack (0.93s)">
<polygon fill="#f8f8f8" stroke="#000000" points="998.1429,-649 920.6032,-649 920.6032,-613 998.1429,-613 998.1429,-649"/>
<text text-anchor="middle" x="959.373" y="-632.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.scanstack</text>
<text text-anchor="middle" x="959.373" y="-624.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.93s(21.38%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N69 -->
<g id="edge20" class="edge">
<title>N29&#45;&gt;N69</title>
<g id="a_edge20"><a xlink:title="runtime.newstack &#45;&gt; runtime.scanstack (0.43s)">
<path fill="none" stroke="#000000" d="M720.4834,-797.9598C716.3412,-773.1831 713.87,-733.0252 733.9248,-707 783.9381,-642.0976 834.4757,-685.2923 911.373,-657 914.2596,-655.938 917.1856,-654.7274 920.0948,-653.423"/>
<polygon fill="#000000" stroke="#000000" points="921.7723,-656.4998 929.26,-649.0042 918.7323,-650.1944 921.7723,-656.4998"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.scanstack (0.43s)">
<text text-anchor="middle" x="751.0972" y="-723.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N1 -->
<g id="edge7" class="edge">
<title>N31&#45;&gt;N1</title>
<g id="a_edge7"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; main.(*machine).execute (0.81s)">
<path fill="none" stroke="#000000" d="M940.3444,-1438.6488C951.9687,-1451.5926 968.4057,-1467.7156 985.9248,-1478 1001.5677,-1487.183 1018.8049,-1495.0439 1036.3157,-1501.7376"/>
<polygon fill="#000000" stroke="#000000" points="1035.4704,-1505.1565 1046.0637,-1505.3373 1037.8953,-1498.5899 1035.4704,-1505.1565"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; main.(*machine).execute (0.81s)">
<text text-anchor="middle" x="1003.0972" y="-1466.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.81s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N17 -->
<g id="edge22" class="edge">
<title>N31&#45;&gt;N17</title>
<g id="a_edge22"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; runtime.convT2I (0.39s)">
<path fill="none" stroke="#000000" d="M923.373,-1397.46C923.373,-1383.9992 923.373,-1366.0803 923.373,-1350.5227"/>
<polygon fill="#000000" stroke="#000000" points="926.8731,-1350.2131 923.373,-1340.2132 919.8731,-1350.2132 926.8731,-1350.2131"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; runtime.convT2I (0.39s)">
<text text-anchor="middle" x="940.0972" y="-1360.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.(*mheap).allocSpanLocked (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1820.5949,-1800.5 1646.1512,-1800.5 1646.1512,-1759.5 1820.5949,-1759.5 1820.5949,-1800.5"/>
<text text-anchor="middle" x="1733.373" y="-1787.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).allocSpanLocked</text>
<text text-anchor="middle" x="1733.373" y="-1776.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.46%)</text>
<text text-anchor="middle" x="1733.373" y="-1765.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.03s(0.69%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N18 -->
<g id="edge59" class="edge">
<title>N33&#45;&gt;N18</title>
<g id="a_edge59"><a xlink:title="runtime.castogscanstatus &#45;&gt; runtime/internal/atomic.Cas (0.06s)">
<path fill="none" stroke="#000000" d="M835.4673,-706.5609C832.8798,-692.689 829.4546,-674.3262 826.6288,-659.1765"/>
<polygon fill="#000000" stroke="#000000" points="830.0602,-658.485 824.7858,-649.2963 823.1789,-659.7686 830.0602,-658.485"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.castogscanstatus &#45;&gt; runtime/internal/atomic.Cas (0.06s)">
<text text-anchor="middle" x="849.0972" y="-677.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N15 -->
<g id="edge46" class="edge">
<title>N34&#45;&gt;N15</title>
<g id="a_edge46"><a xlink:title="runtime.pcdatavalue &#45;&gt; runtime.pcvalue (0.08s)">
<path fill="none" stroke="#000000" d="M542.3744,-197.1564C530.9438,-183.1403 515.6287,-164.3611 502.5262,-148.2949"/>
<polygon fill="#000000" stroke="#000000" points="504.9408,-145.7178 495.9083,-140.1802 499.5161,-150.1418 504.9408,-145.7178"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.pcdatavalue &#45;&gt; runtime.pcvalue (0.08s)">
<text text-anchor="middle" x="537.0972" y="-160.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.gcAssistAlloc.func1 (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="511.8535,-839 380.8926,-839 380.8926,-801 511.8535,-801 511.8535,-839"/>
<text text-anchor="middle" x="446.373" y="-827" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.gcAssistAlloc.func1</text>
<text text-anchor="middle" x="446.373" y="-817" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.23%)</text>
<text text-anchor="middle" x="446.373" y="-807" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.04s(0.92%)</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="main.(*machine).executeQuotation (1.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1239.7169,-1334.5 1111.0292,-1334.5 1111.0292,-1298.5 1239.7169,-1298.5 1239.7169,-1334.5"/>
<text text-anchor="middle" x="1175.373" y="-1318.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="1175.373" y="-1310.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.57s(36.09%)</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N38 -->
<g id="edge14" class="edge">
<title>N36&#45;&gt;N38</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute.func3 &#45;&gt; main.(*machine).executeQuotation (0.53s)">
<path fill="none" stroke="#000000" d="M1093.3042,-1399.9731C1102.4434,-1387.678 1115.273,-1371.2802 1127.9248,-1358 1133.2183,-1352.4435 1139.1721,-1346.8172 1145.0272,-1341.5763"/>
<polygon fill="#000000" stroke="#000000" points="1147.6545,-1343.9283 1152.8789,-1334.7111 1143.0469,-1338.6585 1147.6545,-1343.9283"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute.func3 &#45;&gt; main.(*machine).executeQuotation (0.53s)">
<text text-anchor="middle" x="1145.0972" y="-1360.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.53s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="main.(*machine).execute.func8 (1.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1343.9356,-1436 1226.8105,-1436 1226.8105,-1400 1343.9356,-1400 1343.9356,-1436"/>
<text text-anchor="middle" x="1285.373" y="-1419.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).execute.func8</text>
<text text-anchor="middle" x="1285.373" y="-1411.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.57s(36.09%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N38 -->
<g id="edge2" class="edge">
<title>N37&#45;&gt;N38</title>
<g id="a_edge2"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).executeQuotation (1.57s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M1265.7073,-1399.8538C1248.1406,-1383.6446 1222.2343,-1359.7401 1202.6638,-1341.6819"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1204.9623,-1339.0405 1195.2395,-1334.8313 1200.2153,-1344.185 1204.9623,-1339.0405"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).executeQuotation (1.57s)">
<text text-anchor="middle" x="1251.0972" y="-1360.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.57s</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N38&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (1.56s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M1175.373,-1334.5427C1175.373,-1367.2738 1175.373,-1437.5085 1175.373,-1485.7541"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1171.8731,-1485.9955 1175.373,-1495.9955 1178.8731,-1485.9956 1171.8731,-1485.9955"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (1.56s)">
<text text-anchor="middle" x="1192.0972" y="-1413.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.56s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.mapassign1 (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="524.53,-1334.5 444.2161,-1334.5 444.2161,-1298.5 524.53,-1298.5 524.53,-1334.5"/>
<text text-anchor="middle" x="484.373" y="-1318.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="484.373" y="-1310.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.69%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N59 -->
<g id="edge79" class="edge">
<title>N39&#45;&gt;N59</title>
<g id="a_edge79"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.03s)">
<path fill="none" stroke="#000000" d="M565.6738,-1399.8538C550.0037,-1383.788 526.9602,-1360.1626 509.4036,-1342.1627"/>
<polygon fill="#000000" stroke="#000000" points="511.7408,-1339.5462 502.2528,-1334.8313 506.7297,-1344.4338 511.7408,-1339.5462"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.03s)">
<text text-anchor="middle" x="554.0972" y="-1360.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N23 -->
<g id="edge37" class="edge">
<title>N40&#45;&gt;N23</title>
<g id="a_edge37"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.13s)">
<path fill="none" stroke="#000000" d="M754.1608,-1399.8538C755.5565,-1385.6876 757.5313,-1365.6436 759.1946,-1348.7614"/>
<polygon fill="#000000" stroke="#000000" points="762.6846,-1349.0343 760.182,-1338.7393 755.7183,-1348.3479 762.6846,-1349.0343"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.13s)">
<text text-anchor="middle" x="775.0972" y="-1360.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N72 -->
<g id="edge58" class="edge">
<title>N41&#45;&gt;N72</title>
<g id="a_edge58"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.06s)">
<path fill="none" stroke="#000000" d="M484.8198,-990.7921C489.9288,-976.6838 498.9117,-957.6386 512.9248,-946 530.9073,-931.0646 555.1181,-922.3056 576.6405,-917.178"/>
<polygon fill="#000000" stroke="#000000" points="577.6011,-920.5509 586.6284,-915.0049 576.1129,-913.711 577.6011,-920.5509"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.06s)">
<text text-anchor="middle" x="530.0972" y="-948.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="656.713,-838 530.0331,-838 530.0331,-802 656.713,-802 656.713,-838"/>
<text text-anchor="middle" x="593.373" y="-821.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="593.373" y="-813.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(1.15%)</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.(*mcache).refill (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="309.1195,-745.5 215.6266,-745.5 215.6266,-709.5 309.1195,-709.5 309.1195,-745.5"/>
<text text-anchor="middle" x="262.373" y="-729.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="262.373" y="-721.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(1.15%)</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N43 -->
<g id="edge63" class="edge">
<title>N42&#45;&gt;N43</title>
<g id="a_edge63"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.05s)">
<path fill="none" stroke="#000000" d="M537.8765,-801.9445C532.009,-800.4356 526.0965,-799.0782 520.373,-798 470.9827,-788.6961 337.8315,-806.1722 294.9248,-780 285.2807,-774.1173 278.0619,-764.1871 272.9053,-754.5362"/>
<polygon fill="#000000" stroke="#000000" points="276.0582,-753.0166 268.5813,-745.5102 269.7452,-756.0409 276.0582,-753.0166"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.05s)">
<text text-anchor="middle" x="312.0972" y="-768.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.(*mcentral).cacheSpan (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="314.7722,-649 197.9739,-649 197.9739,-613 314.7722,-613 314.7722,-649"/>
<text text-anchor="middle" x="256.373" y="-632.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="256.373" y="-624.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(1.15%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N44 -->
<g id="edge64" class="edge">
<title>N43&#45;&gt;N44</title>
<g id="a_edge64"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.05s)">
<path fill="none" stroke="#000000" d="M261.2445,-709.3491C260.3645,-695.1965 259.1269,-675.2915 258.1194,-659.0866"/>
<polygon fill="#000000" stroke="#000000" points="261.6105,-658.833 257.4965,-649.0695 254.6239,-659.2675 261.6105,-658.833"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.05s)">
<text text-anchor="middle" x="277.0972" y="-677.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.(*mcentral).grow (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="305.5104,-540.5 207.2357,-540.5 207.2357,-504.5 305.5104,-504.5 305.5104,-540.5"/>
<text text-anchor="middle" x="256.373" y="-524.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="256.373" y="-516.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.92%)</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N45 -->
<g id="edge70" class="edge">
<title>N44&#45;&gt;N45</title>
<g id="a_edge70"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.04s)">
<path fill="none" stroke="#000000" d="M256.373,-612.5945C256.373,-595.6581 256.373,-570.2853 256.373,-550.7773"/>
<polygon fill="#000000" stroke="#000000" points="259.8731,-550.6337 256.373,-540.6337 252.8731,-550.6338 259.8731,-550.6337"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.04s)">
<text text-anchor="middle" x="273.0972" y="-575.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.heapBits.initSpan (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="305.9209,-434.5 206.8251,-434.5 206.8251,-398.5 305.9209,-398.5 305.9209,-434.5"/>
<text text-anchor="middle" x="256.373" y="-418.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.heapBits.initSpan</text>
<text text-anchor="middle" x="256.373" y="-410.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.92%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N58 -->
<g id="edge71" class="edge">
<title>N45&#45;&gt;N58</title>
<g id="a_edge71"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.heapBits.initSpan (0.04s)">
<path fill="none" stroke="#000000" d="M256.373,-504.0362C256.373,-487.6966 256.373,-463.6 256.373,-444.8232"/>
<polygon fill="#000000" stroke="#000000" points="259.8731,-444.7522 256.373,-434.7522 252.8731,-444.7522 259.8731,-444.7522"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.heapBits.initSpan (0.04s)">
<text text-anchor="middle" x="273.0972" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.adjustdefers (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="721.9095,-649 640.8366,-649 640.8366,-613 721.9095,-613 721.9095,-649"/>
<text text-anchor="middle" x="681.373" y="-632.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.adjustdefers</text>
<text text-anchor="middle" x="681.373" y="-624.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(1.84%)</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N22 -->
<g id="edge40" class="edge">
<title>N46&#45;&gt;N22</title>
<g id="a_edge40"><a xlink:title="runtime.adjustdefers &#45;&gt; runtime.tracebackdefers (0.08s)">
<path fill="none" stroke="#000000" d="M698.3243,-612.981C711.4921,-600.0185 730.8404,-583.1052 750.9248,-573 781.3342,-557.7 792.9704,-565.435 825.373,-555 830.3295,-553.4038 835.4137,-551.6425 840.4997,-549.7902"/>
<polygon fill="#000000" stroke="#000000" points="842.1144,-552.9228 850.2497,-546.1355 839.6574,-546.3682 842.1144,-552.9228"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.adjustdefers &#45;&gt; runtime.tracebackdefers (0.08s)">
<text text-anchor="middle" x="768.0972" y="-575.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.casgstatus (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1100.194,-838 1024.5521,-838 1024.5521,-802 1100.194,-802 1100.194,-838"/>
<text text-anchor="middle" x="1062.373" y="-821.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.casgstatus</text>
<text text-anchor="middle" x="1062.373" y="-813.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(1.15%)</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.osyield (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1095.1429,-649 1021.6032,-649 1021.6032,-613 1095.1429,-613 1095.1429,-649"/>
<text text-anchor="middle" x="1058.373" y="-632.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="1058.373" y="-624.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.31s(7.13%)</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N65 -->
<g id="edge65" class="edge">
<title>N47&#45;&gt;N65</title>
<g id="a_edge65"><a xlink:title="runtime.casgstatus &#45;&gt; runtime.osyield (0.05s)">
<path fill="none" stroke="#000000" d="M1061.9895,-801.8779C1061.2907,-768.8568 1059.8053,-698.6732 1058.972,-659.2992"/>
<polygon fill="#000000" stroke="#000000" points="1062.4663,-658.9909 1058.7554,-649.0672 1055.4679,-659.1391 1062.4663,-658.9909"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.casgstatus &#45;&gt; runtime.osyield (0.05s)">
<text text-anchor="middle" x="1078.0972" y="-723.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N2 -->
<g id="edge19" class="edge">
<title>N48&#45;&gt;N2</title>
<g id="a_edge19"><a xlink:title="runtime.copystack &#45;&gt; runtime.memmove (0.43s)">
<path fill="none" stroke="#000000" d="M627.9901,-709.3491C612.0841,-696.4505 590.2859,-678.7738 571.4197,-663.4748"/>
<polygon fill="#000000" stroke="#000000" points="573.5111,-660.6646 563.5394,-657.0845 569.102,-666.1016 573.5111,-660.6646"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.copystack &#45;&gt; runtime.memmove (0.43s)">
<text text-anchor="middle" x="619.0972" y="-677.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N4 -->
<g id="edge15" class="edge">
<title>N48&#45;&gt;N4</title>
<g id="a_edge15"><a xlink:title="runtime.copystack &#45;&gt; runtime.gentraceback (0.50s)">
<path fill="none" stroke="#000000" d="M611.4523,-723.5838C526.7337,-713.5381 337.8577,-682.0207 397.9248,-605 425.9223,-569.1004 540.2473,-546.4435 626.2053,-534.1451"/>
<polygon fill="#000000" stroke="#000000" points="626.8581,-537.5879 636.275,-532.7328 625.8858,-530.6557 626.8581,-537.5879"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="runtime.copystack &#45;&gt; runtime.gentraceback (0.50s)">
<text text-anchor="middle" x="415.0972" y="-626.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N46 -->
<g id="edge41" class="edge">
<title>N48&#45;&gt;N46</title>
<g id="a_edge41"><a xlink:title="runtime.copystack &#45;&gt; runtime.adjustdefers (0.08s)">
<path fill="none" stroke="#000000" d="M656.2039,-709.3491C660.7936,-695.0617 667.2666,-674.9119 672.4988,-658.6246"/>
<polygon fill="#000000" stroke="#000000" points="675.842,-659.6608 675.5683,-649.0695 669.1775,-657.5198 675.842,-659.6608"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.copystack &#45;&gt; runtime.adjustdefers (0.08s)">
<text text-anchor="middle" x="684.0972" y="-677.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.findrunnable (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1633.194,-1436 1549.5521,-1436 1549.5521,-1400 1633.194,-1400 1633.194,-1436"/>
<text text-anchor="middle" x="1591.373" y="-1419.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="1591.373" y="-1411.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.61%)</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.stopm (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1572.1429,-1334.5 1498.6032,-1334.5 1498.6032,-1298.5 1572.1429,-1298.5 1572.1429,-1334.5"/>
<text text-anchor="middle" x="1535.373" y="-1318.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="1535.373" y="-1310.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.61%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N71 -->
<g id="edge50" class="edge">
<title>N49&#45;&gt;N71</title>
<g id="a_edge50"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.07s)">
<path fill="none" stroke="#000000" d="M1581.3614,-1399.8538C1572.7349,-1384.2184 1560.1581,-1361.4228 1550.3363,-1343.621"/>
<polygon fill="#000000" stroke="#000000" points="1553.3822,-1341.8963 1545.4869,-1334.8313 1547.2532,-1345.2779 1553.3822,-1341.8963"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.07s)">
<text text-anchor="middle" x="1581.0972" y="-1360.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N72 -->
<g id="edge72" class="edge">
<title>N50&#45;&gt;N72</title>
<g id="a_edge72"><a xlink:title="runtime.gcAssistAlloc &#45;&gt; runtime.systemstack (0.04s)">
<path fill="none" stroke="#000000" d="M194.9491,-990.9228C203.1246,-986.0697 212.353,-981.268 221.373,-978 344.0376,-933.5577 498.2139,-917.9202 576.5833,-912.6055"/>
<polygon fill="#000000" stroke="#000000" points="576.9189,-916.0912 586.6711,-911.9504 576.4652,-909.1059 576.9189,-916.0912"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.gcAssistAlloc &#45;&gt; runtime.systemstack (0.04s)">
<text text-anchor="middle" x="347.0972" y="-948.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.gcBgMarkWorker (1.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="677.7637,-1236 576.9824,-1236 576.9824,-1200 677.7637,-1200 677.7637,-1236"/>
<text text-anchor="middle" x="627.373" y="-1219.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="627.373" y="-1211.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.10s(25.29%)</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.gcDrain (1.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="666.1429,-1134.5 588.6032,-1134.5 588.6032,-1098.5 666.1429,-1098.5 666.1429,-1134.5"/>
<text text-anchor="middle" x="627.373" y="-1118.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcDrain</text>
<text text-anchor="middle" x="627.373" y="-1110.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.09s(25.06%)</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N52 -->
<g id="edge5" class="edge">
<title>N51&#45;&gt;N52</title>
<g id="a_edge5"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcDrain (1.02s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M627.373,-1199.8538C627.373,-1184.6487 627.373,-1162.6722 627.373,-1145.1019"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="630.8731,-1144.8313 627.373,-1134.8313 623.8731,-1144.8313 630.8731,-1144.8313"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcDrain (1.02s)">
<text text-anchor="middle" x="644.0972" y="-1163.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.02s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.gcMarkDone (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="273.9629,-1134.5 188.7832,-1134.5 188.7832,-1098.5 273.9629,-1098.5 273.9629,-1134.5"/>
<text text-anchor="middle" x="231.373" y="-1118.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkDone</text>
<text text-anchor="middle" x="231.373" y="-1110.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(1.84%)</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N54 -->
<g id="edge42" class="edge">
<title>N51&#45;&gt;N54</title>
<g id="a_edge42"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcMarkDone (0.08s)">
<path fill="none" stroke="#000000" d="M576.9795,-1209.2289C543.0393,-1202.3236 497.7425,-1191.1438 459.9248,-1175 449.0747,-1170.3683 448.3105,-1165.4214 437.373,-1161 387.3888,-1140.7942 326.6971,-1129.1059 284.1839,-1122.8242"/>
<polygon fill="#000000" stroke="#000000" points="284.4491,-1119.3266 274.0549,-1121.3789 283.4602,-1126.2564 284.4491,-1119.3266"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcMarkDone (0.08s)">
<text text-anchor="middle" x="477.0972" y="-1163.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N6 -->
<g id="edge26" class="edge">
<title>N52&#45;&gt;N6</title>
<g id="a_edge26"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.scanobject (0.31s)">
<path fill="none" stroke="#000000" d="M666.2793,-1099.7031C700.6216,-1084.8766 751.8048,-1062.7795 795.0533,-1044.1079"/>
<polygon fill="#000000" stroke="#000000" points="796.6418,-1047.2344 804.4355,-1040.0574 793.8672,-1040.8078 796.6418,-1047.2344"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.scanobject (0.31s)">
<text text-anchor="middle" x="776.0972" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.gcFlushBgCredit (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="781.9249,-1027 684.8212,-1027 684.8212,-991 781.9249,-991 781.9249,-1027"/>
<text text-anchor="middle" x="733.373" y="-1010.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="733.373" y="-1002.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(1.15%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N53 -->
<g id="edge66" class="edge">
<title>N52&#45;&gt;N53</title>
<g id="a_edge66"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.gcFlushBgCredit (0.05s)">
<path fill="none" stroke="#000000" d="M645.3545,-1098.2641C662.6385,-1080.7355 688.916,-1054.0861 708.2616,-1034.4668"/>
<polygon fill="#000000" stroke="#000000" points="710.7743,-1036.9034 715.3034,-1027.3254 705.7899,-1031.9885 710.7743,-1036.9034"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.gcFlushBgCredit (0.05s)">
<text text-anchor="middle" x="701.0972" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.markroot (0.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="666.1429,-1027 588.6032,-1027 588.6032,-991 666.1429,-991 666.1429,-1027"/>
<text text-anchor="middle" x="627.373" y="-1010.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.markroot</text>
<text text-anchor="middle" x="627.373" y="-1002.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.70s(16.09%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N60 -->
<g id="edge10" class="edge">
<title>N52&#45;&gt;N60</title>
<g id="a_edge10"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.markroot (0.70s)">
<path fill="none" stroke="#000000" d="M627.373,-1098.2641C627.373,-1081.5849 627.373,-1056.6475 627.373,-1037.3666"/>
<polygon fill="#000000" stroke="#000000" points="630.8731,-1037.3253 627.373,-1027.3254 623.8731,-1037.3254 630.8731,-1037.3253"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.markroot (0.70s)">
<text text-anchor="middle" x="644.0972" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.70s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.ready (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="926.1429,-928 852.6032,-928 852.6032,-892 926.1429,-892 926.1429,-928"/>
<text text-anchor="middle" x="889.373" y="-911.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.ready</text>
<text text-anchor="middle" x="889.373" y="-903.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(1.15%)</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N67 -->
<g id="edge67" class="edge">
<title>N53&#45;&gt;N67</title>
<g id="a_edge67"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.ready (0.05s)">
<path fill="none" stroke="#000000" d="M761.9859,-990.8419C787.3845,-974.7235 824.6516,-951.0732 852.3221,-933.5131"/>
<polygon fill="#000000" stroke="#000000" points="854.3737,-936.3565 860.9416,-928.043 850.6229,-930.4461 854.3737,-936.3565"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.ready (0.05s)">
<text text-anchor="middle" x="847.0972" y="-948.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.gcMarkTermination (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="106.6194,-1027 .1267,-1027 .1267,-991 106.6194,-991 106.6194,-1027"/>
<text text-anchor="middle" x="53.373" y="-1010.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkTermination</text>
<text text-anchor="middle" x="53.373" y="-1002.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(1.84%)</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N55 -->
<g id="edge43" class="edge">
<title>N54&#45;&gt;N55</title>
<g id="a_edge43"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.gcMarkTermination (0.08s)">
<path fill="none" stroke="#000000" d="M201.1778,-1098.2641C171.168,-1080.1402 125.0128,-1052.2656 92.2729,-1032.4929"/>
<polygon fill="#000000" stroke="#000000" points="93.7883,-1029.3194 83.4189,-1027.1457 90.1695,-1035.3114 93.7883,-1029.3194"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.gcMarkTermination (0.08s)">
<text text-anchor="middle" x="170.0972" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N72 -->
<g id="edge44" class="edge">
<title>N55&#45;&gt;N72</title>
<g id="a_edge44"><a xlink:title="runtime.gcMarkTermination &#45;&gt; runtime.systemstack (0.08s)">
<path fill="none" stroke="#000000" d="M85.8967,-990.9936C95.2242,-986.3127 105.5358,-981.5843 115.373,-978 172.7213,-957.1045 188.7174,-956.0258 248.9248,-946 365.2709,-926.6259 503.6058,-916.7577 576.5304,-912.565"/>
<polygon fill="#000000" stroke="#000000" points="577.0171,-916.0432 586.8048,-911.9871 576.624,-909.0543 577.0171,-916.0432"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.gcMarkTermination &#45;&gt; runtime.systemstack (0.08s)">
<text text-anchor="middle" x="266.0972" y="-948.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.gchelper (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1377.1429,-1236 1303.6032,-1236 1303.6032,-1200 1377.1429,-1200 1377.1429,-1236"/>
<text text-anchor="middle" x="1340.373" y="-1219.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gchelper</text>
<text text-anchor="middle" x="1340.373" y="-1211.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.61%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N52 -->
<g id="edge52" class="edge">
<title>N56&#45;&gt;N52</title>
<g id="a_edge52"><a xlink:title="runtime.gchelper &#45;&gt; runtime.gcDrain (0.07s)">
<path fill="none" stroke="#000000" d="M1303.6014,-1210.9776C1275.4078,-1205.7041 1235.502,-1198.4788 1200.373,-1193 1006.9102,-1162.8271 775.5307,-1134.2132 676.3869,-1122.3061"/>
<polygon fill="#000000" stroke="#000000" points="676.7108,-1118.82 666.3654,-1121.1054 675.878,-1125.7702 676.7108,-1118.82"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.gchelper &#45;&gt; runtime.gcDrain (0.07s)">
<text text-anchor="middle" x="1092.0972" y="-1163.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.goexit (1.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="666.3511,-1334.5 588.395,-1334.5 588.395,-1298.5 666.3511,-1298.5 666.3511,-1334.5"/>
<text text-anchor="middle" x="627.373" y="-1318.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="627.373" y="-1310.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.11s(25.52%)</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N51 -->
<g id="edge4" class="edge">
<title>N57&#45;&gt;N51</title>
<g id="a_edge4"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (1.10s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M627.373,-1298.4336C627.373,-1283.9456 627.373,-1263.3416 627.373,-1246.6145"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="630.8731,-1246.2854 627.373,-1236.2855 623.8731,-1246.2855 630.8731,-1246.2854"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (1.10s)">
<text text-anchor="middle" x="644.0972" y="-1263.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.10s</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N24 -->
<g id="edge74" class="edge">
<title>N58&#45;&gt;N24</title>
<g id="a_edge74"><a xlink:title="runtime.heapBits.initSpan &#45;&gt; runtime.memclr (0.04s)">
<path fill="none" stroke="#000000" d="M256.373,-398.255C256.373,-384.0291 256.373,-364.021 256.373,-347.7321"/>
<polygon fill="#000000" stroke="#000000" points="259.8731,-347.6631 256.373,-337.6631 252.8731,-347.6632 259.8731,-347.6631"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.heapBits.initSpan &#45;&gt; runtime.memclr (0.04s)">
<text text-anchor="middle" x="273.0972" y="-363.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.newarray (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="452.1429,-1236 378.6032,-1236 378.6032,-1200 452.1429,-1200 452.1429,-1236"/>
<text text-anchor="middle" x="415.373" y="-1219.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="415.373" y="-1211.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.69%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N64 -->
<g id="edge81" class="edge">
<title>N59&#45;&gt;N64</title>
<g id="a_edge81"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.03s)">
<path fill="none" stroke="#000000" d="M471.7174,-1298.4336C461.1818,-1283.3937 446.0293,-1261.7629 434.0908,-1244.7202"/>
<polygon fill="#000000" stroke="#000000" points="436.7862,-1242.4677 428.1821,-1236.2855 431.053,-1246.4839 436.7862,-1242.4677"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.03s)">
<text text-anchor="middle" x="471.0972" y="-1263.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N72 -->
<g id="edge11" class="edge">
<title>N60&#45;&gt;N72</title>
<g id="a_edge11"><a xlink:title="runtime.markroot &#45;&gt; runtime.systemstack (0.70s)">
<path fill="none" stroke="#000000" d="M627.373,-990.8419C627.373,-976.1888 627.373,-955.311 627.373,-938.443"/>
<polygon fill="#000000" stroke="#000000" points="630.8731,-938.043 627.373,-928.043 623.8731,-938.043 630.8731,-938.043"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="runtime.markroot &#45;&gt; runtime.systemstack (0.70s)">
<text text-anchor="middle" x="644.0972" y="-948.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.70s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.markroot.func1 (0.76s)">
<polygon fill="#f8f8f8" stroke="#000000" points="920.7959,-838 827.9502,-838 827.9502,-802 920.7959,-802 920.7959,-838"/>
<text text-anchor="middle" x="874.373" y="-821.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.markroot.func1</text>
<text text-anchor="middle" x="874.373" y="-813.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.76s(17.47%)</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.scang (0.76s)">
<polygon fill="#f8f8f8" stroke="#000000" points="998.1429,-745.5 920.6032,-745.5 920.6032,-709.5 998.1429,-709.5 998.1429,-745.5"/>
<text text-anchor="middle" x="959.373" y="-729.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.scang</text>
<text text-anchor="middle" x="959.373" y="-721.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.76s(17.47%)</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N68 -->
<g id="edge8" class="edge">
<title>N61&#45;&gt;N68</title>
<g id="a_edge8"><a xlink:title="runtime.markroot.func1 &#45;&gt; runtime.scang (0.76s)">
<path fill="none" stroke="#000000" d="M891.1663,-801.725C903.856,-787.9156 921.4434,-768.7764 935.5805,-753.3918"/>
<polygon fill="#000000" stroke="#000000" points="938.4255,-755.4686 942.6147,-745.7371 933.2712,-750.7322 938.4255,-755.4686"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="runtime.markroot.func1 &#45;&gt; runtime.scang (0.76s)">
<text text-anchor="middle" x="939.0972" y="-768.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.76s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.mcall (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1628.1429,-1798 1554.6032,-1798 1554.6032,-1762 1628.1429,-1762 1628.1429,-1798"/>
<text text-anchor="middle" x="1591.373" y="-1781.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="1591.373" y="-1773.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.61%)</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.park_m (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1628.1429,-1662 1554.6032,-1662 1554.6032,-1626 1628.1429,-1626 1628.1429,-1662"/>
<text text-anchor="middle" x="1591.373" y="-1645.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.park_m</text>
<text text-anchor="middle" x="1591.373" y="-1637.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.61%)</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N66 -->
<g id="edge53" class="edge">
<title>N62&#45;&gt;N66</title>
<g id="a_edge53"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.07s)">
<path fill="none" stroke="#000000" d="M1591.373,-1761.9403C1591.373,-1739.0783 1591.373,-1699.4314 1591.373,-1672.4761"/>
<polygon fill="#000000" stroke="#000000" points="1594.8731,-1672.1344 1591.373,-1662.1344 1587.8731,-1672.1345 1594.8731,-1672.1344"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.07s)">
<text text-anchor="middle" x="1608.0972" y="-1682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.morestack (1.60s)">
<polygon fill="#f8f8f8" stroke="#000000" points="764.1429,-928 686.6032,-928 686.6032,-892 764.1429,-892 764.1429,-928"/>
<text text-anchor="middle" x="725.373" y="-911.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="725.373" y="-903.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.60s(36.78%)</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N29 -->
<g id="edge1" class="edge">
<title>N63&#45;&gt;N29</title>
<g id="a_edge1"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (1.60s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M725.373,-891.7872C725.373,-880.439 725.373,-865.5173 725.373,-852.2194"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="728.8731,-852.002 725.373,-842.0021 721.8731,-852.0021 728.8731,-852.002"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (1.60s)">
<text text-anchor="middle" x="742.0972" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.60s</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N12 -->
<g id="edge82" class="edge">
<title>N64&#45;&gt;N12</title>
<g id="a_edge82"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.03s)">
<path fill="none" stroke="#000000" d="M405.7895,-1199.877C401.0033,-1188.1934 397.4664,-1172.9984 403.9248,-1161 405.9819,-1157.1783 408.5268,-1153.6305 411.4117,-1150.346"/>
<polygon fill="#000000" stroke="#000000" points="414.0361,-1152.6733 418.6903,-1143.1555 409.1165,-1147.6935 414.0361,-1152.6733"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.03s)">
<text text-anchor="middle" x="421.0972" y="-1163.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N3 -->
<g id="edge27" class="edge">
<title>N65&#45;&gt;N3</title>
<g id="a_edge27"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.31s)">
<path fill="none" stroke="#000000" d="M1058.373,-612.5945C1058.373,-597.0567 1058.373,-574.4184 1058.373,-555.7222"/>
<polygon fill="#000000" stroke="#000000" points="1061.8731,-555.5328 1058.373,-545.5329 1054.8731,-555.5329 1061.8731,-555.5328"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.31s)">
<text text-anchor="middle" x="1075.0972" y="-575.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.schedule (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1628.1429,-1554 1554.6032,-1554 1554.6032,-1518 1628.1429,-1518 1628.1429,-1554"/>
<text text-anchor="middle" x="1591.373" y="-1537.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="1591.373" y="-1529.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.61%)</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N70 -->
<g id="edge54" class="edge">
<title>N66&#45;&gt;N70</title>
<g id="a_edge54"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.07s)">
<path fill="none" stroke="#000000" d="M1591.373,-1625.6793C1591.373,-1608.821 1591.373,-1583.5651 1591.373,-1564.147"/>
<polygon fill="#000000" stroke="#000000" points="1594.8731,-1564.0501 1591.373,-1554.0502 1587.8731,-1564.0502 1594.8731,-1564.0501"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.07s)">
<text text-anchor="middle" x="1608.0972" y="-1596.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N47 -->
<g id="edge68" class="edge">
<title>N67&#45;&gt;N47</title>
<g id="a_edge68"><a xlink:title="runtime.ready &#45;&gt; runtime.casgstatus (0.05s)">
<path fill="none" stroke="#000000" d="M924.3822,-891.7872C951.5549,-877.6511 989.3861,-857.9701 1018.566,-842.7898"/>
<polygon fill="#000000" stroke="#000000" points="1020.4556,-845.7521 1027.7116,-838.032 1017.2249,-839.5422 1020.4556,-845.7521"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.ready &#45;&gt; runtime.casgstatus (0.05s)">
<text text-anchor="middle" x="998.0972" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N65 -->
<g id="edge29" class="edge">
<title>N68&#45;&gt;N65</title>
<g id="a_edge29"><a xlink:title="runtime.scang &#45;&gt; runtime.osyield (0.26s)">
<path fill="none" stroke="#000000" d="M977.9942,-709.3491C993.3431,-694.3878 1015.2871,-672.9979 1032.3698,-656.3466"/>
<polygon fill="#000000" stroke="#000000" points="1035.1175,-658.556 1039.8354,-649.0695 1030.2314,-653.5433 1035.1175,-658.556"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.scang &#45;&gt; runtime.osyield (0.26s)">
<text text-anchor="middle" x="1029.0972" y="-677.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N69 -->
<g id="edge16" class="edge">
<title>N68&#45;&gt;N69</title>
<g id="a_edge16"><a xlink:title="runtime.scang &#45;&gt; runtime.scanstack (0.50s)">
<path fill="none" stroke="#000000" d="M959.373,-709.3491C959.373,-695.1965 959.373,-675.2915 959.373,-659.0866"/>
<polygon fill="#000000" stroke="#000000" points="962.8731,-659.0695 959.373,-649.0695 955.8731,-659.0696 962.8731,-659.0695"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="runtime.scang &#45;&gt; runtime.scanstack (0.50s)">
<text text-anchor="middle" x="976.0972" y="-677.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N4 -->
<g id="edge12" class="edge">
<title>N69&#45;&gt;N4</title>
<g id="a_edge12"><a xlink:title="runtime.scanstack &#45;&gt; runtime.gentraceback (0.67s)">
<path fill="none" stroke="#000000" d="M926.7567,-612.8983C921.6417,-610.1857 916.3885,-607.4721 911.373,-605 879.3621,-589.2218 843.6585,-572.9886 812.2203,-559.1406"/>
<polygon fill="#000000" stroke="#000000" points="813.6061,-555.9266 803.0426,-555.1121 810.7926,-562.3363 813.6061,-555.9266"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="runtime.scanstack &#45;&gt; runtime.gentraceback (0.67s)">
<text text-anchor="middle" x="888.0972" y="-575.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.67s</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N22 -->
<g id="edge30" class="edge">
<title>N69&#45;&gt;N22</title>
<g id="a_edge30"><a xlink:title="runtime.scanstack &#45;&gt; runtime.tracebackdefers (0.26s)">
<path fill="none" stroke="#000000" d="M950.2127,-612.5945C942.4387,-596.9745 931.0933,-574.1787 921.7601,-555.4258"/>
<polygon fill="#000000" stroke="#000000" points="924.8179,-553.7143 917.2288,-546.3213 918.5511,-556.8333 924.8179,-553.7143"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.scanstack &#45;&gt; runtime.tracebackdefers (0.26s)">
<text text-anchor="middle" x="954.0972" y="-575.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N49 -->
<g id="edge56" class="edge">
<title>N70&#45;&gt;N49</title>
<g id="a_edge56"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.07s)">
<path fill="none" stroke="#000000" d="M1591.373,-1517.8211C1591.373,-1498.7094 1591.373,-1468.3891 1591.373,-1446.1751"/>
<polygon fill="#000000" stroke="#000000" points="1594.8731,-1446.0059 1591.373,-1436.0059 1587.8731,-1446.006 1594.8731,-1446.0059"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.07s)">
<text text-anchor="middle" x="1608.0972" y="-1466.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N56 -->
<g id="edge57" class="edge">
<title>N71&#45;&gt;N56</title>
<g id="a_edge57"><a xlink:title="runtime.stopm &#45;&gt; runtime.gchelper (0.07s)">
<path fill="none" stroke="#000000" d="M1499.607,-1298.4336C1467.4099,-1282.1699 1419.9548,-1258.199 1385.2271,-1240.657"/>
<polygon fill="#000000" stroke="#000000" points="1386.7459,-1237.5031 1376.242,-1236.1184 1383.5898,-1243.7512 1386.7459,-1237.5031"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.stopm &#45;&gt; runtime.gchelper (0.07s)">
<text text-anchor="middle" x="1467.0972" y="-1263.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N35 -->
<g id="edge77" class="edge">
<title>N72&#45;&gt;N35</title>
<g id="a_edge77"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcAssistAlloc.func1 (0.04s)">
<path fill="none" stroke="#000000" d="M590.745,-891.7872C562.848,-877.9157 524.2132,-858.7051 493.9298,-843.647"/>
<polygon fill="#000000" stroke="#000000" points="495.3333,-840.4361 484.8208,-839.1177 492.2166,-846.704 495.3333,-840.4361"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcAssistAlloc.func1 (0.04s)">
<text text-anchor="middle" x="570.0972" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N42 -->
<g id="edge69" class="edge">
<title>N72&#45;&gt;N42</title>
<g id="a_edge69"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.05s)">
<path fill="none" stroke="#000000" d="M613.5182,-891.6963C609.9321,-886.2378 606.3908,-880.083 603.9248,-874 600.608,-865.8183 598.3108,-856.506 596.7293,-847.9457"/>
<polygon fill="#000000" stroke="#000000" points="600.1743,-847.3231 595.1348,-838.0036 593.2626,-848.4317 600.1743,-847.3231"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.05s)">
<text text-anchor="middle" x="621.0972" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N61 -->
<g id="edge9" class="edge">
<title>N72&#45;&gt;N61</title>
<g id="a_edge9"><a xlink:title="runtime.systemstack &#45;&gt; runtime.markroot.func1 (0.76s)">
<path fill="none" stroke="#000000" d="M644.5005,-891.7829C655.7974,-880.8757 671.4995,-867.6801 687.9248,-860 727.4261,-841.5302 741.7444,-851.1807 784.373,-842 795.2082,-839.6665 806.731,-836.9953 817.7862,-834.3372"/>
<polygon fill="#000000" stroke="#000000" points="818.8837,-837.6725 827.7743,-831.9099 817.2306,-830.8704 818.8837,-837.6725"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.markroot.func1 (0.76s)">
<text text-anchor="middle" x="705.0972" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.76s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration.svg.











































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1462)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1462 3291.2056,-1462 3291.2056,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="1619.7578,-1234 1619.7578,-1450 2281.7578,-1450 2281.7578,-1234 1619.7578,-1234"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="2273.6016,-1442 1627.914,-1442 1627.914,-1242 2273.6016,-1242 2273.6016,-1442"/>
<text text-anchor="start" x="1635.8359" y="-1412.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="1635.8359" y="-1380.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="1635.8359" y="-1348.4" font-family="Times,serif" font-size="32.00" fill="#000000">18.21s of 21.33s total (85.37%)</text>
<text text-anchor="start" x="1635.8359" y="-1316.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 88 nodes (cum &lt;= 0.11s)</text>
<text text-anchor="start" x="1635.8359" y="-1284.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 14 edges (freq &lt;= 0.02s)</text>
<text text-anchor="start" x="1635.8359" y="-1252.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 130 (cum &gt;= 0.19s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (20.62s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2373.5277,-1360 2291.988,-1360 2291.988,-1324 2373.5277,-1324 2373.5277,-1360"/>
<text text-anchor="middle" x="2332.7578" y="-1343.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="2332.7578" y="-1335.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 20.62s(96.67%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (20.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2446.983,-1192 2218.5326,-1192 2218.5326,-1121 2446.983,-1121 2446.983,-1192"/>
<text text-anchor="middle" x="2332.7578" y="-1171.2" font-family="Times,serif" font-size="21.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="2332.7578" y="-1150.2" font-family="Times,serif" font-size="21.00" fill="#000000">1.31s(6.14%)</text>
<text text-anchor="middle" x="2332.7578" y="-1129.2" font-family="Times,serif" font-size="21.00" fill="#000000">of 20.16s(94.51%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge1" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge1"><a xlink:title="runtime.goexit ... main.(*machine).execute (20.16s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M2332.7578,-1323.8757C2332.7578,-1295.9243 2332.7578,-1241.4285 2332.7578,-1202.2029"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2337.1329,-1202.0827 2332.7578,-1192.0828 2328.3829,-1202.0828 2337.1329,-1202.0827"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (20.16s)">
<text text-anchor="middle" x="2352.9819" y="-1212.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 20.16s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.gcDrain (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3118.5277,-1174.5 3044.9879,-1174.5 3044.9879,-1138.5 3118.5277,-1138.5 3118.5277,-1174.5"/>
<text text-anchor="middle" x="3081.7578" y="-1158.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcDrain</text>
<text text-anchor="middle" x="3081.7578" y="-1150.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.25s(1.17%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N66 -->
<g id="edge76" class="edge">
<title>N1&#45;&gt;N66</title>
<g id="a_edge76"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.21s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2373.5592,-1331.895C2502.2173,-1300.0311 2898.9245,-1201.7812 3035.2154,-1168.0269"/>
<polygon fill="#000000" stroke="#000000" points="3036.0846,-1171.4174 3044.9499,-1165.616 3034.4018,-1164.6227 3036.0846,-1171.4174"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.21s)">
<text text-anchor="middle" x="2877.4819" y="-1212.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.gcMarkDone (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2868.3477,-1174.5 2783.1679,-1174.5 2783.1679,-1138.5 2868.3477,-1138.5 2868.3477,-1174.5"/>
<text text-anchor="middle" x="2825.7578" y="-1158.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkDone</text>
<text text-anchor="middle" x="2825.7578" y="-1150.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.23s(1.08%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N69 -->
<g id="edge77" class="edge">
<title>N1&#45;&gt;N69</title>
<g id="a_edge77"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.21s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2349.8067,-1323.5472C2378.0351,-1294.2596 2437.6192,-1237.6281 2500.3096,-1210 2548.1986,-1188.8949 2693.6273,-1170.6526 2772.8861,-1161.9452"/>
<polygon fill="#000000" stroke="#000000" points="2773.5832,-1165.3901 2783.1468,-1160.8306 2772.8272,-1158.4311 2773.5832,-1165.3901"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.21s)">
<text text-anchor="middle" x="2517.4819" y="-1212.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (20.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2420.7432,-1065 2244.7725,-1065 2244.7725,-1027 2420.7432,-1027 2420.7432,-1065"/>
<text text-anchor="middle" x="2332.7578" y="-1053" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="2332.7578" y="-1043" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.094%)</text>
<text text-anchor="middle" x="2332.7578" y="-1033" font-family="Times,serif" font-size="10.00" fill="#000000">of 20.16s(94.51%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N3 -->
<g id="edge97" class="edge">
<title>N2&#45;&gt;N3</title>
<g id="a_edge97"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.04s)">
<path fill="none" stroke="#000000" d="M2303.5743,-1120.9488C2300.1865,-1115.2345 2297.2523,-1109.1634 2295.3096,-1103 2291.9847,-1092.4519 2296.0715,-1082.0128 2302.6041,-1073.0074"/>
<polygon fill="#000000" stroke="#000000" points="2305.4205,-1075.0954 2309.1486,-1065.1782 2300.0497,-1070.606 2305.4205,-1075.0954"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.04s)">
<text text-anchor="middle" x="2312.4819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.getNonPrefixOf (4.74s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1544.1355,-1065 1441.3802,-1065 1441.3802,-1027 1544.1355,-1027 1544.1355,-1065"/>
<text text-anchor="middle" x="1492.7578" y="-1053" font-family="Times,serif" font-size="10.00" fill="#000000">main.getNonPrefixOf</text>
<text text-anchor="middle" x="1492.7578" y="-1043" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.094%)</text>
<text text-anchor="middle" x="1492.7578" y="-1033" font-family="Times,serif" font-size="10.00" fill="#000000">of 4.74s(22.22%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N5 -->
<g id="edge3" class="edge">
<title>N2&#45;&gt;N5</title>
<g id="a_edge3"><a xlink:title="main.(*machine).execute &#45;&gt; main.getNonPrefixOf (4.74s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M2218.3146,-1154.784C2009.7092,-1150.8001 1583.7146,-1138.3941 1526.3096,-1103 1515.6502,-1096.4278 1507.9838,-1085.1111 1502.6948,-1074.2849"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1505.8595,-1072.7863 1498.6433,-1065.0288 1499.4468,-1075.5932 1505.8595,-1072.7863"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.getNonPrefixOf (4.74s)">
<text text-anchor="middle" x="1543.4819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.74s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="main.getPrefixOf (3.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1197.4702,-1065 1112.0454,-1065 1112.0454,-1027 1197.4702,-1027 1197.4702,-1065"/>
<text text-anchor="middle" x="1154.7578" y="-1053" font-family="Times,serif" font-size="10.00" fill="#000000">main.getPrefixOf</text>
<text text-anchor="middle" x="1154.7578" y="-1043" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="1154.7578" y="-1033" font-family="Times,serif" font-size="10.00" fill="#000000">of 3.64s(17.07%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N9 -->
<g id="edge6" class="edge">
<title>N2&#45;&gt;N9</title>
<g id="a_edge6"><a xlink:title="main.(*machine).execute &#45;&gt; main.getPrefixOf (3.64s)">
<path fill="none" stroke="#000000" d="M2218.591,-1154.6302C2041.0655,-1150.6835 1688.3534,-1138.682 1391.3096,-1103 1313.4351,-1093.6454 1293.1364,-1092.6796 1217.7578,-1071 1214.3758,-1070.0273 1210.9242,-1068.9407 1207.4654,-1067.78"/>
<polygon fill="#000000" stroke="#000000" points="1208.3454,-1064.3789 1197.7506,-1064.3462 1206.0126,-1070.9788 1208.3454,-1064.3789"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.getPrefixOf (3.64s)">
<text text-anchor="middle" x="1408.4819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.64s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.tryParseFloat (2.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1815.2422,-1068 1708.2734,-1068 1708.2734,-1024 1815.2422,-1024 1815.2422,-1068"/>
<text text-anchor="middle" x="1761.7578" y="-1054.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="1761.7578" y="-1042.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.11s(0.52%)</text>
<text text-anchor="middle" x="1761.7578" y="-1030.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 2.32s(10.88%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N15 -->
<g id="edge13" class="edge">
<title>N2&#45;&gt;N15</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (2.32s)">
<path fill="none" stroke="#000000" d="M2218.3001,-1146.1967C2137.3012,-1137.713 2026.4345,-1123.6851 1930.3096,-1103 1884.897,-1093.2277 1871.9482,-1088.0254 1824.9425,-1071.3548"/>
<polygon fill="#000000" stroke="#000000" points="1826.0067,-1068.0187 1815.4119,-1067.9843 1823.6728,-1074.6182 1826.0067,-1068.0187"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (2.32s)">
<text text-anchor="middle" x="1947.4819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.32s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="main.tryParseInt (2.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2068.9415,-1066.5 1976.5742,-1066.5 1976.5742,-1025.5 2068.9415,-1025.5 2068.9415,-1066.5"/>
<text text-anchor="middle" x="2022.7578" y="-1053.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="2022.7578" y="-1042.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.28%)</text>
<text text-anchor="middle" x="2022.7578" y="-1031.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 2.15s(10.08%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N18 -->
<g id="edge16" class="edge">
<title>N2&#45;&gt;N18</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (2.15s)">
<path fill="none" stroke="#000000" d="M2218.2928,-1145.5645C2151.651,-1137.1813 2075.7025,-1123.5137 2049.3096,-1103 2040.7117,-1096.3174 2034.7828,-1086.1884 2030.7485,-1076.3134"/>
<polygon fill="#000000" stroke="#000000" points="2033.9643,-1074.9102 2027.3169,-1066.6602 2027.3686,-1077.2549 2033.9643,-1074.9102"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (2.15s)">
<text text-anchor="middle" x="2066.4819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.15s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.mapaccess2_faststr (1.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2762.6909,-971 2546.8248,-971 2546.8248,-909 2762.6909,-909 2762.6909,-971"/>
<text text-anchor="middle" x="2654.7578" y="-952.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="2654.7578" y="-934.6" font-family="Times,serif" font-size="18.00" fill="#000000">0.72s(3.38%)</text>
<text text-anchor="middle" x="2654.7578" y="-916.6" font-family="Times,serif" font-size="18.00" fill="#000000">of 1.15s(5.39%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N23 -->
<g id="edge20" class="edge">
<title>N2&#45;&gt;N23</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.08s)">
<path fill="none" stroke="#000000" d="M2447.2287,-1141.3213C2530.0512,-1127.7175 2631.7979,-1104.6727 2657.7578,-1071 2677.1178,-1045.8882 2674.5068,-1009.2875 2668.1106,-981.1527"/>
<polygon fill="#000000" stroke="#000000" points="2671.4439,-980.0556 2665.6165,-971.2073 2664.6541,-981.7583 2671.4439,-980.0556"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.08s)">
<text text-anchor="middle" x="2690.4819" y="-1041.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.08s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.convT2I (0.94s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1728.4828,-963.5 1625.0328,-963.5 1625.0328,-916.5 1728.4828,-916.5 1728.4828,-963.5"/>
<text text-anchor="middle" x="1676.7578" y="-949.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1676.7578" y="-936.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.13s(0.61%)</text>
<text text-anchor="middle" x="1676.7578" y="-923.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.94s(4.41%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N24 -->
<g id="edge29" class="edge">
<title>N2&#45;&gt;N24</title>
<g id="a_edge29"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.72s)">
<path fill="none" stroke="#000000" d="M2218.4245,-1151.4875C2041.2751,-1143.0958 1715.6733,-1124.9451 1666.7578,-1103 1630.8464,-1086.889 1623.7179,-1059.1732 1633.3096,-1021 1637.5842,-1003.9877 1646.1984,-986.651 1654.6375,-972.4051"/>
<polygon fill="#000000" stroke="#000000" points="1657.8436,-973.8738 1660.1105,-963.5243 1651.8843,-970.2013 1657.8436,-973.8738"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.72s)">
<text text-anchor="middle" x="1650.4819" y="-1041.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.72s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="main.(*CodeQuotation).cloneCode (0.84s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1664.5363,-753 1468.9794,-753 1468.9794,-706 1664.5363,-706 1664.5363,-753"/>
<text text-anchor="middle" x="1566.7578" y="-738.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="1566.7578" y="-725.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.14s(0.66%)</text>
<text text-anchor="middle" x="1566.7578" y="-712.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.84s(3.94%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N27 -->
<g id="edge26" class="edge">
<title>N2&#45;&gt;N27</title>
<g id="a_edge26"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.84s)">
<path fill="none" stroke="#000000" d="M2218.3737,-1151.4637C2035.78,-1142.8532 1693.631,-1124.1681 1641.7578,-1103 1605.2454,-1088.1002 1573.7578,-1085.4355 1573.7578,-1046 1573.7578,-1046 1573.7578,-1046 1573.7578,-832.5 1573.7578,-809.4071 1571.9847,-783.4687 1570.2232,-763.3987"/>
<polygon fill="#000000" stroke="#000000" points="1573.6862,-762.8342 1569.285,-753.1968 1566.7156,-763.4753 1573.6862,-762.8342"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.84s)">
<text text-anchor="middle" x="1590.4819" y="-935.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.84s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="main.(*machine).executeMathWord (0.69s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3007.2266,-1068 2818.2891,-1068 2818.2891,-1024 3007.2266,-1024 3007.2266,-1068"/>
<text text-anchor="middle" x="2912.7578" y="-1054.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="2912.7578" y="-1042.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.38%)</text>
<text text-anchor="middle" x="2912.7578" y="-1030.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.69s(3.23%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N29 -->
<g id="edge30" class="edge">
<title>N2&#45;&gt;N29</title>
<g id="a_edge30"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.69s)">
<path fill="none" stroke="#000000" d="M2447.0531,-1148.4407C2564.8711,-1139.2602 2740.1876,-1122.9204 2804.7578,-1103 2827.3189,-1096.0397 2850.6888,-1084.3486 2869.8944,-1073.3597"/>
<polygon fill="#000000" stroke="#000000" points="2871.8242,-1076.2857 2878.6861,-1068.2132 2868.2878,-1070.2446 2871.8242,-1076.2857"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.69s)">
<text text-anchor="middle" x="2856.4819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.69s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.growslice (0.59s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1291.9827,-753 1181.533,-753 1181.533,-706 1291.9827,-706 1291.9827,-753"/>
<text text-anchor="middle" x="1236.7578" y="-738.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="1236.7578" y="-725.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(0.7%)</text>
<text text-anchor="middle" x="1236.7578" y="-712.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.59s(2.77%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N30 -->
<g id="edge93" class="edge">
<title>N2&#45;&gt;N30</title>
<g id="a_edge93"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.09s)">
<path fill="none" stroke="#000000" d="M2218.5788,-1145.3729C2125.3269,-1135.7684 1990.2257,-1120.6747 1872.7578,-1103 1795.435,-1091.3657 1749.7683,-1131.1093 1699.7578,-1071 1685.545,-1053.9172 1692.6634,-1042.0594 1699.7578,-1021 1708.6685,-994.5489 1728.8471,-997.4511 1737.7578,-971 1746.5549,-944.8864 1751.666,-932.788 1737.7578,-909 1690.6504,-828.4295 1639.7709,-844.516 1554.7578,-806 1515.7066,-788.3075 1505.5551,-783.54 1463.7578,-774 1393.131,-757.8799 1371.9687,-773.8447 1301.7578,-756 1301.5437,-755.9456 1301.3294,-755.8906 1301.1149,-755.8351"/>
<polygon fill="#000000" stroke="#000000" points="1301.9444,-752.4315 1291.365,-753.0034 1299.992,-759.1537 1301.9444,-752.4315"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.09s)">
<text text-anchor="middle" x="1763.4819" y="-935.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.memeqbody (0.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2865.1173,-852.5 2716.3984,-852.5 2716.3984,-812.5 2865.1173,-812.5 2865.1173,-852.5"/>
<text text-anchor="middle" x="2790.7578" y="-835.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2790.7578" y="-819.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.45s(2.11%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N37 -->
<g id="edge52" class="edge">
<title>N2&#45;&gt;N37</title>
<g id="a_edge52"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.33s)">
<path fill="none" stroke="#000000" d="M2447.205,-1142.5593C2543.5165,-1128.7193 2671.6229,-1104.6913 2710.7578,-1071 2750.2119,-1037.0339 2754.2963,-1020.045 2771.7578,-971 2784.462,-935.3172 2788.7378,-891.6687 2790.1401,-863.0276"/>
<polygon fill="#000000" stroke="#000000" points="2793.6453,-862.9654 2790.5485,-852.8333 2786.651,-862.6852 2793.6453,-862.9654"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.33s)">
<text text-anchor="middle" x="2782.4819" y="-991.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.deferproc (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2227.0492,-1068 2124.4664,-1068 2124.4664,-1024 2227.0492,-1024 2227.0492,-1068"/>
<text text-anchor="middle" x="2175.7578" y="-1054.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="2175.7578" y="-1042.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.42%)</text>
<text text-anchor="middle" x="2175.7578" y="-1030.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.44s(2.06%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N38 -->
<g id="edge39" class="edge">
<title>N2&#45;&gt;N38</title>
<g id="a_edge39"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.44s)">
<path fill="none" stroke="#000000" d="M2282.2178,-1120.9289C2260.7264,-1105.8028 2236.0189,-1088.413 2215.8195,-1074.1963"/>
<polygon fill="#000000" stroke="#000000" points="2217.6533,-1071.207 2207.4612,-1068.3135 2213.6244,-1076.9313 2217.6533,-1071.207"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.44s)">
<text text-anchor="middle" x="2271.4819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.deferreturn (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1958.4826,-1071 1833.033,-1071 1833.033,-1021 1958.4826,-1021 1958.4826,-1071"/>
<text text-anchor="middle" x="1895.7578" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="1895.7578" y="-1041.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.21s(0.98%)</text>
<text text-anchor="middle" x="1895.7578" y="-1027.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.44s(2.06%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N39 -->
<g id="edge40" class="edge">
<title>N2&#45;&gt;N39</title>
<g id="a_edge40"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.44s)">
<path fill="none" stroke="#000000" d="M2218.4867,-1147.7716C2153.2542,-1140.4193 2070.7008,-1127.0596 2000.3096,-1103 1980.8189,-1096.3381 1960.663,-1086.228 1943.312,-1076.3627"/>
<polygon fill="#000000" stroke="#000000" points="1944.9166,-1073.2471 1934.5125,-1071.2457 1941.3977,-1079.2983 1944.9166,-1073.2471"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.44s)">
<text text-anchor="middle" x="2017.4819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.ifaceeq (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2490.3257,-756 2377.1899,-756 2377.1899,-703 2490.3257,-703 2490.3257,-756"/>
<text text-anchor="middle" x="2433.7578" y="-740" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="2433.7578" y="-725" font-family="Times,serif" font-size="15.00" fill="#000000">0.37s(1.73%)</text>
<text text-anchor="middle" x="2433.7578" y="-710" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.41s(1.92%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N42 -->
<g id="edge83" class="edge">
<title>N2&#45;&gt;N42</title>
<g id="a_edge83"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.19s)">
<path fill="none" stroke="#000000" d="M2218.461,-1130.3967C2150.0429,-1108.864 2082.305,-1073.2838 2115.7578,-1021 2126.0467,-1004.9195 2137.5778,-1011.3242 2154.7578,-1003 2183.02,-989.3062 2192.8623,-990.1438 2217.7578,-971 2298.0588,-909.2515 2372.2695,-814.8736 2409.2225,-764.3277"/>
<polygon fill="#000000" stroke="#000000" points="2412.2173,-766.16 2415.2558,-756.0102 2406.551,-762.0498 2412.2173,-766.16"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.19s)">
<text text-anchor="middle" x="2303.4819" y="-935.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1420.5626,-1066.5 1226.953,-1066.5 1226.953,-1025.5 1420.5626,-1025.5 1420.5626,-1066.5"/>
<text text-anchor="middle" x="1323.7578" y="-1053.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="1323.7578" y="-1042.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.28%)</text>
<text text-anchor="middle" x="1323.7578" y="-1031.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.35s(1.64%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N49 -->
<g id="edge49" class="edge">
<title>N2&#45;&gt;N49</title>
<g id="a_edge49"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.35s)">
<path fill="none" stroke="#000000" d="M2218.4006,-1153.5723C2018.5357,-1147.754 1613.7695,-1132.6606 1475.3096,-1103 1441.724,-1095.8054 1405.6738,-1082.4935 1377.1628,-1070.5428"/>
<polygon fill="#000000" stroke="#000000" points="1378.3691,-1067.2524 1367.7974,-1066.5529 1375.6255,-1073.6923 1378.3691,-1067.2524"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.35s)">
<text text-anchor="middle" x="1492.4819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2648.7266,-1068 2438.7891,-1068 2438.7891,-1024 2648.7266,-1024 2648.7266,-1068"/>
<text text-anchor="middle" x="2543.7578" y="-1054.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2543.7578" y="-1042.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.38%)</text>
<text text-anchor="middle" x="2543.7578" y="-1030.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.26s(1.22%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N64 -->
<g id="edge65" class="edge">
<title>N2&#45;&gt;N64</title>
<g id="a_edge65"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.26s)">
<path fill="none" stroke="#000000" d="M2400.681,-1120.9289C2430.4462,-1105.3409 2464.8018,-1087.349 2492.3863,-1072.9031"/>
<polygon fill="#000000" stroke="#000000" points="2494.2301,-1075.8885 2501.4651,-1068.1486 2490.9826,-1069.6873 2494.2301,-1075.8885"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.26s)">
<text text-anchor="middle" x="2474.4819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge2" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge2"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (20.12s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2332.7578,-1065.0959C2332.7578,-1077.6725 2332.7578,-1094.7046 2332.7578,-1110.6584"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2328.3829,-1110.9288 2332.7578,-1120.9289 2337.1329,-1110.9289 2328.3829,-1110.9288"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (20.12s)">
<text text-anchor="middle" x="2352.9819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 20.12s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="regexp.(*Regexp).doExecute (5.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="844.1821,-756 653.3335,-756 653.3335,-703 844.1821,-703 844.1821,-756"/>
<text text-anchor="middle" x="748.7578" y="-740" font-family="Times,serif" font-size="15.00" fill="#000000">regexp.(*Regexp).doExecute</text>
<text text-anchor="middle" x="748.7578" y="-725" font-family="Times,serif" font-size="15.00" fill="#000000">0.32s(1.50%)</text>
<text text-anchor="middle" x="748.7578" y="-710" font-family="Times,serif" font-size="15.00" fill="#000000">of 5.66s(26.54%)</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="regexp.(*machine).backtrack (3.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="832.3404,-653 665.1753,-653 665.1753,-606 832.3404,-606 832.3404,-653"/>
<text text-anchor="middle" x="748.7578" y="-638.6" font-family="Times,serif" font-size="13.00" fill="#000000">regexp.(*machine).backtrack</text>
<text text-anchor="middle" x="748.7578" y="-625.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.19s(0.89%)</text>
<text text-anchor="middle" x="748.7578" y="-612.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 3.13s(14.67%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N12 -->
<g id="edge9" class="edge">
<title>N4&#45;&gt;N12</title>
<g id="a_edge9"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*machine).backtrack (3.13s)">
<path fill="none" stroke="#000000" d="M748.7578,-702.9644C748.7578,-690.8495 748.7578,-676.3577 748.7578,-663.4589"/>
<polygon fill="#000000" stroke="#000000" points="752.2579,-663.0858 748.7578,-653.0858 745.2579,-663.0858 752.2579,-663.0858"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*machine).backtrack (3.13s)">
<text text-anchor="middle" x="765.4819" y="-673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.13s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.makeslice (0.90s)">
<polygon fill="#f8f8f8" stroke="#000000" points="962.4175,-653 851.0981,-653 851.0981,-606 962.4175,-606 962.4175,-653"/>
<text text-anchor="middle" x="906.7578" y="-638.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.makeslice</text>
<text text-anchor="middle" x="906.7578" y="-625.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.14s(0.66%)</text>
<text text-anchor="middle" x="906.7578" y="-612.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.90s(4.22%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N26 -->
<g id="edge25" class="edge">
<title>N4&#45;&gt;N26</title>
<g id="a_edge25"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; runtime.makeslice (0.90s)">
<path fill="none" stroke="#000000" d="M770.1387,-702.9197C779.971,-691.9588 792.3271,-679.7928 805.3096,-671 812.127,-666.3827 825.928,-660.1447 841.2121,-653.9095"/>
<polygon fill="#000000" stroke="#000000" points="842.8887,-657.0084 850.8712,-650.042 840.2866,-650.51 842.8887,-657.0084"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; runtime.makeslice (0.90s)">
<text text-anchor="middle" x="822.4819" y="-673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.90s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="regexp.(*Regexp).get (0.74s)">
<polygon fill="#f8f8f8" stroke="#000000" points="625.8785,-653 497.6371,-653 497.6371,-606 625.8785,-606 625.8785,-653"/>
<text text-anchor="middle" x="561.7578" y="-638.6" font-family="Times,serif" font-size="13.00" fill="#000000">regexp.(*Regexp).get</text>
<text text-anchor="middle" x="561.7578" y="-625.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.18s(0.84%)</text>
<text text-anchor="middle" x="561.7578" y="-612.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.74s(3.47%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N28 -->
<g id="edge28" class="edge">
<title>N4&#45;&gt;N28</title>
<g id="a_edge28"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*Regexp).get (0.74s)">
<path fill="none" stroke="#000000" d="M699.1362,-702.9644C673.1963,-689.0928 641.4293,-672.1051 614.979,-657.9606"/>
<polygon fill="#000000" stroke="#000000" points="616.3321,-654.7151 605.8633,-653.0858 613.0311,-660.8879 616.3321,-654.7151"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*Regexp).get (0.74s)">
<text text-anchor="middle" x="678.4819" y="-673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.74s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="regexp.(*Regexp).put (0.53s)">
<polygon fill="#f8f8f8" stroke="#000000" points="438.6695,-650 326.8462,-650 326.8462,-609 438.6695,-609 438.6695,-650"/>
<text text-anchor="middle" x="382.7578" y="-637.2" font-family="Times,serif" font-size="11.00" fill="#000000">regexp.(*Regexp).put</text>
<text text-anchor="middle" x="382.7578" y="-626.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.33%)</text>
<text text-anchor="middle" x="382.7578" y="-615.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.53s(2.48%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N31 -->
<g id="edge33" class="edge">
<title>N4&#45;&gt;N31</title>
<g id="a_edge33"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*Regexp).put (0.53s)">
<path fill="none" stroke="#000000" d="M653.0737,-703.3568C588.8363,-685.8056 505.8504,-663.1318 448.8683,-647.563"/>
<polygon fill="#000000" stroke="#000000" points="449.4643,-644.0976 438.8954,-644.8381 447.6193,-650.8501 449.4643,-644.0976"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*Regexp).put (0.53s)">
<text text-anchor="middle" x="593.4819" y="-673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.53s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.memmove (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1110.4813,-648.5 981.0344,-648.5 981.0344,-610.5 1110.4813,-610.5 1110.4813,-648.5"/>
<text text-anchor="middle" x="1045.7578" y="-632.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="1045.7578" y="-617.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.35s(1.64%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N51 -->
<g id="edge98" class="edge">
<title>N4&#45;&gt;N51</title>
<g id="a_edge98"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M804.8831,-702.7911C816.2016,-697.114 827.9412,-691.0133 838.7578,-685 849.0689,-679.2678 850.2625,-675.14 861.3096,-671 907.8822,-653.5464 923.3836,-664.5576 971.7578,-653 974.0808,-652.445 976.4368,-651.8542 978.81,-651.2353"/>
<polygon fill="#000000" stroke="#000000" points="979.9005,-654.5657 988.6232,-648.552 978.0541,-647.8136 979.9005,-654.5657"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="878.4819" y="-673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="regexp.(*Regexp).ReplaceAllString (4.72s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1537.8695,-962 1349.6461,-962 1349.6461,-918 1537.8695,-918 1537.8695,-962"/>
<text text-anchor="middle" x="1443.7578" y="-948.4" font-family="Times,serif" font-size="12.00" fill="#000000">regexp.(*Regexp).ReplaceAllString</text>
<text text-anchor="middle" x="1443.7578" y="-936.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.42%)</text>
<text text-anchor="middle" x="1443.7578" y="-924.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 4.72s(22.13%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N6 -->
<g id="edge4" class="edge">
<title>N5&#45;&gt;N6</title>
<g id="a_edge4"><a xlink:title="main.getNonPrefixOf &#45;&gt; regexp.(*Regexp).ReplaceAllString (4.72s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M1483.7705,-1026.558C1476.6837,-1011.2274 1466.6553,-989.5333 1458.4112,-971.6992"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1461.4178,-969.8618 1454.0447,-962.2534 1455.0638,-972.7991 1461.4178,-969.8618"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.getNonPrefixOf &#45;&gt; regexp.(*Regexp).ReplaceAllString (4.72s)">
<text text-anchor="middle" x="1489.4819" y="-991.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.72s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="regexp.(*Regexp).replaceAll (3.92s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1135.8399,-859 945.6758,-859 945.6758,-806 1135.8399,-806 1135.8399,-859"/>
<text text-anchor="middle" x="1040.7578" y="-843" font-family="Times,serif" font-size="15.00" fill="#000000">regexp.(*Regexp).replaceAll</text>
<text text-anchor="middle" x="1040.7578" y="-828" font-family="Times,serif" font-size="15.00" fill="#000000">0.39s(1.83%)</text>
<text text-anchor="middle" x="1040.7578" y="-813" font-family="Times,serif" font-size="15.00" fill="#000000">of 3.92s(18.38%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N8 -->
<g id="edge5" class="edge">
<title>N6&#45;&gt;N8</title>
<g id="a_edge5"><a xlink:title="regexp.(*Regexp).ReplaceAllString &#45;&gt; regexp.(*Regexp).replaceAll (3.92s)">
<path fill="none" stroke="#000000" d="M1376.4826,-917.9662C1353.138,-909.9419 1326.907,-900.4986 1303.3096,-891 1289.4537,-885.4226 1287.0929,-881.1951 1272.7578,-877 1220.5292,-861.7155 1202.9697,-869.2048 1145.8057,-859.0494"/>
<polygon fill="#000000" stroke="#000000" points="1146.3523,-855.5909 1135.8776,-857.1823 1145.0585,-862.4703 1146.3523,-855.5909"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="regexp.(*Regexp).ReplaceAllString &#45;&gt; regexp.(*Regexp).replaceAll (3.92s)">
<text text-anchor="middle" x="1320.4819" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.92s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.slicebytetostring (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1545.4009,-854.5 1410.1148,-854.5 1410.1148,-810.5 1545.4009,-810.5 1545.4009,-854.5"/>
<text text-anchor="middle" x="1477.7578" y="-840.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.slicebytetostring</text>
<text text-anchor="middle" x="1477.7578" y="-828.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.47%)</text>
<text text-anchor="middle" x="1477.7578" y="-816.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.44s(2.06%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N40 -->
<g id="edge41" class="edge">
<title>N6&#45;&gt;N40</title>
<g id="a_edge41"><a xlink:title="regexp.(*Regexp).ReplaceAllString &#45;&gt; runtime.slicebytetostring (0.44s)">
<path fill="none" stroke="#000000" d="M1450.7203,-917.9864C1455.5924,-902.5817 1462.1784,-881.7585 1467.6304,-864.5206"/>
<polygon fill="#000000" stroke="#000000" points="1471.0093,-865.4436 1470.6878,-854.8536 1464.3351,-863.3326 1471.0093,-865.4436"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="regexp.(*Regexp).ReplaceAllString &#45;&gt; runtime.slicebytetostring (0.44s)">
<text text-anchor="middle" x="1480.4819" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="strings.Contains (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1392.4573,-853 1305.0584,-853 1305.0584,-812 1392.4573,-812 1392.4573,-853"/>
<text text-anchor="middle" x="1348.7578" y="-840.2" font-family="Times,serif" font-size="11.00" fill="#000000">strings.Contains</text>
<text text-anchor="middle" x="1348.7578" y="-829.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.19%)</text>
<text text-anchor="middle" x="1348.7578" y="-818.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.25s(1.17%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N68 -->
<g id="edge68" class="edge">
<title>N6&#45;&gt;N68</title>
<g id="a_edge68"><a xlink:title="regexp.(*Regexp).ReplaceAllString &#45;&gt; strings.Contains (0.25s)">
<path fill="none" stroke="#000000" d="M1428.1526,-917.7327C1419.1449,-905.3516 1407.3361,-889.8886 1395.7578,-877 1390.6984,-871.368 1385.0466,-865.6181 1379.4646,-860.2026"/>
<polygon fill="#000000" stroke="#000000" points="1381.6178,-857.4204 1371.9584,-853.0675 1376.795,-862.494 1381.6178,-857.4204"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="regexp.(*Regexp).ReplaceAllString &#45;&gt; strings.Contains (0.25s)">
<text text-anchor="middle" x="1424.4819" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.mallocgc (4.56s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2197.8676,-556 2013.648,-556 2013.648,-476 2197.8676,-476 2197.8676,-556"/>
<text text-anchor="middle" x="2105.7578" y="-532.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="2105.7578" y="-508.8" font-family="Times,serif" font-size="24.00" fill="#000000">2.04s(9.56%)</text>
<text text-anchor="middle" x="2105.7578" y="-484.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 4.56s(21.38%)</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.heapBitsSetType (0.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2073.0867,-425.5 1864.4289,-425.5 1864.4289,-379.5 2073.0867,-379.5 2073.0867,-425.5"/>
<text text-anchor="middle" x="1968.7578" y="-406.3" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1968.7578" y="-387.3" font-family="Times,serif" font-size="19.00" fill="#000000">0.91s(4.27%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N25 -->
<g id="edge24" class="edge">
<title>N7&#45;&gt;N25</title>
<g id="a_edge24"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.91s)">
<path fill="none" stroke="#000000" d="M2057.4567,-475.9841C2040.1378,-461.636 2020.927,-445.7204 2004.8247,-432.3802"/>
<polygon fill="#000000" stroke="#000000" points="2006.6477,-429.3454 1996.7141,-425.6609 2002.1818,-434.7358 2006.6477,-429.3454"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.91s)">
<text text-anchor="middle" x="2050.4819" y="-446.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.91s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.(*mcache).nextFree (0.53s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2360.5394,-421.5 2230.9763,-421.5 2230.9763,-383.5 2360.5394,-383.5 2360.5394,-421.5"/>
<text text-anchor="middle" x="2295.7578" y="-409.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="2295.7578" y="-399.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.047%)</text>
<text text-anchor="middle" x="2295.7578" y="-389.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.53s(2.48%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N33 -->
<g id="edge35" class="edge">
<title>N7&#45;&gt;N33</title>
<g id="a_edge35"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.53s)">
<path fill="none" stroke="#000000" d="M2172.7447,-475.9841C2200.2185,-459.5722 2231.125,-441.1096 2255.086,-426.7961"/>
<polygon fill="#000000" stroke="#000000" points="2257.1176,-429.6594 2263.9076,-421.5263 2253.5277,-423.65 2257.1176,-429.6594"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.53s)">
<text text-anchor="middle" x="2240.4819" y="-446.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.53s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.memclr (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2150.9763,-38 2038.5393,-38 2038.5393,0 2150.9763,0 2150.9763,-38"/>
<text text-anchor="middle" x="2094.7578" y="-22" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="2094.7578" y="-7" font-family="Times,serif" font-size="15.00" fill="#000000">0.33s(1.55%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N53 -->
<g id="edge103" class="edge">
<title>N7&#45;&gt;N53</title>
<g id="a_edge103"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.03s)">
<path fill="none" stroke="#000000" d="M2104.867,-475.7494C2102.7159,-378.5605 2097.2778,-132.8563 2095.4041,-48.1985"/>
<polygon fill="#000000" stroke="#000000" points="2098.8993,-47.9406 2095.1788,-38.0205 2091.901,-48.0955 2098.8993,-47.9406"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.03s)">
<text text-anchor="middle" x="2117.4819" y="-246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N4 -->
<g id="edge12" class="edge">
<title>N8&#45;&gt;N4</title>
<g id="a_edge12"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; regexp.(*Regexp).doExecute (2.56s)">
<path fill="none" stroke="#000000" d="M945.6051,-807.9759C942.6249,-807.297 939.6703,-806.6365 936.7578,-806 893.3034,-796.5029 879.6208,-804.4882 838.3096,-788 835.7912,-786.9948 816.9256,-774.7268 797.1556,-761.6836"/>
<polygon fill="#000000" stroke="#000000" points="798.9448,-758.6708 788.6724,-756.0768 795.0851,-764.5106 798.9448,-758.6708"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; regexp.(*Regexp).doExecute (2.56s)">
<text text-anchor="middle" x="855.4819" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.56s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N30 -->
<g id="edge36" class="edge">
<title>N8&#45;&gt;N30</title>
<g id="a_edge36"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; runtime.growslice (0.50s)">
<path fill="none" stroke="#000000" d="M1091.2327,-805.9749C1119.276,-791.2379 1154.17,-772.9007 1182.7591,-757.8769"/>
<polygon fill="#000000" stroke="#000000" points="1184.579,-760.8744 1191.803,-753.1242 1181.3227,-754.6779 1184.579,-760.8744"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; runtime.growslice (0.50s)">
<text text-anchor="middle" x="1167.4819" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="regexp.(*Regexp).ReplaceAllString.func1 (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="635.6026,-753 399.913,-753 399.913,-706 635.6026,-706 635.6026,-753"/>
<text text-anchor="middle" x="517.7578" y="-738.6" font-family="Times,serif" font-size="13.00" fill="#000000">regexp.(*Regexp).ReplaceAllString.func1</text>
<text text-anchor="middle" x="517.7578" y="-725.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(0.7%)</text>
<text text-anchor="middle" x="517.7578" y="-712.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.35s(1.64%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N50 -->
<g id="edge50" class="edge">
<title>N8&#45;&gt;N50</title>
<g id="a_edge50"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; regexp.(*Regexp).ReplaceAllString.func1 (0.35s)">
<path fill="none" stroke="#000000" d="M945.657,-807.7177C942.6618,-807.1134 939.69,-806.5386 936.7578,-806 867.484,-793.2752 848.7633,-799.7033 779.3096,-788 726.9398,-779.1755 669.2767,-766.5911 621.4504,-755.3537"/>
<polygon fill="#000000" stroke="#000000" points="622.2476,-751.9457 611.7107,-753.052 620.6376,-758.7581 622.2476,-751.9457"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; regexp.(*Regexp).ReplaceAllString.func1 (0.35s)">
<text text-anchor="middle" x="796.4819" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N51 -->
<g id="edge99" class="edge">
<title>N8&#45;&gt;N51</title>
<g id="a_edge99"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M947.2877,-805.9421C924.9463,-794.5672 904.3732,-778.5188 893.3096,-756 882.9225,-734.8582 882.9225,-724.1418 893.3096,-703 903.5719,-682.1121 914.4197,-682.3129 934.7578,-671 947.467,-663.9306 961.6206,-657.6012 975.4521,-652.142"/>
<polygon fill="#000000" stroke="#000000" points="976.8674,-655.3479 984.9545,-648.5032 974.3641,-648.8108 976.8674,-655.3479"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="910.4819" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="regexp.(*Regexp).FindString (3.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1085.121,-963.5 916.3946,-963.5 916.3946,-916.5 1085.121,-916.5 1085.121,-963.5"/>
<text text-anchor="middle" x="1000.7578" y="-949.1" font-family="Times,serif" font-size="13.00" fill="#000000">regexp.(*Regexp).FindString</text>
<text text-anchor="middle" x="1000.7578" y="-936.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.13s(0.61%)</text>
<text text-anchor="middle" x="1000.7578" y="-923.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 3.23s(15.14%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N11 -->
<g id="edge7" class="edge">
<title>N9&#45;&gt;N11</title>
<g id="a_edge7"><a xlink:title="main.getPrefixOf &#45;&gt; regexp.(*Regexp).FindString (3.23s)">
<path fill="none" stroke="#000000" d="M1126.8696,-1026.8042C1103.6405,-1010.8154 1070.1771,-987.7821 1043.5575,-969.4595"/>
<polygon fill="#000000" stroke="#000000" points="1045.3986,-966.4779 1035.1769,-963.691 1041.4297,-972.244 1045.3986,-966.4779"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.getPrefixOf &#45;&gt; regexp.(*Regexp).FindString (3.23s)">
<text text-anchor="middle" x="1108.4819" y="-991.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.23s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="strings.TrimSpace (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1191.9536,-959 1103.562,-959 1103.562,-921 1191.9536,-921 1191.9536,-959"/>
<text text-anchor="middle" x="1147.7578" y="-947" font-family="Times,serif" font-size="10.00" fill="#000000">strings.TrimSpace</text>
<text text-anchor="middle" x="1147.7578" y="-937" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.094%)</text>
<text text-anchor="middle" x="1147.7578" y="-927" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.38s(1.78%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N44 -->
<g id="edge45" class="edge">
<title>N9&#45;&gt;N44</title>
<g id="a_edge45"><a xlink:title="main.getPrefixOf &#45;&gt; strings.TrimSpace (0.38s)">
<path fill="none" stroke="#000000" d="M1153.4739,-1026.558C1152.4181,-1010.57 1150.9052,-987.6609 1149.7011,-969.4268"/>
<polygon fill="#000000" stroke="#000000" points="1153.185,-969.0664 1149.0336,-959.3188 1146.2002,-969.5277 1153.185,-969.0664"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="main.getPrefixOf &#45;&gt; strings.TrimSpace (0.38s)">
<text text-anchor="middle" x="1169.4819" y="-991.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.newobject (3.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2162.3643,-653 2049.1513,-653 2049.1513,-606 2162.3643,-606 2162.3643,-653"/>
<text text-anchor="middle" x="2105.7578" y="-638.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="2105.7578" y="-625.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.16s(0.75%)</text>
<text text-anchor="middle" x="2105.7578" y="-612.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 3.33s(15.61%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N7 -->
<g id="edge8" class="edge">
<title>N10&#45;&gt;N7</title>
<g id="a_edge8"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.17s)">
<path fill="none" stroke="#000000" d="M2105.7578,-605.9827C2105.7578,-594.496 2105.7578,-580.2045 2105.7578,-566.4179"/>
<polygon fill="#000000" stroke="#000000" points="2109.2579,-566.0283 2105.7578,-556.0283 2102.2579,-566.0284 2109.2579,-566.0283"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.17s)">
<text text-anchor="middle" x="2122.4819" y="-576.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.17s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N4 -->
<g id="edge10" class="edge">
<title>N11&#45;&gt;N4</title>
<g id="a_edge10"><a xlink:title="regexp.(*Regexp).FindString &#45;&gt; regexp.(*Regexp).doExecute (3.10s)">
<path fill="none" stroke="#000000" d="M916.3411,-923.2306C874.9345,-911.303 826.8796,-891.4443 793.3096,-859 768.0337,-834.5718 757.0932,-795.1676 752.3603,-766.2325"/>
<polygon fill="#000000" stroke="#000000" points="755.7882,-765.4836 750.8824,-756.093 748.8614,-766.4933 755.7882,-765.4836"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="regexp.(*Regexp).FindString &#45;&gt; regexp.(*Regexp).doExecute (3.10s)">
<text text-anchor="middle" x="810.4819" y="-828.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.10s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="regexp.(*machine).tryBacktrack (2.60s)">
<polygon fill="#f8f8f8" stroke="#000000" points="886.0177,-550 611.4979,-550 611.4979,-482 886.0177,-482 886.0177,-550"/>
<text text-anchor="middle" x="748.7578" y="-530" font-family="Times,serif" font-size="20.00" fill="#000000">regexp.(*machine).tryBacktrack</text>
<text text-anchor="middle" x="748.7578" y="-510" font-family="Times,serif" font-size="20.00" fill="#000000">0.97s(4.55%)</text>
<text text-anchor="middle" x="748.7578" y="-490" font-family="Times,serif" font-size="20.00" fill="#000000">of 2.60s(12.19%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N14 -->
<g id="edge11" class="edge">
<title>N12&#45;&gt;N14</title>
<g id="a_edge11"><a xlink:title="regexp.(*machine).backtrack &#45;&gt; regexp.(*machine).tryBacktrack (2.60s)">
<path fill="none" stroke="#000000" d="M748.7578,-605.9827C748.7578,-592.7733 748.7578,-575.8547 748.7578,-560.2602"/>
<polygon fill="#000000" stroke="#000000" points="752.2579,-560.2558 748.7578,-550.2558 745.2579,-560.2558 752.2579,-560.2558"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="regexp.(*machine).backtrack &#45;&gt; regexp.(*machine).tryBacktrack (2.60s)">
<text text-anchor="middle" x="765.4819" y="-576.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.60s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="regexp.(*bitState).reset (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="592.8726,-541 446.643,-541 446.643,-491 592.8726,-491 592.8726,-541"/>
<text text-anchor="middle" x="519.7578" y="-525.8" font-family="Times,serif" font-size="14.00" fill="#000000">regexp.(*bitState).reset</text>
<text text-anchor="middle" x="519.7578" y="-511.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.25s(1.17%)</text>
<text text-anchor="middle" x="519.7578" y="-497.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.33s(1.55%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N52 -->
<g id="edge53" class="edge">
<title>N12&#45;&gt;N52</title>
<g id="a_edge53"><a xlink:title="regexp.(*machine).backtrack &#45;&gt; regexp.(*bitState).reset (0.33s)">
<path fill="none" stroke="#000000" d="M701.3089,-605.9827C666.0435,-588.504 617.6757,-564.5314 579.731,-545.7247"/>
<polygon fill="#000000" stroke="#000000" points="580.8371,-542.3667 570.3229,-541.0618 577.7285,-548.6386 580.8371,-542.3667"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="regexp.(*machine).backtrack &#45;&gt; regexp.(*bitState).reset (0.33s)">
<text text-anchor="middle" x="678.4819" y="-576.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="runtime.systemstack (2.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2550.1509,-329 2411.3647,-329 2411.3647,-276 2550.1509,-276 2550.1509,-329"/>
<text text-anchor="middle" x="2480.7578" y="-313" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2480.7578" y="-298" font-family="Times,serif" font-size="15.00" fill="#000000">0.32s(1.50%)</text>
<text text-anchor="middle" x="2480.7578" y="-283" font-family="Times,serif" font-size="15.00" fill="#000000">of 2.66s(12.47%)</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.mach_semaphore_signal (1.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2416.9258,-226 2122.5898,-226 2122.5898,-176 2416.9258,-176 2416.9258,-226"/>
<text text-anchor="middle" x="2269.7578" y="-205.2" font-family="Times,serif" font-size="21.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2269.7578" y="-184.2" font-family="Times,serif" font-size="21.00" fill="#000000">1.24s(5.81%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N22 -->
<g id="edge22" class="edge">
<title>N13&#45;&gt;N22</title>
<g id="a_edge22"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (1.01s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2425.5957,-275.9646C2396.6035,-262.0182 2360.9869,-244.8851 2331.125,-230.5202"/>
<polygon fill="#000000" stroke="#000000" points="2332.5847,-227.3386 2322.0559,-226.1576 2329.5502,-233.6467 2332.5847,-227.3386"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (1.01s)">
<text text-anchor="middle" x="2405.4819" y="-246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.01s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.(*mcentral).cacheSpan (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2838.7567,-220 2696.7589,-220 2696.7589,-182 2838.7567,-182 2838.7567,-220"/>
<text text-anchor="middle" x="2767.7578" y="-208" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="2767.7578" y="-198" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.047%)</text>
<text text-anchor="middle" x="2767.7578" y="-188" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.37s(1.73%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N45 -->
<g id="edge46" class="edge">
<title>N13&#45;&gt;N45</title>
<g id="a_edge46"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).cacheSpan (0.37s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2550.2325,-277.9297C2597.1608,-261.3331 2658.634,-239.5926 2704.255,-223.4583"/>
<polygon fill="#000000" stroke="#000000" points="2705.4777,-226.7384 2713.7384,-220.1044 2703.1437,-220.139 2705.4777,-226.7384"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).cacheSpan (0.37s)">
<text text-anchor="middle" x="2658.4819" y="-246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.deferproc.func1 (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2979.1534,-221.5 2856.3623,-221.5 2856.3623,-180.5 2979.1534,-180.5 2979.1534,-221.5"/>
<text text-anchor="middle" x="2917.7578" y="-208.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2917.7578" y="-197.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.19%)</text>
<text text-anchor="middle" x="2917.7578" y="-186.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.27s(1.27%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N63 -->
<g id="edge64" class="edge">
<title>N13&#45;&gt;N63</title>
<g id="a_edge64"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.27s)">
<path fill="none" stroke="#000000" d="M2550.4373,-290.9234C2624.7732,-277.8901 2745.6347,-254.7328 2847.7578,-226 2849.233,-225.585 2850.7219,-225.1546 2852.2201,-224.7113"/>
<polygon fill="#000000" stroke="#000000" points="2853.6793,-227.9235 2862.1962,-221.6217 2851.6084,-221.2368 2853.6793,-227.9235"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.27s)">
<text text-anchor="middle" x="2795.4819" y="-246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.semasleep.func1 (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2530.7305,-219 2434.7852,-219 2434.7852,-183 2530.7305,-183 2530.7305,-219"/>
<text text-anchor="middle" x="2482.7578" y="-202.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep.func1</text>
<text text-anchor="middle" x="2482.7578" y="-194.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.22s(1.03%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N70 -->
<g id="edge72" class="edge">
<title>N13&#45;&gt;N70</title>
<g id="a_edge72"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.22s)">
<path fill="none" stroke="#000000" d="M2481.2833,-275.8321C2481.5637,-261.6033 2481.9088,-244.0868 2482.1947,-229.5789"/>
<polygon fill="#000000" stroke="#000000" points="2485.7019,-229.2425 2482.3997,-219.1754 2478.7033,-229.1045 2485.7019,-229.2425"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.22s)">
<text text-anchor="middle" x="2499.4819" y="-246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.deferreturn.func1 (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2678.3731,-221.5 2549.1425,-221.5 2549.1425,-180.5 2678.3731,-180.5 2678.3731,-221.5"/>
<text text-anchor="middle" x="2613.7578" y="-208.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="2613.7578" y="-197.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.19%)</text>
<text text-anchor="middle" x="2613.7578" y="-186.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.19s(0.89%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N79 -->
<g id="edge86" class="edge">
<title>N13&#45;&gt;N79</title>
<g id="a_edge86"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.19s)">
<path fill="none" stroke="#000000" d="M2515.702,-275.8321C2535.0969,-261.0307 2559.1539,-242.6714 2578.5852,-227.8422"/>
<polygon fill="#000000" stroke="#000000" points="2580.7765,-230.5728 2586.6027,-221.7236 2576.5298,-225.0081 2580.7765,-230.5728"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.19s)">
<text text-anchor="middle" x="2572.4819" y="-246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="regexp/syntax.(*Inst).MatchRune (0.53s)">
<polygon fill="#f8f8f8" stroke="#000000" points="835.608,-423 671.9076,-423 671.9076,-382 835.608,-382 835.608,-423"/>
<text text-anchor="middle" x="753.7578" y="-410.2" font-family="Times,serif" font-size="11.00" fill="#000000">regexp/syntax.(*Inst).MatchRune</text>
<text text-anchor="middle" x="753.7578" y="-399.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.23%)</text>
<text text-anchor="middle" x="753.7578" y="-388.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.53s(2.48%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N32 -->
<g id="edge34" class="edge">
<title>N14&#45;&gt;N32</title>
<g id="a_edge34"><a xlink:title="regexp.(*machine).tryBacktrack &#45;&gt; regexp/syntax.(*Inst).MatchRune (0.53s)">
<path fill="none" stroke="#000000" d="M750.258,-481.9463C750.9385,-466.4984 751.7374,-448.3642 752.3999,-433.3244"/>
<polygon fill="#000000" stroke="#000000" points="755.911,-433.147 752.8546,-423.0026 748.9178,-432.8389 755.911,-433.147"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="regexp.(*machine).tryBacktrack &#45;&gt; regexp/syntax.(*Inst).MatchRune (0.53s)">
<text text-anchor="middle" x="769.4819" y="-446.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.53s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="regexp.(*inputString).context (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1023.5553,-426 853.9603,-426 853.9603,-379 1023.5553,-379 1023.5553,-426"/>
<text text-anchor="middle" x="938.7578" y="-411.6" font-family="Times,serif" font-size="13.00" fill="#000000">regexp.(*inputString).context</text>
<text text-anchor="middle" x="938.7578" y="-398.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.13s(0.61%)</text>
<text text-anchor="middle" x="938.7578" y="-385.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.41s(1.92%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N41 -->
<g id="edge43" class="edge">
<title>N14&#45;&gt;N41</title>
<g id="a_edge43"><a xlink:title="regexp.(*machine).tryBacktrack &#45;&gt; regexp.(*inputString).context (0.41s)">
<path fill="none" stroke="#000000" d="M805.7641,-481.9463C832.7512,-465.825 864.6358,-446.7781 890.4196,-431.3757"/>
<polygon fill="#000000" stroke="#000000" points="892.4772,-434.2236 899.2671,-426.0905 888.8873,-428.2142 892.4772,-434.2236"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="regexp.(*machine).tryBacktrack &#45;&gt; regexp.(*inputString).context (0.41s)">
<text text-anchor="middle" x="883.4819" y="-446.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="regexp.(*bitState).push (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="653.7236,-421.5 497.792,-421.5 497.792,-383.5 653.7236,-383.5 653.7236,-421.5"/>
<text text-anchor="middle" x="575.7578" y="-405.5" font-family="Times,serif" font-size="15.00" fill="#000000">regexp.(*bitState).push</text>
<text text-anchor="middle" x="575.7578" y="-390.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.31s(1.45%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N56 -->
<g id="edge55" class="edge">
<title>N14&#45;&gt;N56</title>
<g id="a_edge55"><a xlink:title="regexp.(*machine).tryBacktrack &#45;&gt; regexp.(*bitState).push (0.31s)">
<path fill="none" stroke="#000000" d="M696.8521,-481.9463C670.0822,-464.3834 638.0198,-443.3482 613.6133,-427.3358"/>
<polygon fill="#000000" stroke="#000000" points="615.2729,-424.2386 604.9917,-421.6795 611.433,-430.0915 615.2729,-424.2386"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="regexp.(*machine).tryBacktrack &#45;&gt; regexp.(*bitState).push (0.31s)">
<text text-anchor="middle" x="674.4819" y="-446.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.duffcopy (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1418.5952,-420.5 1304.9204,-420.5 1304.9204,-384.5 1418.5952,-384.5 1418.5952,-420.5"/>
<text text-anchor="middle" x="1361.7578" y="-405.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.duffcopy</text>
<text text-anchor="middle" x="1361.7578" y="-391.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.21s(0.98%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N73 -->
<g id="edge87" class="edge">
<title>N14&#45;&gt;N73</title>
<g id="a_edge87"><a xlink:title="regexp.(*machine).tryBacktrack &#45;&gt; runtime.duffcopy (0.18s)">
<path fill="none" stroke="#000000" d="M886.327,-490.5284C1013.4933,-466.9829 1197.0809,-432.9907 1294.7353,-414.9096"/>
<polygon fill="#000000" stroke="#000000" points="1295.5782,-418.3131 1304.7739,-413.0509 1294.3037,-411.43 1295.5782,-418.3131"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="regexp.(*machine).tryBacktrack &#45;&gt; runtime.duffcopy (0.18s)">
<text text-anchor="middle" x="1145.4819" y="-446.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="strconv.ParseFloat (2.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1943.265,-959 1854.2506,-959 1854.2506,-921 1943.265,-921 1943.265,-959"/>
<text text-anchor="middle" x="1898.7578" y="-947" font-family="Times,serif" font-size="10.00" fill="#000000">strconv.ParseFloat</text>
<text text-anchor="middle" x="1898.7578" y="-937" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="1898.7578" y="-927" font-family="Times,serif" font-size="10.00" fill="#000000">of 2.21s(10.36%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N16 -->
<g id="edge14" class="edge">
<title>N15&#45;&gt;N16</title>
<g id="a_edge14"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (2.21s)">
<path fill="none" stroke="#000000" d="M1790.4775,-1023.7789C1812.42,-1006.8015 1842.6966,-983.3759 1865.6567,-965.6111"/>
<polygon fill="#000000" stroke="#000000" points="1867.9884,-968.2324 1873.7556,-959.3448 1863.7048,-962.696 1867.9884,-968.2324"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (2.21s)">
<text text-anchor="middle" x="1851.4819" y="-991.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.21s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="strconv.atof64 (2.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1958.8265,-859 1838.6892,-859 1838.6892,-806 1958.8265,-806 1958.8265,-859"/>
<text text-anchor="middle" x="1898.7578" y="-843" font-family="Times,serif" font-size="15.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="1898.7578" y="-828" font-family="Times,serif" font-size="15.00" fill="#000000">0.32s(1.50%)</text>
<text text-anchor="middle" x="1898.7578" y="-813" font-family="Times,serif" font-size="15.00" fill="#000000">of 2.18s(10.22%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N17 -->
<g id="edge15" class="edge">
<title>N16&#45;&gt;N17</title>
<g id="a_edge15"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (2.18s)">
<path fill="none" stroke="#000000" d="M1898.7578,-920.7812C1898.7578,-906.5777 1898.7578,-886.7953 1898.7578,-869.5565"/>
<polygon fill="#000000" stroke="#000000" points="1902.2579,-869.2241 1898.7578,-859.2241 1895.2579,-869.2241 1902.2579,-869.2241"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (2.18s)">
<text text-anchor="middle" x="1915.4819" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.18s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N10 -->
<g id="edge23" class="edge">
<title>N17&#45;&gt;N10</title>
<g id="a_edge23"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.94s)">
<path fill="none" stroke="#000000" d="M1959.1906,-822.8845C2000.2635,-813.1173 2052.4516,-793.7802 2082.7578,-756 2103.6887,-729.9072 2107.9961,-691.0158 2107.9696,-663.2506"/>
<polygon fill="#000000" stroke="#000000" points="2111.4681,-663.1336 2107.7729,-653.204 2104.4694,-663.2707 2111.4681,-663.1336"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.94s)">
<text text-anchor="middle" x="2121.4819" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.94s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.duffzero (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1957.2002,-748.5 1840.3154,-748.5 1840.3154,-710.5 1957.2002,-710.5 1957.2002,-748.5"/>
<text text-anchor="middle" x="1898.7578" y="-732.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="1898.7578" y="-717.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.37s(1.73%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N46 -->
<g id="edge51" class="edge">
<title>N17&#45;&gt;N46</title>
<g id="a_edge51"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.34s)">
<path fill="none" stroke="#000000" d="M1898.7578,-805.9749C1898.7578,-791.5857 1898.7578,-773.7644 1898.7578,-758.9462"/>
<polygon fill="#000000" stroke="#000000" points="1902.2579,-758.7791 1898.7578,-748.7791 1895.2579,-758.7791 1902.2579,-758.7791"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.34s)">
<text text-anchor="middle" x="1915.4819" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="strconv.special (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2073.9322,-747.5 1975.5834,-747.5 1975.5834,-711.5 2073.9322,-711.5 2073.9322,-747.5"/>
<text text-anchor="middle" x="2024.7578" y="-732.3" font-family="Times,serif" font-size="14.00" fill="#000000">strconv.special</text>
<text text-anchor="middle" x="2024.7578" y="-718.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.28s(1.31%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N62 -->
<g id="edge62" class="edge">
<title>N17&#45;&gt;N62</title>
<g id="a_edge62"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.28s)">
<path fill="none" stroke="#000000" d="M1931.2059,-805.9749C1950.8568,-789.9112 1975.7402,-769.57 1994.9032,-753.905"/>
<polygon fill="#000000" stroke="#000000" points="1997.2066,-756.5427 2002.7337,-747.5038 1992.7762,-751.1231 1997.2066,-756.5427"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.28s)">
<text text-anchor="middle" x="1986.4819" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="strconv.(*decimal).set (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1822.7499,-747.5 1682.7657,-747.5 1682.7657,-711.5 1822.7499,-711.5 1822.7499,-747.5"/>
<text text-anchor="middle" x="1752.7578" y="-732.3" font-family="Times,serif" font-size="14.00" fill="#000000">strconv.(*decimal).set</text>
<text text-anchor="middle" x="1752.7578" y="-718.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.21s(0.98%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N75 -->
<g id="edge79" class="edge">
<title>N17&#45;&gt;N75</title>
<g id="a_edge79"><a xlink:title="strconv.atof64 &#45;&gt; strconv.(*decimal).set (0.21s)">
<path fill="none" stroke="#000000" d="M1861.1592,-805.9749C1838.0842,-789.696 1808.7826,-769.0243 1786.4627,-753.2781"/>
<polygon fill="#000000" stroke="#000000" points="1788.4667,-750.4086 1778.2778,-747.5038 1784.4314,-756.1284 1788.4667,-750.4086"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.(*decimal).set (0.21s)">
<text text-anchor="middle" x="1851.4819" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="strconv.Atoi (2.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2208.4127,-962 2115.1029,-962 2115.1029,-918 2208.4127,-918 2208.4127,-962"/>
<text text-anchor="middle" x="2161.7578" y="-948.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="2161.7578" y="-936.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.47%)</text>
<text text-anchor="middle" x="2161.7578" y="-924.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 2.09s(9.80%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N19 -->
<g id="edge17" class="edge">
<title>N18&#45;&gt;N19</title>
<g id="a_edge17"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (2.09s)">
<path fill="none" stroke="#000000" d="M2065.4767,-1025.427C2077.352,-1018.9276 2089.9472,-1011.264 2100.7578,-1003 2113.5334,-993.2339 2126.1511,-980.8018 2136.5663,-969.5663"/>
<polygon fill="#000000" stroke="#000000" points="2139.2776,-971.7865 2143.3998,-962.0264 2134.0909,-967.0856 2139.2776,-971.7865"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (2.09s)">
<text text-anchor="middle" x="2134.4819" y="-991.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.09s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="strconv.ParseInt (1.99s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2218.3257,-859 2105.1899,-859 2105.1899,-806 2218.3257,-806 2218.3257,-859"/>
<text text-anchor="middle" x="2161.7578" y="-843" font-family="Times,serif" font-size="15.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="2161.7578" y="-828" font-family="Times,serif" font-size="15.00" fill="#000000">0.35s(1.64%)</text>
<text text-anchor="middle" x="2161.7578" y="-813" font-family="Times,serif" font-size="15.00" fill="#000000">of 1.99s(9.33%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N20 -->
<g id="edge18" class="edge">
<title>N19&#45;&gt;N20</title>
<g id="a_edge18"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (1.99s)">
<path fill="none" stroke="#000000" d="M2161.7578,-917.9864C2161.7578,-903.9782 2161.7578,-885.4894 2161.7578,-869.2904"/>
<polygon fill="#000000" stroke="#000000" points="2165.2579,-869.0461 2161.7578,-859.0461 2158.2579,-869.0461 2165.2579,-869.0461"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (1.99s)">
<text text-anchor="middle" x="2178.4819" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.99s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="strconv.ParseUint (1.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2320.8492,-756 2198.6665,-756 2198.6665,-703 2320.8492,-703 2320.8492,-756"/>
<text text-anchor="middle" x="2259.7578" y="-740" font-family="Times,serif" font-size="15.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="2259.7578" y="-725" font-family="Times,serif" font-size="15.00" fill="#000000">0.38s(1.78%)</text>
<text text-anchor="middle" x="2259.7578" y="-710" font-family="Times,serif" font-size="15.00" fill="#000000">of 1.42s(6.66%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N21 -->
<g id="edge19" class="edge">
<title>N20&#45;&gt;N21</title>
<g id="a_edge19"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (1.42s)">
<path fill="none" stroke="#000000" d="M2175.9572,-805.9822C2182.3155,-795.4034 2190.3923,-783.5063 2199.3096,-774 2203.0429,-770.02 2207.1723,-766.1514 2211.4683,-762.4642"/>
<polygon fill="#000000" stroke="#000000" points="2213.8029,-765.0765 2219.3314,-756.0384 2209.3733,-759.6562 2213.8029,-765.0765"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (1.42s)">
<text text-anchor="middle" x="2216.4819" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.42s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N42 -->
<g id="edge73" class="edge">
<title>N20&#45;&gt;N42</title>
<g id="a_edge73"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.22s)">
<path fill="none" stroke="#000000" d="M2210.7779,-805.889C2231.8056,-795.1133 2256.8816,-783.0957 2280.3096,-774 2308.2903,-763.1368 2340.0334,-753.5063 2367.3588,-746.0074"/>
<polygon fill="#000000" stroke="#000000" points="2368.4717,-749.3322 2377.211,-743.3427 2366.644,-742.575 2368.4717,-749.3322"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.22s)">
<text text-anchor="middle" x="2297.4819" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N10 -->
<g id="edge21" class="edge">
<title>N21&#45;&gt;N10</title>
<g id="a_edge21"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (1.04s)">
<path fill="none" stroke="#000000" d="M2228.2004,-702.8527C2215.1425,-692.372 2199.6044,-680.5804 2184.7578,-671 2177.9846,-666.6293 2170.7013,-662.3209 2163.3949,-658.2301"/>
<polygon fill="#000000" stroke="#000000" points="2164.6168,-654.9088 2154.1645,-653.1764 2161.2551,-661.0488 2164.6168,-654.9088"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (1.04s)">
<text text-anchor="middle" x="2221.4819" y="-673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.04s</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N37 -->
<g id="edge92" class="edge">
<title>N23&#45;&gt;N37</title>
<g id="a_edge92"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.10s)">
<path fill="none" stroke="#000000" d="M2694.0946,-908.9065C2714.1384,-893.0631 2738.249,-874.0051 2757.3762,-858.8862"/>
<polygon fill="#000000" stroke="#000000" points="2759.5674,-861.6156 2765.2421,-852.6687 2755.2265,-856.124 2759.5674,-861.6156"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.10s)">
<text text-anchor="middle" x="2748.4819" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.aeshashbody (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2698.311,-851.5 2555.2046,-851.5 2555.2046,-813.5 2698.311,-813.5 2698.311,-851.5"/>
<text text-anchor="middle" x="2626.7578" y="-835.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="2626.7578" y="-820.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.31s(1.45%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N57 -->
<g id="edge58" class="edge">
<title>N23&#45;&gt;N57</title>
<g id="a_edge58"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.29s)">
<path fill="none" stroke="#000000" d="M2646.6591,-908.9065C2642.786,-894.0369 2638.1755,-876.3356 2634.3678,-861.7168"/>
<polygon fill="#000000" stroke="#000000" points="2637.6667,-860.4963 2631.7591,-851.7014 2630.8927,-862.2608 2637.6667,-860.4963"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.29s)">
<text text-anchor="middle" x="2658.4819" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N10 -->
<g id="edge32" class="edge">
<title>N24&#45;&gt;N10</title>
<g id="a_edge32"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.65s)">
<path fill="none" stroke="#000000" d="M1723.8263,-916.3681C1730.1056,-913.6677 1736.5278,-911.1262 1742.7578,-909 1766.995,-900.7282 1943.9425,-868.4177 1967.7578,-859 2009.5427,-842.4763 2119.5032,-795.0352 2141.7578,-756 2158.6243,-726.4157 2143.6202,-688.3678 2128.1554,-661.7586"/>
<polygon fill="#000000" stroke="#000000" points="2131.1326,-659.9182 2122.9385,-653.2019 2125.1558,-663.5621 2131.1326,-659.9182"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.65s)">
<text text-anchor="middle" x="2143.4819" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.65s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.typedmemmove (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1287.397,-854.5 1154.1187,-854.5 1154.1187,-810.5 1287.397,-810.5 1287.397,-854.5"/>
<text text-anchor="middle" x="1220.7578" y="-840.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="1220.7578" y="-828.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.12s(0.56%)</text>
<text text-anchor="middle" x="1220.7578" y="-816.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.30s(1.41%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N60 -->
<g id="edge88" class="edge">
<title>N24&#45;&gt;N60</title>
<g id="a_edge88"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.16s)">
<path fill="none" stroke="#000000" d="M1632.1364,-916.3784C1625.1357,-913.4578 1617.8625,-910.8531 1610.7578,-909 1501.9153,-880.6104 1464.954,-926.7719 1358.3096,-891 1347.4804,-887.3676 1346.9352,-882.1851 1336.7578,-877 1327.7976,-872.435 1309.9757,-865.2919 1290.9362,-858.0544"/>
<polygon fill="#000000" stroke="#000000" points="1292.117,-854.7591 1281.5252,-854.5048 1289.6466,-861.3087 1292.117,-854.7591"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.16s)">
<text text-anchor="middle" x="1375.4819" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N7 -->
<g id="edge27" class="edge">
<title>N26&#45;&gt;N7</title>
<g id="a_edge27"><a xlink:title="runtime.makeslice &#45;&gt; runtime.mallocgc (0.76s)">
<path fill="none" stroke="#000000" d="M962.5485,-608.4915C965.6452,-607.5881 968.7291,-606.7489 971.7578,-606 1072.1828,-581.167 1099.3872,-584.432 1202.3096,-574 1492.1245,-544.6248 1835.8385,-527.3832 2003.5024,-520.1031"/>
<polygon fill="#000000" stroke="#000000" points="2003.7156,-523.5973 2013.5554,-519.6694 2003.4138,-516.6038 2003.7156,-523.5973"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime.makeslice &#45;&gt; runtime.mallocgc (0.76s)">
<text text-anchor="middle" x="1219.4819" y="-576.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.76s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N10 -->
<g id="edge31" class="edge">
<title>N27&#45;&gt;N10</title>
<g id="a_edge31"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.67s)">
<path fill="none" stroke="#000000" d="M1660.0347,-705.966C1664.6679,-704.9329 1669.2616,-703.9379 1673.7578,-703 1802.2179,-676.2031 1953.6902,-652.149 2038.8456,-639.307"/>
<polygon fill="#000000" stroke="#000000" points="2039.5267,-642.744 2048.8957,-637.797 2038.4866,-635.8217 2039.5267,-642.744"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.67s)">
<text text-anchor="middle" x="1856.4819" y="-673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.67s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N73 -->
<g id="edge101" class="edge">
<title>N27&#45;&gt;N73</title>
<g id="a_edge101"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.duffcopy (0.03s)">
<path fill="none" stroke="#000000" d="M1552.0147,-705.983C1514.9136,-646.8022 1417.8498,-491.9736 1378.5954,-429.358"/>
<polygon fill="#000000" stroke="#000000" points="1381.5144,-427.4247 1373.2372,-420.8111 1375.5835,-431.1429 1381.5144,-427.4247"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.duffcopy (0.03s)">
<text text-anchor="middle" x="1493.4819" y="-576.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="sync.(*Mutex).Lock (0.51s)">
<polygon fill="#f8f8f8" stroke="#000000" points="276.7324,-538 162.7832,-538 162.7832,-494 276.7324,-494 276.7324,-538"/>
<text text-anchor="middle" x="219.7578" y="-524.4" font-family="Times,serif" font-size="12.00" fill="#000000">sync.(*Mutex).Lock</text>
<text text-anchor="middle" x="219.7578" y="-512.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.38%)</text>
<text text-anchor="middle" x="219.7578" y="-500.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.51s(2.39%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N34 -->
<g id="edge60" class="edge">
<title>N28&#45;&gt;N34</title>
<g id="a_edge60"><a xlink:title="regexp.(*Regexp).get &#45;&gt; sync.(*Mutex).Lock (0.28s)">
<path fill="none" stroke="#000000" d="M506.7324,-605.9407C478.744,-594.784 443.9231,-582.1494 411.7578,-574 356.9219,-560.1068 339.024,-575.0451 285.7578,-556 276.6751,-552.7525 267.4813,-548.1682 258.9571,-543.2557"/>
<polygon fill="#000000" stroke="#000000" points="260.7192,-540.2311 250.3492,-538.0599 257.1018,-546.224 260.7192,-540.2311"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="regexp.(*Regexp).get &#45;&gt; sync.(*Mutex).Lock (0.28s)">
<text text-anchor="middle" x="475.4819" y="-576.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="sync.(*Mutex).Unlock (0.51s)">
<polygon fill="#f8f8f8" stroke="#000000" points="428.4564,-539.5 295.0592,-539.5 295.0592,-492.5 428.4564,-492.5 428.4564,-539.5"/>
<text text-anchor="middle" x="361.7578" y="-525.1" font-family="Times,serif" font-size="13.00" fill="#000000">sync.(*Mutex).Unlock</text>
<text text-anchor="middle" x="361.7578" y="-512.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(0.7%)</text>
<text text-anchor="middle" x="361.7578" y="-499.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.51s(2.39%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N35 -->
<g id="edge61" class="edge">
<title>N28&#45;&gt;N35</title>
<g id="a_edge61"><a xlink:title="regexp.(*Regexp).get &#45;&gt; sync.(*Mutex).Unlock (0.28s)">
<path fill="none" stroke="#000000" d="M539.6998,-605.7534C528.376,-594.7563 513.8145,-582.315 498.7578,-574 474.0135,-560.3351 463.9479,-566.6344 437.7578,-556 429.2357,-552.5396 420.4078,-548.4243 411.9162,-544.1707"/>
<polygon fill="#000000" stroke="#000000" points="413.3592,-540.9773 402.8644,-539.5251 410.163,-547.205 413.3592,-540.9773"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="regexp.(*Regexp).get &#45;&gt; sync.(*Mutex).Unlock (0.28s)">
<text text-anchor="middle" x="535.4819" y="-576.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="main.(*machine).executeMultiply (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2970.8223,-959 2818.6933,-959 2818.6933,-921 2970.8223,-921 2970.8223,-959"/>
<text text-anchor="middle" x="2894.7578" y="-947" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="2894.7578" y="-937" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.047%)</text>
<text text-anchor="middle" x="2894.7578" y="-927" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.30s(1.41%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N58 -->
<g id="edge56" class="edge">
<title>N29&#45;&gt;N58</title>
<g id="a_edge56"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.30s)">
<path fill="none" stroke="#000000" d="M2908.9844,-1023.7789C2906.3038,-1007.9929 2902.6764,-986.6319 2899.7554,-969.4305"/>
<polygon fill="#000000" stroke="#000000" points="2903.1676,-968.6176 2898.0428,-959.3448 2896.2664,-969.7896 2903.1676,-968.6176"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.30s)">
<text text-anchor="middle" x="2922.4819" y="-991.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="main.(*machine).executeSubtract (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3139.1431,-959 2988.3726,-959 2988.3726,-921 3139.1431,-921 3139.1431,-959"/>
<text text-anchor="middle" x="3063.7578" y="-947" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="3063.7578" y="-937" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.094%)</text>
<text text-anchor="middle" x="3063.7578" y="-927" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.30s(1.41%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N59 -->
<g id="edge57" class="edge">
<title>N29&#45;&gt;N59</title>
<g id="a_edge57"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.30s)">
<path fill="none" stroke="#000000" d="M2944.4124,-1023.7789C2968.8093,-1006.6526 3002.5538,-982.9644 3027.9381,-965.1449"/>
<polygon fill="#000000" stroke="#000000" points="3030.0269,-967.955 3036.2007,-959.3448 3026.005,-962.2257 3030.0269,-967.955"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.30s)">
<text text-anchor="middle" x="3010.4819" y="-991.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N7 -->
<g id="edge42" class="edge">
<title>N30&#45;&gt;N7</title>
<g id="a_edge42"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.42s)">
<path fill="none" stroke="#000000" d="M1236.3991,-705.9847C1237.3441,-677.7465 1243.5428,-631.0624 1272.3096,-606 1326.4605,-558.8222 1792.6213,-530.89 2003.2256,-520.5734"/>
<polygon fill="#000000" stroke="#000000" points="2003.546,-524.062 2013.3643,-520.0806 2003.2062,-517.0703 2003.546,-524.062"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.42s)">
<text text-anchor="middle" x="1289.4819" y="-625.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N34 -->
<g id="edge69" class="edge">
<title>N31&#45;&gt;N34</title>
<g id="a_edge69"><a xlink:title="regexp.(*Regexp).put &#45;&gt; sync.(*Mutex).Lock (0.23s)">
<path fill="none" stroke="#000000" d="M353.2397,-608.946C327.1043,-590.7474 288.7285,-564.0256 259.8247,-543.8993"/>
<polygon fill="#000000" stroke="#000000" points="261.7695,-540.9886 251.563,-538.1465 257.7694,-546.7332 261.7695,-540.9886"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="regexp.(*Regexp).put &#45;&gt; sync.(*Mutex).Lock (0.23s)">
<text text-anchor="middle" x="337.4819" y="-576.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N35 -->
<g id="edge70" class="edge">
<title>N31&#45;&gt;N35</title>
<g id="a_edge70"><a xlink:title="regexp.(*Regexp).put &#45;&gt; sync.(*Mutex).Unlock (0.23s)">
<path fill="none" stroke="#000000" d="M378.9549,-608.946C375.8891,-592.3761 371.516,-568.7404 367.9469,-549.4508"/>
<polygon fill="#000000" stroke="#000000" points="371.3738,-548.734 366.1128,-539.5377 364.4906,-550.0076 371.3738,-548.734"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="regexp.(*Regexp).put &#45;&gt; sync.(*Mutex).Unlock (0.23s)">
<text text-anchor="middle" x="391.4819" y="-576.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="regexp/syntax.(*Inst).MatchRunePos (0.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="880.9376,-322.5 626.5781,-322.5 626.5781,-282.5 880.9376,-282.5 880.9376,-322.5"/>
<text text-anchor="middle" x="753.7578" y="-305.7" font-family="Times,serif" font-size="16.00" fill="#000000">regexp/syntax.(*Inst).MatchRunePos</text>
<text text-anchor="middle" x="753.7578" y="-289.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.48s(2.25%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N36 -->
<g id="edge38" class="edge">
<title>N32&#45;&gt;N36</title>
<g id="a_edge38"><a xlink:title="regexp/syntax.(*Inst).MatchRune &#45;&gt; regexp/syntax.(*Inst).MatchRunePos (0.48s)">
<path fill="none" stroke="#000000" d="M753.7578,-381.7799C753.7578,-367.6495 753.7578,-348.7018 753.7578,-332.8734"/>
<polygon fill="#000000" stroke="#000000" points="757.2579,-332.5111 753.7578,-322.5111 750.2579,-332.5112 757.2579,-332.5111"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="regexp/syntax.(*Inst).MatchRune &#45;&gt; regexp/syntax.(*Inst).MatchRunePos (0.48s)">
<text text-anchor="middle" x="770.4819" y="-349.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.48s</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N13 -->
<g id="edge37" class="edge">
<title>N33&#45;&gt;N13</title>
<g id="a_edge37"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.50s)">
<path fill="none" stroke="#000000" d="M2326.9455,-383.4142C2345.2208,-372.4273 2368.8587,-358.5523 2390.3096,-347 2398.5433,-342.5658 2407.2806,-338.0438 2415.9526,-333.6639"/>
<polygon fill="#000000" stroke="#000000" points="2417.5689,-336.7689 2424.9421,-329.1606 2414.4336,-330.5102 2417.5689,-336.7689"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.50s)">
<text text-anchor="middle" x="2407.4819" y="-349.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="sync/atomic.CompareAndSwapUint32 (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="263.2739,-422.5 .2417,-422.5 .2417,-382.5 263.2739,-382.5 263.2739,-422.5"/>
<text text-anchor="middle" x="131.7578" y="-405.7" font-family="Times,serif" font-size="16.00" fill="#000000">sync/atomic.CompareAndSwapUint32</text>
<text text-anchor="middle" x="131.7578" y="-389.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.41s(1.92%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N43 -->
<g id="edge44" class="edge">
<title>N34&#45;&gt;N43</title>
<g id="a_edge44"><a xlink:title="sync.(*Mutex).Lock &#45;&gt; sync/atomic.CompareAndSwapUint32 (0.41s)">
<path fill="none" stroke="#000000" d="M202.5816,-493.8466C188.5764,-475.783 168.7079,-450.1572 153.5777,-430.6427"/>
<polygon fill="#000000" stroke="#000000" points="156.3078,-428.4517 147.4144,-422.6934 150.7757,-432.7409 156.3078,-428.4517"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="sync.(*Mutex).Lock &#45;&gt; sync/atomic.CompareAndSwapUint32 (0.41s)">
<text text-anchor="middle" x="190.4819" y="-446.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="sync/atomic.AddUint32 (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="441.4885,-421.5 282.0271,-421.5 282.0271,-383.5 441.4885,-383.5 441.4885,-421.5"/>
<text text-anchor="middle" x="361.7578" y="-405.5" font-family="Times,serif" font-size="15.00" fill="#000000">sync/atomic.AddUint32</text>
<text text-anchor="middle" x="361.7578" y="-390.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.36s(1.69%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N48 -->
<g id="edge48" class="edge">
<title>N35&#45;&gt;N48</title>
<g id="a_edge48"><a xlink:title="sync.(*Mutex).Unlock &#45;&gt; sync/atomic.AddUint32 (0.36s)">
<path fill="none" stroke="#000000" d="M361.7578,-492.4827C361.7578,-474.9234 361.7578,-450.81 361.7578,-431.9647"/>
<polygon fill="#000000" stroke="#000000" points="365.2579,-431.8401 361.7578,-421.8401 358.2579,-431.8402 365.2579,-431.8401"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="sync.(*Mutex).Unlock &#45;&gt; sync/atomic.AddUint32 (0.36s)">
<text text-anchor="middle" x="378.4819" y="-446.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N13 -->
<g id="edge63" class="edge">
<title>N38&#45;&gt;N13</title>
<g id="a_edge63"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.27s)">
<path fill="none" stroke="#000000" d="M2226.993,-1024.1926C2229.9456,-1023.0794 2232.8821,-1022.0068 2235.7578,-1021 2359.2367,-977.768 2518.7578,-1070.8283 2518.7578,-940 2518.7578,-940 2518.7578,-940 2518.7578,-402.5 2518.7578,-380.0978 2510.3215,-356.6057 2501.399,-338.0242"/>
<polygon fill="#000000" stroke="#000000" points="2504.5031,-336.4065 2496.8732,-329.0556 2498.2537,-339.5601 2504.5031,-336.4065"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.27s)">
<text text-anchor="middle" x="2535.4819" y="-673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N13 -->
<g id="edge84" class="edge">
<title>N39&#45;&gt;N13</title>
<g id="a_edge84"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.19s)">
<path fill="none" stroke="#000000" d="M1925.9927,-1020.7747C1965.0024,-989.5833 2036.1532,-937.1742 2105.7578,-909 2144.7825,-893.2038 2162.0739,-911.6575 2198.7578,-891 2215.4821,-881.5822 2217.6718,-875.3299 2227.7578,-859 2249.0533,-824.5214 2230.501,-800.9592 2260.7578,-774 2284.4205,-752.9163 2305.9881,-776.963 2329.7578,-756 2388.9945,-703.7579 2440.9513,-502.1926 2461.7578,-426 2469.5584,-397.4347 2474.4422,-364.2198 2477.3019,-339.4351"/>
<polygon fill="#000000" stroke="#000000" points="2480.7949,-339.6893 2478.4062,-329.3673 2473.8367,-338.926 2480.7949,-339.6893"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.19s)">
<text text-anchor="middle" x="2399.4819" y="-673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N51 -->
<g id="edge102" class="edge">
<title>N39&#45;&gt;N51</title>
<g id="a_edge102"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.03s)">
<path fill="none" stroke="#000000" d="M1876.3281,-1020.9855C1865.9933,-1006.8647 1853.6261,-988.5715 1844.7578,-971 1824.8079,-931.4716 1841.5144,-909.7878 1811.7578,-877 1731.2727,-788.3159 1678.873,-803.3253 1562.7578,-774 1517.701,-762.6207 1499.1092,-780.72 1459.7578,-756 1420.3831,-731.2653 1438.8655,-694.5276 1398.7578,-671 1368.277,-653.1196 1275.8557,-657.1141 1240.7578,-653 1201.1331,-648.3553 1156.9968,-643.0475 1120.7494,-638.6529"/>
<polygon fill="#000000" stroke="#000000" points="1121.0941,-635.1692 1110.7453,-637.439 1120.2508,-642.1182 1121.0941,-635.1692"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.03s)">
<text text-anchor="middle" x="1810.4819" y="-828.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N51 -->
<g id="edge96" class="edge">
<title>N40&#45;&gt;N51</title>
<g id="a_edge96"><a xlink:title="runtime.slicebytetostring &#45;&gt; runtime.memmove (0.05s)">
<path fill="none" stroke="#000000" d="M1417.0257,-810.4394C1411.8897,-808.8437 1406.7517,-807.3386 1401.7578,-806 1287.0647,-775.2582 1238.785,-820.8399 1139.3096,-756 1115.3381,-740.375 1119.6547,-726.0925 1102.7578,-703 1091.3867,-687.4595 1078.2411,-670.4485 1067.4415,-656.7091"/>
<polygon fill="#000000" stroke="#000000" points="1069.9998,-654.3011 1061.0572,-648.6195 1064.5049,-658.6377 1069.9998,-654.3011"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.slicebytetostring &#45;&gt; runtime.memmove (0.05s)">
<text text-anchor="middle" x="1156.4819" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.rawstringtmp (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1413.1865,-748.5 1310.3291,-748.5 1310.3291,-710.5 1413.1865,-710.5 1413.1865,-748.5"/>
<text text-anchor="middle" x="1361.7578" y="-736.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.rawstringtmp</text>
<text text-anchor="middle" x="1361.7578" y="-726.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="1361.7578" y="-716.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.29s(1.36%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N61 -->
<g id="edge59" class="edge">
<title>N40&#45;&gt;N61</title>
<g id="a_edge59"><a xlink:title="runtime.slicebytetostring &#45;&gt; runtime.rawstringtmp (0.29s)">
<path fill="none" stroke="#000000" d="M1452.8729,-810.4039C1434.7348,-794.2985 1410.0987,-772.4234 1391.0169,-755.4801"/>
<polygon fill="#000000" stroke="#000000" points="1393.2792,-752.8082 1383.4776,-748.7857 1388.6314,-758.0426 1393.2792,-752.8082"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.slicebytetostring &#45;&gt; runtime.rawstringtmp (0.29s)">
<text text-anchor="middle" x="1443.4819" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="strings.TrimFunc (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="927.4585,-853 836.0571,-853 836.0571,-812 927.4585,-812 927.4585,-853"/>
<text text-anchor="middle" x="881.7578" y="-840.2" font-family="Times,serif" font-size="11.00" fill="#000000">strings.TrimFunc</text>
<text text-anchor="middle" x="881.7578" y="-829.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.19%)</text>
<text text-anchor="middle" x="881.7578" y="-818.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.36s(1.69%)</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N47 -->
<g id="edge47" class="edge">
<title>N44&#45;&gt;N47</title>
<g id="a_edge47"><a xlink:title="strings.TrimSpace &#45;&gt; strings.TrimFunc (0.36s)">
<path fill="none" stroke="#000000" d="M1117.2203,-920.9693C1109.7082,-916.7105 1101.5737,-912.4411 1093.7578,-909 1026.735,-879.4923 1004.8012,-886.0714 936.7578,-859 935.3421,-858.4368 933.912,-857.8532 932.4735,-857.2534"/>
<polygon fill="#000000" stroke="#000000" points="933.4895,-853.8787 922.9232,-853.1021 930.699,-860.2985 933.4895,-853.8787"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="strings.TrimSpace &#45;&gt; strings.TrimFunc (0.36s)">
<text text-anchor="middle" x="1060.4819" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.(*mheap).alloc (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2693.6105,-126 2583.9052,-126 2583.9052,-88 2693.6105,-88 2693.6105,-126"/>
<text text-anchor="middle" x="2638.7578" y="-114" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="2638.7578" y="-104" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.047%)</text>
<text text-anchor="middle" x="2638.7578" y="-94" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.21s(0.98%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N72 -->
<g id="edge74" class="edge">
<title>N45&#45;&gt;N72</title>
<g id="a_edge74"><a xlink:title="runtime.(*mcentral).cacheSpan ... runtime.(*mheap).alloc (0.21s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2741.6527,-181.9777C2722.0246,-167.675 2694.938,-147.9375 2673.4827,-132.3034"/>
<polygon fill="#000000" stroke="#000000" points="2675.41,-129.3772 2665.2668,-126.3166 2671.2876,-135.0345 2675.41,-129.3772"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan ... runtime.(*mheap).alloc (0.21s)">
<text text-anchor="middle" x="2724.4819" y="-146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.mapassign1 (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1331.3242,-963.5 1210.1914,-963.5 1210.1914,-916.5 1331.3242,-916.5 1331.3242,-963.5"/>
<text text-anchor="middle" x="1270.7578" y="-949.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="1270.7578" y="-936.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.17s(0.8%)</text>
<text text-anchor="middle" x="1270.7578" y="-923.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.25s(1.17%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N67 -->
<g id="edge67" class="edge">
<title>N49&#45;&gt;N67</title>
<g id="a_edge67"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.25s)">
<path fill="none" stroke="#000000" d="M1313.4131,-1025.3105C1305.9402,-1010.3648 1295.6957,-989.8758 1287.1194,-972.7233"/>
<polygon fill="#000000" stroke="#000000" points="1290.1574,-970.9728 1282.5547,-963.5937 1283.8964,-974.1033 1290.1574,-970.9728"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.25s)">
<text text-anchor="middle" x="1319.4819" y="-991.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="regexp.(*Regexp).expand (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="308.8657,-647.5 148.6499,-647.5 148.6499,-611.5 308.8657,-611.5 308.8657,-647.5"/>
<text text-anchor="middle" x="228.7578" y="-632.3" font-family="Times,serif" font-size="14.00" fill="#000000">regexp.(*Regexp).expand</text>
<text text-anchor="middle" x="228.7578" y="-618.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.20s(0.94%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N77 -->
<g id="edge81" class="edge">
<title>N50&#45;&gt;N77</title>
<g id="a_edge81"><a xlink:title="regexp.(*Regexp).ReplaceAllString.func1 &#45;&gt; regexp.(*Regexp).expand (0.20s)">
<path fill="none" stroke="#000000" d="M449.6348,-705.928C401.494,-689.2703 337.4817,-667.1207 290.7661,-650.9562"/>
<polygon fill="#000000" stroke="#000000" points="291.6667,-647.5642 281.0719,-647.6018 289.3777,-654.1794 291.6667,-647.5642"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="regexp.(*Regexp).ReplaceAllString.func1 &#45;&gt; regexp.(*Regexp).expand (0.20s)">
<text text-anchor="middle" x="399.4819" y="-673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N53 -->
<g id="edge94" class="edge">
<title>N52&#45;&gt;N53</title>
<g id="a_edge94"><a xlink:title="regexp.(*bitState).reset &#45;&gt; runtime.memclr (0.08s)">
<path fill="none" stroke="#000000" d="M501.4236,-490.7904C487.1536,-468.6597 469.7578,-435.0136 469.7578,-402.5 469.7578,-402.5 469.7578,-402.5 469.7578,-107 469.7578,-67.3005 1723.0404,-29.4598 2028.3178,-20.8314"/>
<polygon fill="#000000" stroke="#000000" points="2028.4523,-24.3291 2038.3497,-20.5487 2028.2551,-17.3319 2028.4523,-24.3291"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="regexp.(*bitState).reset &#45;&gt; runtime.memclr (0.08s)">
<text text-anchor="middle" x="486.4819" y="-246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime._System (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2452.5277,-420.5 2378.9879,-420.5 2378.9879,-384.5 2452.5277,-384.5 2452.5277,-420.5"/>
<text text-anchor="middle" x="2415.7578" y="-404.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="2415.7578" y="-396.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.32s(1.50%)</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N13 -->
<g id="edge54" class="edge">
<title>N54&#45;&gt;N13</title>
<g id="a_edge54"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.32s)">
<path fill="none" stroke="#000000" d="M2419.0605,-384.2524C2421.691,-372.9101 2426.1487,-358.3743 2433.3096,-347 2435.5433,-343.4519 2438.1271,-339.997 2440.9123,-336.6829"/>
<polygon fill="#000000" stroke="#000000" points="2443.5576,-338.9764 2447.7071,-329.228 2438.3841,-334.261 2443.5576,-338.9764"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.32s)">
<text text-anchor="middle" x="2450.4819" y="-349.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.schedule (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2227.5277,-320.5 2153.9879,-320.5 2153.9879,-284.5 2227.5277,-284.5 2227.5277,-320.5"/>
<text text-anchor="middle" x="2190.7578" y="-304.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="2190.7578" y="-296.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.32s(1.50%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N22 -->
<g id="edge91" class="edge">
<title>N55&#45;&gt;N22</title>
<g id="a_edge91"><a xlink:title="runtime.schedule ... runtime.mach_semaphore_signal (0.11s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2204.8814,-284.3538C2215.7132,-270.437 2230.9601,-250.8477 2243.9515,-234.1562"/>
<polygon fill="#000000" stroke="#000000" points="2246.7386,-236.2737 2250.1187,-226.2325 2241.2146,-231.9742 2246.7386,-236.2737"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.schedule ... runtime.mach_semaphore_signal (0.11s)">
<text text-anchor="middle" x="2252.2256" y="-246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N51 -->
<g id="edge90" class="edge">
<title>N60&#45;&gt;N51</title>
<g id="a_edge90"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.13s)">
<path fill="none" stroke="#000000" d="M1159.123,-810.4304C1154.2807,-808.8737 1149.4505,-807.3775 1144.7578,-806 1062.0254,-781.7144 1009.269,-824.8088 957.3096,-756 943.1146,-737.2019 947.3036,-724.3248 957.3096,-703 966.7115,-682.9625 984.557,-666.496 1001.7701,-654.2652"/>
<polygon fill="#000000" stroke="#000000" points="1003.812,-657.1095 1010.1296,-648.6042 999.887,-651.3135 1003.812,-657.1095"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.13s)">
<text text-anchor="middle" x="974.4819" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.rawstring (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1408.7684,-650 1314.7473,-650 1314.7473,-609 1408.7684,-609 1408.7684,-650"/>
<text text-anchor="middle" x="1361.7578" y="-637.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.rawstring</text>
<text text-anchor="middle" x="1361.7578" y="-626.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.23%)</text>
<text text-anchor="middle" x="1361.7578" y="-615.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.26s(1.22%)</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N65 -->
<g id="edge66" class="edge">
<title>N61&#45;&gt;N65</title>
<g id="a_edge66"><a xlink:title="runtime.rawstringtmp &#45;&gt; runtime.rawstring (0.26s)">
<path fill="none" stroke="#000000" d="M1361.7578,-710.219C1361.7578,-696.0656 1361.7578,-676.5505 1361.7578,-660.2543"/>
<polygon fill="#000000" stroke="#000000" points="1365.2579,-660.0988 1361.7578,-650.0988 1358.2579,-660.0988 1365.2579,-660.0988"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.rawstringtmp &#45;&gt; runtime.rawstring (0.26s)">
<text text-anchor="middle" x="1378.4819" y="-673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.newdefer (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2975.379,-125 2860.1367,-125 2860.1367,-89 2975.379,-89 2975.379,-125"/>
<text text-anchor="middle" x="2917.7578" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2917.7578" y="-95.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.21s(0.98%)</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N74 -->
<g id="edge75" class="edge">
<title>N63&#45;&gt;N74</title>
<g id="a_edge75"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.21s)">
<path fill="none" stroke="#000000" d="M2917.7578,-180.1384C2917.7578,-167.0355 2917.7578,-149.9585 2917.7578,-135.6014"/>
<polygon fill="#000000" stroke="#000000" points="2921.2579,-135.2635 2917.7578,-125.2635 2914.2579,-135.2635 2921.2579,-135.2635"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.21s)">
<text text-anchor="middle" x="2934.4819" y="-146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N23 -->
<g id="edge95" class="edge">
<title>N64&#45;&gt;N23</title>
<g id="a_edge95"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.07s)">
<path fill="none" stroke="#000000" d="M2567.027,-1023.7789C2580.9195,-1010.5123 2598.9351,-993.3082 2615.0234,-977.9446"/>
<polygon fill="#000000" stroke="#000000" points="2617.443,-980.4735 2622.2579,-971.036 2612.6086,-975.4111 2617.443,-980.4735"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.07s)">
<text text-anchor="middle" x="2619.4819" y="-991.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N7 -->
<g id="edge78" class="edge">
<title>N65&#45;&gt;N7</title>
<g id="a_edge78"><a xlink:title="runtime.rawstring &#45;&gt; runtime.mallocgc (0.21s)">
<path fill="none" stroke="#000000" d="M1408.8628,-622.314C1527.4427,-604.2241 1840.4288,-556.4769 2003.5734,-531.5886"/>
<polygon fill="#000000" stroke="#000000" points="2004.2627,-535.024 2013.6205,-530.0559 2003.207,-528.1041 2004.2627,-535.024"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.rawstring &#45;&gt; runtime.mallocgc (0.21s)">
<text text-anchor="middle" x="1728.4819" y="-576.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.usleep (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3287.1534,-1064 3194.3622,-1064 3194.3622,-1028 3287.1534,-1028 3287.1534,-1064"/>
<text text-anchor="middle" x="3240.7578" y="-1048.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="3240.7578" y="-1035.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.19s(0.89%)</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N80 -->
<g id="edge104" class="edge">
<title>N66&#45;&gt;N80</title>
<g id="a_edge104"><a xlink:title="runtime.gcDrain ... runtime.usleep (0.02s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3118.8779,-1139.3746C3138.0767,-1129.8025 3161.4651,-1116.9959 3180.7578,-1103 3193.5788,-1093.699 3206.4842,-1081.8382 3217.0237,-1071.3472"/>
<polygon fill="#000000" stroke="#000000" points="3219.7273,-1073.5898 3224.245,-1064.0064 3214.7371,-1068.6808 3219.7273,-1073.5898"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="runtime.gcDrain ... runtime.usleep (0.02s)">
<text text-anchor="middle" x="3212.4819" y="-1091.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N60 -->
<g id="edge100" class="edge">
<title>N67&#45;&gt;N60</title>
<g id="a_edge100"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.04s)">
<path fill="none" stroke="#000000" d="M1253.7661,-916.3012C1248.6592,-908.4927 1243.3468,-899.6014 1239.3096,-891 1235.3625,-882.5907 1231.9522,-873.1238 1229.1707,-864.2952"/>
<polygon fill="#000000" stroke="#000000" points="1232.5173,-863.2697 1226.3026,-854.689 1225.8099,-865.2724 1232.5173,-863.2697"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.04s)">
<text text-anchor="middle" x="1256.4819" y="-879.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="strings.Index (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1093.4127,-751.5 1000.1029,-751.5 1000.1029,-707.5 1093.4127,-707.5 1093.4127,-751.5"/>
<text text-anchor="middle" x="1046.7578" y="-737.9" font-family="Times,serif" font-size="12.00" fill="#000000">strings.Index</text>
<text text-anchor="middle" x="1046.7578" y="-725.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.11s(0.52%)</text>
<text text-anchor="middle" x="1046.7578" y="-713.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.21s(0.98%)</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N76 -->
<g id="edge80" class="edge">
<title>N68&#45;&gt;N76</title>
<g id="a_edge80"><a xlink:title="strings.Contains &#45;&gt; strings.Index (0.21s)">
<path fill="none" stroke="#000000" d="M1312.8347,-811.9837C1307.5704,-809.6344 1302.115,-807.5355 1296.7578,-806 1252.4889,-793.3115 1130.5253,-810.4372 1090.3096,-788 1078.9068,-781.6382 1069.6236,-770.9088 1062.6025,-760.3631"/>
<polygon fill="#000000" stroke="#000000" points="1065.4615,-758.3306 1057.2401,-751.6477 1059.4996,-761.9988 1065.4615,-758.3306"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="strings.Contains &#45;&gt; strings.Index (0.21s)">
<text text-anchor="middle" x="1107.4819" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N13 -->
<g id="edge89" class="edge">
<title>N69&#45;&gt;N13</title>
<g id="a_edge89"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.14s)">
<path fill="none" stroke="#000000" d="M2868.6004,-1147.1871C2960.186,-1126.6828 3166.7578,-1076.9994 3166.7578,-1046 3166.7578,-1046 3166.7578,-1046 3166.7578,-402.5 3166.7578,-341.8446 2741.3869,-314.7077 2560.5599,-305.912"/>
<polygon fill="#000000" stroke="#000000" points="2560.4666,-302.4036 2550.3103,-305.4204 2560.1311,-309.3956 2560.4666,-302.4036"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.14s)">
<text text-anchor="middle" x="3183.4819" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.semasleep1 (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2522.516,-125 2442.9996,-125 2442.9996,-89 2522.516,-89 2522.516,-125"/>
<text text-anchor="middle" x="2482.7578" y="-108.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="2482.7578" y="-100.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.22s(1.03%)</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N71 -->
<g id="edge71" class="edge">
<title>N70&#45;&gt;N71</title>
<g id="a_edge71"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.22s)">
<path fill="none" stroke="#000000" d="M2482.7578,-182.8759C2482.7578,-169.3516 2482.7578,-150.6192 2482.7578,-135.1514"/>
<polygon fill="#000000" stroke="#000000" points="2486.2579,-135.0685 2482.7578,-125.0685 2479.2579,-135.0685 2486.2579,-135.0685"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.22s)">
<text text-anchor="middle" x="2499.4819" y="-146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N53 -->
<g id="edge82" class="edge">
<title>N72&#45;&gt;N53</title>
<g id="a_edge82"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.20s)">
<path fill="none" stroke="#000000" d="M2583.8089,-97.0348C2567.1051,-94.0616 2548.6903,-90.8399 2531.7578,-88 2400.5521,-65.9946 2246.8416,-42.1797 2161.1436,-29.0776"/>
<polygon fill="#000000" stroke="#000000" points="2161.4497,-25.5839 2151.0358,-27.5337 2160.3927,-32.5036 2161.4497,-25.5839"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.20s)">
<text text-anchor="middle" x="2429.4819" y="-58.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.goschedImpl (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2212.9651,-420.5 2128.5505,-420.5 2128.5505,-384.5 2212.9651,-384.5 2212.9651,-420.5"/>
<text text-anchor="middle" x="2170.7578" y="-404.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="2170.7578" y="-396.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.20s(0.94%)</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N55 -->
<g id="edge85" class="edge">
<title>N78&#45;&gt;N55</title>
<g id="a_edge85"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.19s)">
<path fill="none" stroke="#000000" d="M2174.4261,-384.1585C2177.4145,-369.2164 2181.6845,-347.8665 2185.1089,-330.7446"/>
<polygon fill="#000000" stroke="#000000" points="2188.5836,-331.2175 2187.1128,-320.7253 2181.7195,-329.8446 2188.5836,-331.2175"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.19s)">
<text text-anchor="middle" x="2198.4819" y="-349.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration1.svg.





















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1652)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1652 2898.5332,-1652 2898.5332,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="8,-1424 8,-1640 670,-1640 670,-1424 8,-1424"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="661.8438,-1632 16.1562,-1632 16.1562,-1432 661.8438,-1432 661.8438,-1632"/>
<text text-anchor="start" x="24.0781" y="-1602.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="24.0781" y="-1570.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="24.0781" y="-1538.4" font-family="Times,serif" font-size="32.00" fill="#000000">11.02s of 11.68s total (94.35%)</text>
<text text-anchor="start" x="24.0781" y="-1506.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 68 nodes (cum &lt;= 0.06s)</text>
<text text-anchor="start" x="24.0781" y="-1474.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 9 edges (freq &lt;= 0.01s)</text>
<text text-anchor="start" x="24.0781" y="-1442.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 102 (cum &gt;= 0.06s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (11.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="761.978,-1550 680.022,-1550 680.022,-1514 761.978,-1514 761.978,-1550"/>
<text text-anchor="middle" x="721" y="-1533.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="721" y="-1525.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 11.30s(96.75%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (10.95s)">
<polygon fill="#f8f8f8" stroke="#000000" points="971.3313,-1382 732.6687,-1382 732.6687,-1308 971.3313,-1308 971.3313,-1382"/>
<text text-anchor="middle" x="852" y="-1360.4" font-family="Times,serif" font-size="22.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="852" y="-1338.4" font-family="Times,serif" font-size="22.00" fill="#000000">1.09s(9.33%)</text>
<text text-anchor="middle" x="852" y="-1316.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 10.95s(93.75%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge2" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge2"><a xlink:title="runtime.goexit ... main.(*machine).execute (10.95s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M727.1272,-1513.7267C735.1398,-1491.3413 750.5936,-1452.843 771,-1424 779.5728,-1411.8829 790.1417,-1400.0363 800.7816,-1389.356"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="804.0483,-1392.2805 808.1353,-1382.1593 797.9282,-1386.0269 804.0483,-1392.2805"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (10.95s)">
<text text-anchor="middle" x="811.2241" y="-1402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 10.95s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.gcBgMarkWorker (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="714.3907,-1363 613.6093,-1363 613.6093,-1327 714.3907,-1327 714.3907,-1363"/>
<text text-anchor="middle" x="664" y="-1346.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="664" y="-1338.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.34s(2.91%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N25 -->
<g id="edge26" class="edge">
<title>N1&#45;&gt;N25</title>
<g id="a_edge26"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.34s)">
<path fill="none" stroke="#000000" d="M715.4308,-1513.7292C705.4019,-1480.8274 684.2521,-1411.4412 672.4371,-1372.6796"/>
<polygon fill="#000000" stroke="#000000" points="675.7716,-1371.6147 669.5079,-1363.0697 669.0757,-1373.6557 675.7716,-1371.6147"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.34s)">
<text text-anchor="middle" x="701.7241" y="-1402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="main.tryParseFloat (2.47s)">
<polygon fill="#f8f8f8" stroke="#000000" points="787.4844,-1255 680.5156,-1255 680.5156,-1211 787.4844,-1211 787.4844,-1255"/>
<text text-anchor="middle" x="734" y="-1241.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="734" y="-1229.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.77%)</text>
<text text-anchor="middle" x="734" y="-1217.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 2.47s(21.15%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge4" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge4"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (2.47s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M812.7077,-1307.7056C797.0646,-1292.8579 779.3332,-1276.0281 764.6656,-1262.1064"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="766.9646,-1259.4629 757.302,-1255.1171 762.1456,-1264.54 766.9646,-1259.4629"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (2.47s)">
<text text-anchor="middle" x="809.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.47s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.tryParseInt (2.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="898.1836,-1253.5 805.8164,-1253.5 805.8164,-1212.5 898.1836,-1212.5 898.1836,-1253.5"/>
<text text-anchor="middle" x="852" y="-1240.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="852" y="-1229.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.34%)</text>
<text text-anchor="middle" x="852" y="-1218.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 2.29s(19.61%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N10 -->
<g id="edge7" class="edge">
<title>N2&#45;&gt;N10</title>
<g id="a_edge7"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (2.29s)">
<path fill="none" stroke="#000000" d="M852,-1307.7056C852,-1293.546 852,-1277.5836 852,-1264.06"/>
<polygon fill="#000000" stroke="#000000" points="855.5001,-1263.8181 852,-1253.8182 848.5001,-1263.8182 855.5001,-1263.8181"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (2.29s)">
<text text-anchor="middle" x="868.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.29s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="runtime.mapaccess2_faststr (1.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2164.5921,-1158 1927.4079,-1158 1927.4079,-1090 2164.5921,-1090 2164.5921,-1158"/>
<text text-anchor="middle" x="2046" y="-1138" font-family="Times,serif" font-size="20.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="2046" y="-1118" font-family="Times,serif" font-size="20.00" fill="#000000">0.79s(6.76%)</text>
<text text-anchor="middle" x="2046" y="-1098" font-family="Times,serif" font-size="20.00" fill="#000000">of 1.11s(9.50%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge17" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge17"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.78s)">
<path fill="none" stroke="#000000" d="M971.1986,-1341.0478C1272.1094,-1330.4733 2041.1766,-1299.4935 2077,-1258 2098.5432,-1233.047 2087.8344,-1196.0359 2073.3945,-1167.2297"/>
<polygon fill="#000000" stroke="#000000" points="2076.3822,-1165.3926 2068.6113,-1158.191 2070.1951,-1168.6668 2076.3822,-1165.3926"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.78s)">
<text text-anchor="middle" x="2105.7241" y="-1228.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.78s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="main.(*CodeQuotation).cloneCode (0.93s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1111.7784,-1256.5 916.2216,-1256.5 916.2216,-1209.5 1111.7784,-1209.5 1111.7784,-1256.5"/>
<text text-anchor="middle" x="1014" y="-1242.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="1014" y="-1229.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.13s(1.11%)</text>
<text text-anchor="middle" x="1014" y="-1216.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.93s(7.96%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N16 -->
<g id="edge14" class="edge">
<title>N2&#45;&gt;N16</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.93s)">
<path fill="none" stroke="#000000" d="M905.9437,-1307.7056C927.2055,-1293.0061 951.2774,-1276.3638 971.2957,-1262.5239"/>
<polygon fill="#000000" stroke="#000000" points="973.3716,-1265.3438 979.6068,-1256.778 969.3908,-1259.5859 973.3716,-1265.3438"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.93s)">
<text text-anchor="middle" x="963.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.93s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.convT2I (0.53s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1495.2288,-929.5 1404.7712,-929.5 1404.7712,-888.5 1495.2288,-888.5 1495.2288,-929.5"/>
<text text-anchor="middle" x="1450" y="-916.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1450" y="-905.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.43%)</text>
<text text-anchor="middle" x="1450" y="-894.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.53s(4.54%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N18 -->
<g id="edge21" class="edge">
<title>N2&#45;&gt;N18</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.41s)">
<path fill="none" stroke="#000000" d="M971.5056,-1329.7049C1047.6612,-1319.5192 1148.3318,-1305.2434 1237,-1290 1318.8673,-1275.9258 1415,-1316.0683 1415,-1233 1415,-1233 1415,-1233 1415,-1013.5 1415,-987.2379 1425.0621,-959.0957 1434.3961,-938.6396"/>
<polygon fill="#000000" stroke="#000000" points="1437.5914,-940.0701 1438.7331,-929.5369 1431.2721,-937.0591 1437.5914,-940.0701"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.41s)">
<text text-anchor="middle" x="1431.7241" y="-1119.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="main.(*machine).executeMathWord (0.51s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2595.0553,-1253.5 2420.9447,-1253.5 2420.9447,-1212.5 2595.0553,-1212.5 2595.0553,-1253.5"/>
<text text-anchor="middle" x="2508" y="-1240.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="2508" y="-1229.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.26%)</text>
<text text-anchor="middle" x="2508" y="-1218.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.51s(4.37%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N19 -->
<g id="edge18" class="edge">
<title>N2&#45;&gt;N19</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.51s)">
<path fill="none" stroke="#000000" d="M971.4161,-1342.7602C1263.198,-1336.8924 2006.4687,-1319.4568 2253,-1290 2311.1688,-1283.0497 2375.5416,-1268.6065 2425.0567,-1255.9988"/>
<polygon fill="#000000" stroke="#000000" points="2425.9423,-1259.385 2434.7554,-1253.5045 2424.1988,-1252.6057 2425.9423,-1259.385"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.51s)">
<text text-anchor="middle" x="2346.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.51s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.deferreturn (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1386.7248,-1258 1261.2752,-1258 1261.2752,-1208 1386.7248,-1208 1386.7248,-1258"/>
<text text-anchor="middle" x="1324" y="-1242.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="1324" y="-1228.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.21s(1.80%)</text>
<text text-anchor="middle" x="1324" y="-1214.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.42s(3.60%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N21 -->
<g id="edge20" class="edge">
<title>N2&#45;&gt;N21</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.42s)">
<path fill="none" stroke="#000000" d="M971.4699,-1326.9899C1027.2934,-1317.6199 1094.4348,-1304.9806 1154,-1290 1195.9545,-1279.4485 1207.7114,-1273.578 1251.7325,-1258.4384"/>
<polygon fill="#000000" stroke="#000000" points="1252.9751,-1261.7126 1261.3106,-1255.1728 1250.7161,-1255.0871 1252.9751,-1261.7126"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.42s)">
<text text-anchor="middle" x="1216.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2824.8048,-1253.5 2631.1952,-1253.5 2631.1952,-1212.5 2824.8048,-1212.5 2824.8048,-1253.5"/>
<text text-anchor="middle" x="2728" y="-1240.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="2728" y="-1229.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.43%)</text>
<text text-anchor="middle" x="2728" y="-1218.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.39s(3.34%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N22 -->
<g id="edge22" class="edge">
<title>N2&#45;&gt;N22</title>
<g id="a_edge22"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.39s)">
<path fill="none" stroke="#000000" d="M971.3304,-1342.1805C1279.5033,-1334.6563 2096.7306,-1313.0961 2367,-1290 2472.9032,-1280.95 2499.1821,-1275.6236 2604,-1258 2609.4819,-1257.0783 2615.0921,-1256.0944 2620.7515,-1255.0697"/>
<polygon fill="#000000" stroke="#000000" points="2621.7746,-1258.4402 2630.9747,-1253.1858 2620.5059,-1251.5561 2621.7746,-1258.4402"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.39s)">
<text text-anchor="middle" x="2509.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="main.(*machine).hasPrefixWord (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2068.1941,-1253.5 1909.8059,-1253.5 1909.8059,-1212.5 2068.1941,-1212.5 2068.1941,-1253.5"/>
<text text-anchor="middle" x="1989" y="-1240.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="1989" y="-1229.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.26%)</text>
<text text-anchor="middle" x="1989" y="-1218.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.37s(3.17%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N23 -->
<g id="edge24" class="edge">
<title>N2&#45;&gt;N23</title>
<g id="a_edge24"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.37s)">
<path fill="none" stroke="#000000" d="M971.3461,-1342.7383C1142.283,-1338.3365 1466.4069,-1325.665 1740,-1290 1811.911,-1280.6259 1829.4843,-1274.9293 1900,-1258 1902.6164,-1257.3719 1905.2719,-1256.7188 1907.95,-1256.0467"/>
<polygon fill="#000000" stroke="#000000" points="1908.9007,-1259.4162 1917.7172,-1253.5408 1907.1611,-1252.6358 1908.9007,-1259.4162"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.37s)">
<text text-anchor="middle" x="1839.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.deferproc (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="571.2914,-1255 468.7086,-1255 468.7086,-1211 571.2914,-1211 571.2914,-1255"/>
<text text-anchor="middle" x="520" y="-1241.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="520" y="-1229.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.77%)</text>
<text text-anchor="middle" x="520" y="-1217.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.30s(2.57%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N27 -->
<g id="edge28" class="edge">
<title>N2&#45;&gt;N27</title>
<g id="a_edge28"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.30s)">
<path fill="none" stroke="#000000" d="M732.6049,-1309.7022C687.3953,-1295.6287 635.4402,-1278.6078 580.8032,-1258.2168"/>
<polygon fill="#000000" stroke="#000000" points="581.8867,-1254.885 571.2946,-1254.6439 579.4245,-1261.4377 581.8867,-1254.885"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.30s)">
<text text-anchor="middle" x="685.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.memeqbody (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2116.0564,-1032.5 1975.9436,-1032.5 1975.9436,-994.5 2116.0564,-994.5 2116.0564,-1032.5"/>
<text text-anchor="middle" x="2046" y="-1016.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2046" y="-1001.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.30s(2.57%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N28 -->
<g id="edge40" class="edge">
<title>N2&#45;&gt;N28</title>
<g id="a_edge40"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.20s)">
<path fill="none" stroke="#000000" d="M971.255,-1343.6291C1269.7309,-1339.25 2031.8675,-1321.8739 2126,-1258 2190.2578,-1214.3977 2212.3186,-1157.5419 2174,-1090 2160.4636,-1066.1401 2136.2031,-1048.9257 2112.4155,-1036.9433"/>
<polygon fill="#000000" stroke="#000000" points="2113.8765,-1033.7623 2103.3452,-1032.6041 2110.8556,-1040.077 2113.8765,-1033.7623"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.20s)">
<text text-anchor="middle" x="2206.7241" y="-1178.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.ifaceeq (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1099.0974,-934 992.9026,-934 992.9026,-884 1099.0974,-884 1099.0974,-934"/>
<text text-anchor="middle" x="1046" y="-918.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="1046" y="-904.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.19s(1.63%)</text>
<text text-anchor="middle" x="1046" y="-890.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.25s(2.14%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N33 -->
<g id="edge58" class="edge">
<title>N2&#45;&gt;N33</title>
<g id="a_edge58"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.10s)">
<path fill="none" stroke="#000000" d="M971.1719,-1320.9107C1034.2148,-1305.4909 1102.3741,-1283.5997 1121,-1258 1148.1857,-1220.6355 1108.4421,-1201.3897 1092.5518,-1158 1065.7109,-1084.7089 1053.7121,-993.3633 1048.8766,-944.2222"/>
<polygon fill="#000000" stroke="#000000" points="1052.3466,-943.7384 1047.9248,-934.1104 1045.3774,-944.3944 1052.3466,-943.7384"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.10s)">
<text text-anchor="middle" x="1108.7241" y="-1119.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2402.9688,-1255 2193.0312,-1255 2193.0312,-1211 2402.9688,-1211 2402.9688,-1255"/>
<text text-anchor="middle" x="2298" y="-1241.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2298" y="-1229.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.51%)</text>
<text text-anchor="middle" x="2298" y="-1217.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.23s(1.97%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N35 -->
<g id="edge35" class="edge">
<title>N2&#45;&gt;N35</title>
<g id="a_edge35"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.23s)">
<path fill="none" stroke="#000000" d="M971.179,-1342.8038C1275.2056,-1336.8117 2063.8056,-1318.6864 2179,-1290 2204.674,-1283.6065 2231.4044,-1271.3794 2253.0119,-1259.8841"/>
<polygon fill="#000000" stroke="#000000" points="2254.8324,-1262.8781 2261.9405,-1255.0215 2251.4845,-1256.7306 2254.8324,-1262.8781"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.23s)">
<text text-anchor="middle" x="2232.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="main.(*CodeQuotation).nextWord (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1647.1039,-1251 1442.8961,-1251 1442.8961,-1215 1647.1039,-1215 1647.1039,-1251"/>
<text text-anchor="middle" x="1545" y="-1235.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="1545" y="-1221.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.17s(1.46%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N43 -->
<g id="edge44" class="edge">
<title>N2&#45;&gt;N43</title>
<g id="a_edge44"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.17s)">
<path fill="none" stroke="#000000" d="M971.3312,-1338.6983C1114.5624,-1330.249 1345.8537,-1313.5387 1429,-1290 1456.2038,-1282.2986 1484.7297,-1268.3701 1506.6862,-1256.21"/>
<polygon fill="#000000" stroke="#000000" points="1508.6885,-1259.0986 1515.6709,-1251.13 1505.2433,-1253.0051 1508.6885,-1259.0986"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.17s)">
<text text-anchor="middle" x="1481.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.eqstring (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1760.4844,-1251 1665.5156,-1251 1665.5156,-1215 1760.4844,-1215 1760.4844,-1251"/>
<text text-anchor="middle" x="1713" y="-1235.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="1713" y="-1223.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.86%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N58 -->
<g id="edge75" class="edge">
<title>N2&#45;&gt;N58</title>
<g id="a_edge75"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.07s)">
<path fill="none" stroke="#000000" d="M971.3995,-1339.2187C1102.1561,-1331.8828 1317.7885,-1316.8328 1502,-1290 1571.1764,-1279.9236 1589.4066,-1279.2659 1656,-1258 1659.0881,-1257.0138 1662.2352,-1255.9155 1665.3851,-1254.7448"/>
<polygon fill="#000000" stroke="#000000" points="1666.7564,-1257.9666 1674.7868,-1251.0555 1664.1993,-1251.4503 1666.7564,-1257.9666"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.07s)">
<text text-anchor="middle" x="1606.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="main.wordIsWhitespace (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1891.4092,-1252 1778.5908,-1252 1778.5908,-1214 1891.4092,-1214 1891.4092,-1252"/>
<text text-anchor="middle" x="1835" y="-1240" font-family="Times,serif" font-size="10.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="1835" y="-1230" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.086%)</text>
<text text-anchor="middle" x="1835" y="-1220" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(0.77%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N63 -->
<g id="edge64" class="edge">
<title>N2&#45;&gt;N63</title>
<g id="a_edge64"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.09s)">
<path fill="none" stroke="#000000" d="M971.4319,-1342.107C1124.1605,-1337.1304 1396.4702,-1323.9573 1627,-1290 1691.0031,-1280.5723 1707.0423,-1276.6151 1769,-1258 1771.7503,-1257.1737 1774.5502,-1256.2891 1777.3676,-1255.3639"/>
<polygon fill="#000000" stroke="#000000" points="1778.6341,-1258.6299 1786.9673,-1252.0871 1776.3727,-1252.0052 1778.6341,-1258.6299"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.09s)">
<text text-anchor="middle" x="1719.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.growslice (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="662.9844,-1251 589.0156,-1251 589.0156,-1215 662.9844,-1215 662.9844,-1251"/>
<text text-anchor="middle" x="626" y="-1234.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="626" y="-1226.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(0.51%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N79 -->
<g id="edge87" class="edge">
<title>N2&#45;&gt;N79</title>
<g id="a_edge87"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.06s)">
<path fill="none" stroke="#000000" d="M773.1867,-1307.9065C741.5658,-1292.7645 704.889,-1274.8733 672,-1258 670.6858,-1257.3258 669.3532,-1256.6364 668.0096,-1255.9366"/>
<polygon fill="#000000" stroke="#000000" points="669.5432,-1252.7884 659.066,-1251.2145 666.2749,-1258.9786 669.5432,-1252.7884"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.06s)">
<text text-anchor="middle" x="752.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (10.95s)">
<polygon fill="#f8f8f8" stroke="#000000" points="923.9883,-1550 780.0117,-1550 780.0117,-1514 923.9883,-1514 923.9883,-1550"/>
<text text-anchor="middle" x="852" y="-1533.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="852" y="-1525.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 10.95s(93.75%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge1" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge1"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (10.95s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M852,-1513.7292C852,-1485.8892 852,-1431.9273 852,-1392.4997"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="856.3751,-1392.3069 852,-1382.307 847.6251,-1392.307 856.3751,-1392.3069"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (10.95s)">
<text text-anchor="middle" x="872.2241" y="-1402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 10.95s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="runtime.newobject (3.98s)">
<polygon fill="#f8f8f8" stroke="#000000" points="929.0769,-831 808.9231,-831 808.9231,-781 929.0769,-781 929.0769,-831"/>
<text text-anchor="middle" x="869" y="-815.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="869" y="-801.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.17s(1.46%)</text>
<text text-anchor="middle" x="869" y="-787.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 3.98s(34.08%)</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.mallocgc (3.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="961.1098,-731 776.8902,-731 776.8902,-651 961.1098,-651 961.1098,-731"/>
<text text-anchor="middle" x="869" y="-707.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="869" y="-683.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.61s(13.78%)</text>
<text text-anchor="middle" x="869" y="-659.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 3.91s(33.48%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N5 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;N5</title>
<g id="a_edge3"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.81s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M869,-780.7628C869,-769.1715 869,-754.9941 869,-741.3606"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="872.5001,-741.0927 869,-731.0928 865.5001,-741.0928 872.5001,-741.0927"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.81s)">
<text text-anchor="middle" x="885.7241" y="-751.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.81s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.heapBitsSetType (0.79s)">
<polygon fill="#f8f8f8" stroke="#000000" points="969.4516,-601 750.5484,-601 750.5484,-553 969.4516,-553 969.4516,-601"/>
<text text-anchor="middle" x="860" y="-581" font-family="Times,serif" font-size="20.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="860" y="-561" font-family="Times,serif" font-size="20.00" fill="#000000">0.79s(6.76%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N17 -->
<g id="edge15" class="edge">
<title>N5&#45;&gt;N17</title>
<g id="a_edge15"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.79s)">
<path fill="none" stroke="#000000" d="M865.8269,-650.8079C864.8069,-637.8869 863.6869,-623.7004 862.7037,-611.2474"/>
<polygon fill="#000000" stroke="#000000" points="866.1916,-610.9539 861.9153,-601.2604 859.2133,-611.5049 866.1916,-610.9539"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.79s)">
<text text-anchor="middle" x="880.7241" y="-621.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.79s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.(*mcache).nextFree (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1116.7816,-596 987.2184,-596 987.2184,-558 1116.7816,-558 1116.7816,-596"/>
<text text-anchor="middle" x="1052" y="-584" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="1052" y="-574" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.086%)</text>
<text text-anchor="middle" x="1052" y="-564" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.43s(3.68%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N20 -->
<g id="edge19" class="edge">
<title>N5&#45;&gt;N20</title>
<g id="a_edge19"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.43s)">
<path fill="none" stroke="#000000" d="M933.2616,-650.9682C959.7447,-634.4705 989.5774,-615.8862 1012.7148,-601.4727"/>
<polygon fill="#000000" stroke="#000000" points="1014.5965,-604.4242 1021.2337,-596.1659 1010.8953,-598.4827 1014.5965,-604.4242"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.43s)">
<text text-anchor="middle" x="998.7241" y="-621.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.memclr (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="342.8039,-36 237.1961,-36 237.1961,0 342.8039,0 342.8039,-36"/>
<text text-anchor="middle" x="290" y="-20.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="290" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.19s(1.63%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N41 -->
<g id="edge94" class="edge">
<title>N5&#45;&gt;N41</title>
<g id="a_edge94"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.05s)">
<path fill="none" stroke="#000000" d="M776.771,-681.9025C565.5862,-659.8298 65,-599.9236 65,-528 65,-528 65,-528 65,-105 65,-70.0937 160.3974,-43.7585 226.9573,-29.6322"/>
<polygon fill="#000000" stroke="#000000" points="227.884,-33.0145 236.9631,-27.5537 226.4602,-26.1608 227.884,-33.0145"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.05s)">
<text text-anchor="middle" x="81.7241" y="-323.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="strconv.ParseFloat (2.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="786.2072,-1146 681.7928,-1146 681.7928,-1102 786.2072,-1102 786.2072,-1146"/>
<text text-anchor="middle" x="734" y="-1132.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.ParseFloat</text>
<text text-anchor="middle" x="734" y="-1120.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.6%)</text>
<text text-anchor="middle" x="734" y="-1108.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 2.38s(20.38%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N7 -->
<g id="edge5" class="edge">
<title>N6&#45;&gt;N7</title>
<g id="a_edge5"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (2.38s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M734,-1210.9422C734,-1195.2815 734,-1174.0017 734,-1156.4148"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="737.5001,-1156.0249 734,-1146.025 730.5001,-1156.025 737.5001,-1156.0249"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (2.38s)">
<text text-anchor="middle" x="750.7241" y="-1178.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.38s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="strconv.atof64 (2.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="790.5974,-1038.5 677.4026,-1038.5 677.4026,-988.5 790.5974,-988.5 790.5974,-1038.5"/>
<text text-anchor="middle" x="734" y="-1023.3" font-family="Times,serif" font-size="14.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="734" y="-1009.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.22s(1.88%)</text>
<text text-anchor="middle" x="734" y="-995.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 2.31s(19.78%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N9 -->
<g id="edge6" class="edge">
<title>N7&#45;&gt;N9</title>
<g id="a_edge6"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (2.31s)">
<path fill="none" stroke="#000000" d="M734,-1101.9043C734,-1086.7788 734,-1066.3926 734,-1049.0086"/>
<polygon fill="#000000" stroke="#000000" points="737.5001,-1048.6465 734,-1038.6465 730.5001,-1048.6465 737.5001,-1048.6465"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (2.31s)">
<text text-anchor="middle" x="750.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.31s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.systemstack (2.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1117.2005,-503 986.7995,-503 986.7995,-453 1117.2005,-453 1117.2005,-503"/>
<text text-anchor="middle" x="1052" y="-487.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="1052" y="-473.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.22s(1.88%)</text>
<text text-anchor="middle" x="1052" y="-459.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 2.35s(20.12%)</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="runtime.mach_semaphore_signal (1.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1349.168,-403 1054.832,-403 1054.832,-353 1349.168,-353 1349.168,-403"/>
<text text-anchor="middle" x="1202" y="-382.2" font-family="Times,serif" font-size="21.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="1202" y="-361.2" font-family="Times,serif" font-size="21.00" fill="#000000">1.06s(9.08%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N15 -->
<g id="edge13" class="edge">
<title>N8&#45;&gt;N15</title>
<g id="a_edge13"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (1.01s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1089.8513,-452.7658C1109.9129,-439.3914 1134.7188,-422.8541 1155.8961,-408.7359"/>
<polygon fill="#000000" stroke="#000000" points="1158.0418,-411.512 1164.4209,-403.0528 1154.1589,-405.6876 1158.0418,-411.512"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (1.01s)">
<text text-anchor="middle" x="1151.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.01s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="491.0505,-397 336.9495,-397 336.9495,-359 491.0505,-359 491.0505,-397"/>
<text text-anchor="middle" x="414" y="-385" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="414" y="-375" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.086%)</text>
<text text-anchor="middle" x="414" y="-365" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.30s(2.57%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N26 -->
<g id="edge29" class="edge">
<title>N8&#45;&gt;N26</title>
<g id="a_edge29"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.30s)">
<path fill="none" stroke="#000000" d="M986.5887,-472.2195C884.4385,-462.4528 681.2013,-440.0458 512,-403 506.9306,-401.8901 501.7256,-400.7032 496.4838,-399.472"/>
<polygon fill="#000000" stroke="#000000" points="496.9238,-395.9787 486.3841,-397.0582 495.2966,-402.7869 496.9238,-395.9787"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.30s)">
<text text-anchor="middle" x="690.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.semasleep1 (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="886.7582,-396 807.2418,-396 807.2418,-360 886.7582,-360 886.7582,-396"/>
<text text-anchor="middle" x="847" y="-379.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="847" y="-371.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.25s(2.14%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N34 -->
<g id="edge33" class="edge">
<title>N8&#45;&gt;N34</title>
<g id="a_edge33"><a xlink:title="runtime.systemstack ... runtime.semasleep1 (0.25s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M999.1368,-452.9662C968.8582,-438.5323 930.198,-419.9417 896,-403 894.4703,-402.2422 892.9154,-401.4683 891.3461,-400.6843"/>
<polygon fill="#000000" stroke="#000000" points="892.7853,-397.4905 882.2788,-396.1249 889.6405,-403.7443 892.7853,-397.4905"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.systemstack ... runtime.semasleep1 (0.25s)">
<text text-anchor="middle" x="976.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.deferproc.func1 (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1037.1138,-400 904.8862,-400 904.8862,-356 1037.1138,-356 1037.1138,-400"/>
<text text-anchor="middle" x="971" y="-386.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="971" y="-374.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.68%)</text>
<text text-anchor="middle" x="971" y="-362.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.20s(1.71%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N39 -->
<g id="edge42" class="edge">
<title>N8&#45;&gt;N39</title>
<g id="a_edge42"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.20s)">
<path fill="none" stroke="#000000" d="M1031.5603,-452.7658C1020.5906,-439.223 1006.9942,-422.4372 995.4651,-408.2039"/>
<polygon fill="#000000" stroke="#000000" points="997.9654,-405.7299 988.9514,-400.1622 992.5259,-410.1359 997.9654,-405.7299"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.20s)">
<text text-anchor="middle" x="1032.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.deferreturn.func1 (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="785.6153,-398.5 656.3847,-398.5 656.3847,-357.5 785.6153,-357.5 785.6153,-398.5"/>
<text text-anchor="middle" x="721" y="-385.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="721" y="-374.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.26%)</text>
<text text-anchor="middle" x="721" y="-363.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.15s(1.28%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N48 -->
<g id="edge48" class="edge">
<title>N8&#45;&gt;N48</title>
<g id="a_edge48"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.15s)">
<path fill="none" stroke="#000000" d="M986.7724,-460.644C958.8987,-453.0497 926.0499,-443.8641 896.5518,-435 861.9266,-424.5953 823.722,-412.2899 791.819,-401.7804"/>
<polygon fill="#000000" stroke="#000000" points="792.7245,-398.3935 782.1313,-398.5805 790.529,-405.0403 792.7245,-398.3935"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.15s)">
<text text-anchor="middle" x="912.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.(*mheap).alloc.func1 (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="632.7973,-396 521.2027,-396 521.2027,-360 632.7973,-360 632.7973,-396"/>
<text text-anchor="middle" x="577" y="-379.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="577" y="-371.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.77%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N64 -->
<g id="edge70" class="edge">
<title>N8&#45;&gt;N64</title>
<g id="a_edge70"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.09s)">
<path fill="none" stroke="#000000" d="M986.729,-469.2903C906.0631,-457.7561 764.9999,-435.0639 647,-403 642.7524,-401.8458 638.3939,-400.5553 634.0296,-399.1854"/>
<polygon fill="#000000" stroke="#000000" points="635.0992,-395.8529 624.5068,-396.0816 632.9299,-402.5083 635.0992,-395.8529"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.09s)">
<text text-anchor="middle" x="796.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N4 -->
<g id="edge11" class="edge">
<title>N9&#45;&gt;N4</title>
<g id="a_edge11"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (1.44s)">
<path fill="none" stroke="#000000" d="M736.9804,-988.3922C741.3133,-955.0528 750.1006,-898.3563 761.5518,-881 773.3409,-863.1314 790.9812,-848.2654 808.5782,-836.6089"/>
<polygon fill="#000000" stroke="#000000" points="810.6196,-839.4588 817.1875,-831.1453 806.8688,-833.5485 810.6196,-839.4588"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (1.44s)">
<text text-anchor="middle" x="778.7241" y="-904.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.44s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.duffzero (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="716.6723,-929 593.3277,-929 593.3277,-889 716.6723,-889 716.6723,-929"/>
<text text-anchor="middle" x="655" y="-912.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="655" y="-896.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.34s(2.91%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N24 -->
<g id="edge27" class="edge">
<title>N9&#45;&gt;N24</title>
<g id="a_edge27"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.34s)">
<path fill="none" stroke="#000000" d="M715.0775,-988.4696C703.523,-973.1855 688.7094,-953.5902 676.6832,-937.6822"/>
<polygon fill="#000000" stroke="#000000" points="679.1496,-935.1409 670.3271,-929.2745 673.5657,-939.3622 679.1496,-935.1409"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.34s)">
<text text-anchor="middle" x="716.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="strconv.special (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="318.7151,-931 225.2849,-931 225.2849,-887 318.7151,-887 318.7151,-931"/>
<text text-anchor="middle" x="272" y="-917.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.special</text>
<text text-anchor="middle" x="272" y="-905.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.86%)</text>
<text text-anchor="middle" x="272" y="-893.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.11s(0.94%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N57 -->
<g id="edge57" class="edge">
<title>N9&#45;&gt;N57</title>
<g id="a_edge57"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.11s)">
<path fill="none" stroke="#000000" d="M677.1996,-1008.0031C597.4715,-999.1285 448.6192,-978.2997 328,-937 326.1489,-936.3662 324.2813,-935.6831 322.4086,-934.9608"/>
<polygon fill="#000000" stroke="#000000" points="323.6333,-931.6795 313.0561,-931.0688 320.9439,-938.1422 323.6333,-931.6795"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.11s)">
<text text-anchor="middle" x="453.4678" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="strconv.(*decimal).set (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="458.8497,-927 337.1503,-927 337.1503,-891 458.8497,-891 458.8497,-927"/>
<text text-anchor="middle" x="398" y="-911.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.(*decimal).set</text>
<text text-anchor="middle" x="398" y="-899.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.86%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N60 -->
<g id="edge62" class="edge">
<title>N9&#45;&gt;N60</title>
<g id="a_edge62"><a xlink:title="strconv.atof64 &#45;&gt; strconv.(*decimal).set (0.10s)">
<path fill="none" stroke="#000000" d="M677.1849,-998.9349C622.9755,-984.6216 539.2513,-961.427 468,-937 462.3683,-935.0693 456.5281,-932.9408 450.7312,-930.7457"/>
<polygon fill="#000000" stroke="#000000" points="451.6504,-927.3488 441.0609,-927.0118 449.1289,-933.8789 451.6504,-927.3488"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.(*decimal).set (0.10s)">
<text text-anchor="middle" x="579.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="strconv.readFloat (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="575.3634,-927 476.6366,-927 476.6366,-891 575.3634,-891 575.3634,-927"/>
<text text-anchor="middle" x="526" y="-911.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.readFloat</text>
<text text-anchor="middle" x="526" y="-899.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.86%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N61 -->
<g id="edge63" class="edge">
<title>N9&#45;&gt;N61</title>
<g id="a_edge63"><a xlink:title="strconv.atof64 &#45;&gt; strconv.readFloat (0.10s)">
<path fill="none" stroke="#000000" d="M684.1788,-988.4696C649.7936,-971.1944 604.4456,-948.4114 571.1234,-931.6702"/>
<polygon fill="#000000" stroke="#000000" points="572.5698,-928.48 562.0629,-927.1181 569.4273,-934.735 572.5698,-928.48"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.readFloat (0.10s)">
<text text-anchor="middle" x="659.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="strconv.Atoi (2.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="903.6549,-1146 804.3451,-1146 804.3451,-1102 903.6549,-1102 903.6549,-1146"/>
<text text-anchor="middle" x="854" y="-1132.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="854" y="-1120.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.6%)</text>
<text text-anchor="middle" x="854" y="-1108.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 2.25s(19.26%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N11 -->
<g id="edge8" class="edge">
<title>N10&#45;&gt;N11</title>
<g id="a_edge8"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (2.25s)">
<path fill="none" stroke="#000000" d="M852.3762,-1212.4979C852.6656,-1196.7231 853.0712,-1174.6212 853.4046,-1156.4518"/>
<polygon fill="#000000" stroke="#000000" points="856.9069,-1156.3484 853.5911,-1146.2858 849.9081,-1156.2199 856.9069,-1156.3484"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (2.25s)">
<text text-anchor="middle" x="869.7241" y="-1178.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.25s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="strconv.ParseInt (2.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="929.0686,-1040 808.9314,-1040 808.9314,-987 929.0686,-987 929.0686,-1040"/>
<text text-anchor="middle" x="869" y="-1024" font-family="Times,serif" font-size="15.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="869" y="-1009" font-family="Times,serif" font-size="15.00" fill="#000000">0.30s(2.57%)</text>
<text text-anchor="middle" x="869" y="-994" font-family="Times,serif" font-size="15.00" fill="#000000">of 2.18s(18.66%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N12 -->
<g id="edge9" class="edge">
<title>N11&#45;&gt;N12</title>
<g id="a_edge9"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (2.18s)">
<path fill="none" stroke="#000000" d="M856.9994,-1101.9043C858.996,-1087.196 861.6679,-1067.5133 863.9836,-1050.454"/>
<polygon fill="#000000" stroke="#000000" points="867.4932,-1050.619 865.3703,-1040.2391 860.5569,-1049.6774 867.4932,-1050.619"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (2.18s)">
<text text-anchor="middle" x="878.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.18s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="strconv.ParseUint (1.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="933.6642,-937 804.3358,-937 804.3358,-881 933.6642,-881 933.6642,-937"/>
<text text-anchor="middle" x="869" y="-920.2" font-family="Times,serif" font-size="16.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="869" y="-904.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.33s(2.83%)</text>
<text text-anchor="middle" x="869" y="-888.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 1.73s(14.81%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N13 -->
<g id="edge10" class="edge">
<title>N12&#45;&gt;N13</title>
<g id="a_edge10"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (1.73s)">
<path fill="none" stroke="#000000" d="M869,-986.8599C869,-974.8357 869,-960.4076 869,-947.2564"/>
<polygon fill="#000000" stroke="#000000" points="872.5001,-947.0534 869,-937.0535 865.5001,-947.0535 872.5001,-947.0534"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (1.73s)">
<text text-anchor="middle" x="885.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.73s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N33 -->
<g id="edge49" class="edge">
<title>N12&#45;&gt;N33</title>
<g id="a_edge49"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.15s)">
<path fill="none" stroke="#000000" d="M914.1225,-986.8599C938.6769,-972.3631 969.1499,-954.3719 994.6157,-939.3371"/>
<polygon fill="#000000" stroke="#000000" points="996.5647,-942.2509 1003.3965,-934.1529 993.0058,-936.2231 996.5647,-942.2509"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.15s)">
<text text-anchor="middle" x="978.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N4 -->
<g id="edge12" class="edge">
<title>N13&#45;&gt;N4</title>
<g id="a_edge12"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (1.40s)">
<path fill="none" stroke="#000000" d="M869,-880.8548C869,-868.756 869,-854.4754 869,-841.6485"/>
<polygon fill="#000000" stroke="#000000" points="872.5001,-841.2955 869,-831.2956 865.5001,-841.2956 872.5001,-841.2955"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (1.40s)">
<text text-anchor="middle" x="885.7241" y="-851.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.40s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N28 -->
<g id="edge71" class="edge">
<title>N14&#45;&gt;N28</title>
<g id="a_edge71"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.08s)">
<path fill="none" stroke="#000000" d="M2046,-1089.9447C2046,-1074.9871 2046,-1057.5868 2046,-1043.1689"/>
<polygon fill="#000000" stroke="#000000" points="2049.5001,-1042.8147 2046,-1032.8148 2042.5001,-1042.8148 2049.5001,-1042.8147"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.08s)">
<text text-anchor="middle" x="2062.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.aeshashbody (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1957.0837,-1031.5 1822.9163,-1031.5 1822.9163,-995.5 1957.0837,-995.5 1957.0837,-1031.5"/>
<text text-anchor="middle" x="1890" y="-1016.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="1890" y="-1002.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.22s(1.88%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N38 -->
<g id="edge39" class="edge">
<title>N14&#45;&gt;N38</title>
<g id="a_edge39"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.21s)">
<path fill="none" stroke="#000000" d="M1997.9219,-1089.9447C1973.8958,-1072.9262 1945.4052,-1052.7454 1923.7318,-1037.3933"/>
<polygon fill="#000000" stroke="#000000" points="1925.6708,-1034.4777 1915.4875,-1031.5536 1921.6247,-1040.1899 1925.6708,-1034.4777"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.21s)">
<text text-anchor="middle" x="1984.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N4 -->
<g id="edge16" class="edge">
<title>N16&#45;&gt;N4</title>
<g id="a_edge16"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.78s)">
<path fill="none" stroke="#000000" d="M996.3099,-1209.2628C982.2744,-1188.0503 965,-1155.5367 965,-1124 965,-1124 965,-1124 965,-909 965,-879.6091 943.8238,-855.1057 921.3628,-837.382"/>
<polygon fill="#000000" stroke="#000000" points="923.1671,-834.3603 913.0664,-831.1624 918.9683,-839.9612 923.1671,-834.3603"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.78s)">
<text text-anchor="middle" x="981.7241" y="-1009.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.78s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N4 -->
<g id="edge25" class="edge">
<title>N18&#45;&gt;N4</title>
<g id="a_edge25"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.36s)">
<path fill="none" stroke="#000000" d="M1404.5369,-893.5101C1389.8242,-888.9439 1373.3443,-884.2938 1358,-881 1296.4697,-867.7918 1278.7112,-877.8309 1217.5518,-863 1199.8363,-858.7041 1196.7942,-852.9572 1179,-849 1091.448,-829.5295 1066.5823,-845.0579 978,-831 965.4419,-829.007 952.1753,-826.3976 939.3847,-823.6175"/>
<polygon fill="#000000" stroke="#000000" points="939.7735,-820.1184 929.2516,-821.3599 938.2511,-826.9508 939.7735,-820.1184"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.36s)">
<text text-anchor="middle" x="1233.7241" y="-851.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.typedmemmove (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1548.9426,-829.5 1405.0574,-829.5 1405.0574,-782.5 1548.9426,-782.5 1548.9426,-829.5"/>
<text text-anchor="middle" x="1477" y="-815.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="1477" y="-802.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.14s(1.20%)</text>
<text text-anchor="middle" x="1477" y="-789.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.26s(2.23%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N32 -->
<g id="edge53" class="edge">
<title>N18&#45;&gt;N32</title>
<g id="a_edge53"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.12s)">
<path fill="none" stroke="#000000" d="M1455.4639,-888.1564C1459.1043,-874.2689 1463.9705,-855.7053 1468.1561,-839.7377"/>
<polygon fill="#000000" stroke="#000000" points="1471.6386,-840.2556 1470.7887,-829.6949 1464.8673,-838.4806 1471.6386,-840.2556"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.12s)">
<text text-anchor="middle" x="1481.7241" y="-851.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N28 -->
<g id="edge98" class="edge">
<title>N19&#45;&gt;N28</title>
<g id="a_edge98"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.02s)">
<path fill="none" stroke="#000000" d="M2439.8293,-1212.3499C2392.6062,-1196.9406 2335.0352,-1175.6012 2316.5518,-1158 2292.5579,-1135.1514 2309.8622,-1112.986 2286,-1090 2258.717,-1063.7188 2243.1849,-1069.2121 2207,-1058 2171.3596,-1046.9566 2160.9617,-1049.9475 2125,-1040 2120.0721,-1038.6369 2114.9991,-1037.145 2109.915,-1035.586"/>
<polygon fill="#000000" stroke="#000000" points="2110.7487,-1032.1793 2100.1594,-1032.5212 2108.6507,-1038.8575 2110.7487,-1032.1793"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.02s)">
<text text-anchor="middle" x="2332.7241" y="-1119.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="main.(*machine).executeSubtract (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2679.3853,-1143 2528.6147,-1143 2528.6147,-1105 2679.3853,-1105 2679.3853,-1143"/>
<text text-anchor="middle" x="2604" y="-1131" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="2604" y="-1121" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.086%)</text>
<text text-anchor="middle" x="2604" y="-1111" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.28s(2.40%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N30 -->
<g id="edge31" class="edge">
<title>N19&#45;&gt;N30</title>
<g id="a_edge31"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.28s)">
<path fill="none" stroke="#000000" d="M2526.0569,-1212.4979C2541.3599,-1195.1226 2563.4235,-1170.0712 2580.1731,-1151.0535"/>
<polygon fill="#000000" stroke="#000000" points="2583.008,-1153.1302 2586.9909,-1143.3124 2577.7549,-1148.5036 2583.008,-1153.1302"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.28s)">
<text text-anchor="middle" x="2572.7241" y="-1178.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="main.(*machine).executeMultiply (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2511.0645,-1143 2358.9355,-1143 2358.9355,-1105 2511.0645,-1105 2511.0645,-1143"/>
<text text-anchor="middle" x="2435" y="-1131" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="2435" y="-1121" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.086%)</text>
<text text-anchor="middle" x="2435" y="-1111" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.16s(1.37%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N45 -->
<g id="edge45" class="edge">
<title>N19&#45;&gt;N45</title>
<g id="a_edge45"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.16s)">
<path fill="none" stroke="#000000" d="M2494.2693,-1212.4979C2482.7884,-1195.3553 2466.3035,-1170.7408 2453.6323,-1151.8208"/>
<polygon fill="#000000" stroke="#000000" points="2456.4067,-1149.6736 2447.934,-1143.3124 2450.5906,-1153.5688 2456.4067,-1149.6736"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.16s)">
<text text-anchor="middle" x="2494.7241" y="-1178.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N8 -->
<g id="edge23" class="edge">
<title>N20&#45;&gt;N8</title>
<g id="a_edge23"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.39s)">
<path fill="none" stroke="#000000" d="M1052,-557.9118C1052,-545.2203 1052,-528.1741 1052,-513.0855"/>
<polygon fill="#000000" stroke="#000000" points="1055.5001,-513.0298 1052,-503.0299 1048.5001,-513.0299 1055.5001,-513.0298"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.39s)">
<text text-anchor="middle" x="1068.7241" y="-523.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N8 -->
<g id="edge47" class="edge">
<title>N21&#45;&gt;N8</title>
<g id="a_edge47"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.15s)">
<path fill="none" stroke="#000000" d="M1316.3832,-1207.8846C1297.4195,-1146.7466 1246.8914,-992.4496 1209,-955 1193.6794,-939.858 1178.5629,-952.872 1164,-937 1138.7442,-909.4739 1141.5518,-893.3569 1141.5518,-856 1141.5518,-856 1141.5518,-856 1145,-577 1145,-549.2938 1125.4113,-526.1663 1104.2141,-509.2507"/>
<polygon fill="#000000" stroke="#000000" points="1106.1359,-506.3159 1096.0489,-503.0751 1101.9133,-511.8989 1106.1359,-506.3159"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.15s)">
<text text-anchor="middle" x="1157.7241" y="-851.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.memmove (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1438.1417,-302 1315.8583,-302 1315.8583,-266 1438.1417,-266 1438.1417,-302"/>
<text text-anchor="middle" x="1377" y="-286.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="1377" y="-272.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.19s(1.63%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N42 -->
<g id="edge92" class="edge">
<title>N21&#45;&gt;N42</title>
<g id="a_edge92"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.05s)">
<path fill="none" stroke="#000000" d="M1386.6582,-1212.1048C1411.5985,-1200.3558 1437.7209,-1182.9164 1452,-1158 1467.0271,-1131.7784 1459.9157,-1119.1672 1452,-1090 1434.7305,-1026.3665 1377,-1027.9352 1377,-962 1377,-962 1377,-962 1377,-378 1377,-355.8999 1377,-330.8771 1377,-312.2081"/>
<polygon fill="#000000" stroke="#000000" points="1380.5001,-312.0204 1377,-302.0204 1373.5001,-312.0205 1380.5001,-312.0204"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.05s)">
<text text-anchor="middle" x="1393.7241" y="-751.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.mapassign1 (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2894.5664,-1147.5 2773.4336,-1147.5 2773.4336,-1100.5 2894.5664,-1100.5 2894.5664,-1147.5"/>
<text text-anchor="middle" x="2834" y="-1133.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="2834" y="-1120.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(0.94%)</text>
<text text-anchor="middle" x="2834" y="-1107.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.27s(2.31%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N31 -->
<g id="edge32" class="edge">
<title>N22&#45;&gt;N31</title>
<g id="a_edge32"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.27s)">
<path fill="none" stroke="#000000" d="M2747.9378,-1212.4979C2763.5755,-1196.4177 2785.6067,-1173.7629 2803.4635,-1155.4008"/>
<polygon fill="#000000" stroke="#000000" points="2806.3674,-1157.435 2810.83,-1147.8258 2801.349,-1152.5547 2806.3674,-1157.435"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.27s)">
<text text-anchor="middle" x="2797.7241" y="-1178.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.assertI2T (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2753.4727,-931 2652.5273,-931 2652.5273,-887 2753.4727,-887 2753.4727,-931"/>
<text text-anchor="middle" x="2703" y="-917.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="2703" y="-905.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.68%)</text>
<text text-anchor="middle" x="2703" y="-893.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.15s(1.28%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N47 -->
<g id="edge88" class="edge">
<title>N22&#45;&gt;N47</title>
<g id="a_edge88"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.06s)">
<path fill="none" stroke="#000000" d="M2735.3894,-1212.465C2751.222,-1165.0021 2784.0849,-1044.8871 2747,-955 2744.6779,-949.3716 2741.3174,-944.0353 2737.473,-939.1261"/>
<polygon fill="#000000" stroke="#000000" points="2739.8532,-936.53 2730.6442,-931.2911 2734.5762,-941.1293 2739.8532,-936.53"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.06s)">
<text text-anchor="middle" x="2779.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N14 -->
<g id="edge34" class="edge">
<title>N23&#45;&gt;N14</title>
<g id="a_edge34"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.24s)">
<path fill="none" stroke="#000000" d="M1999.7213,-1212.4979C2006.4069,-1199.7131 2015.2658,-1182.7724 2023.4419,-1167.1374"/>
<polygon fill="#000000" stroke="#000000" points="2026.6229,-1168.6073 2028.1554,-1158.1239 2020.4198,-1165.3635 2026.6229,-1168.6073"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.24s)">
<text text-anchor="middle" x="2033.7241" y="-1178.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="main.isPrefixChar (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1909.4941,-1142 1806.5059,-1142 1806.5059,-1106 1909.4941,-1106 1909.4941,-1142"/>
<text text-anchor="middle" x="1858" y="-1126.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.isPrefixChar</text>
<text text-anchor="middle" x="1858" y="-1114.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.77%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N62 -->
<g id="edge65" class="edge">
<title>N23&#45;&gt;N62</title>
<g id="a_edge65"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.09s)">
<path fill="none" stroke="#000000" d="M1964.3599,-1212.4979C1942.6137,-1194.4038 1910.863,-1167.9853 1887.7155,-1148.7251"/>
<polygon fill="#000000" stroke="#000000" points="1889.8429,-1145.9421 1879.9172,-1142.2365 1885.3656,-1151.323 1889.8429,-1145.9421"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.09s)">
<text text-anchor="middle" x="1951.7241" y="-1178.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.gcMarkDone (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="235.5899,-1251 150.4101,-1251 150.4101,-1215 235.5899,-1215 235.5899,-1251"/>
<text text-anchor="middle" x="193" y="-1234.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkDone</text>
<text text-anchor="middle" x="193" y="-1226.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.23s(1.97%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N36 -->
<g id="edge38" class="edge">
<title>N25&#45;&gt;N36</title>
<g id="a_edge38"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcMarkDone (0.22s)">
<path fill="none" stroke="#000000" d="M613.5947,-1333.014C523.8143,-1311.665 337.077,-1267.2604 245.6841,-1245.5279"/>
<polygon fill="#000000" stroke="#000000" points="246.3564,-1242.0902 235.818,-1243.1818 244.737,-1248.9003 246.3564,-1242.0902"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcMarkDone (0.22s)">
<text text-anchor="middle" x="445.7241" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.(*mcentral).cacheSpan (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="481.9989,-303 340.0011,-303 340.0011,-265 481.9989,-265 481.9989,-303"/>
<text text-anchor="middle" x="411" y="-291" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="411" y="-281" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.17%)</text>
<text text-anchor="middle" x="411" y="-271" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.29s(2.48%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N29 -->
<g id="edge30" class="edge">
<title>N26&#45;&gt;N29</title>
<g id="a_edge30"><a xlink:title="runtime.(*mcache).nextFree.func1 ... runtime.(*mcentral).cacheSpan (0.29s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M413.3929,-358.9777C412.9768,-345.9407 412.4166,-328.3883 411.9429,-313.5438"/>
<polygon fill="#000000" stroke="#000000" points="415.4338,-313.1999 411.6165,-303.3166 408.4374,-313.4232 415.4338,-313.1999"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 ... runtime.(*mcentral).cacheSpan (0.29s)">
<text text-anchor="middle" x="429.7241" y="-323.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N8 -->
<g id="edge41" class="edge">
<title>N27&#45;&gt;N8</title>
<g id="a_edge41"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.20s)">
<path fill="none" stroke="#000000" d="M468.6609,-1228.2963C368.9952,-1217.7396 159,-1187.9133 159,-1124 159,-1124 159,-1124 159,-577 159,-536.0184 760.9576,-495.5964 976.4264,-482.4402"/>
<polygon fill="#000000" stroke="#000000" points="976.9282,-485.9162 986.6974,-481.8158 976.5034,-478.9291 976.9282,-485.9162"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.20s)">
<text text-anchor="middle" x="175.7241" y="-851.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.(*mcentral).grow (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="349.7963,-213.5 230.2037,-213.5 230.2037,-175.5 349.7963,-175.5 349.7963,-213.5"/>
<text text-anchor="middle" x="290" y="-201.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="290" y="-191.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.086%)</text>
<text text-anchor="middle" x="290" y="-181.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.19s(1.63%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N40 -->
<g id="edge43" class="edge">
<title>N29&#45;&gt;N40</title>
<g id="a_edge43"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.19s)">
<path fill="none" stroke="#000000" d="M385.0425,-264.8C367.2585,-251.6458 343.4861,-234.062 324.1656,-219.7712"/>
<polygon fill="#000000" stroke="#000000" points="326.0357,-216.8011 315.9146,-213.6682 321.873,-222.4289 326.0357,-216.8011"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.19s)">
<text text-anchor="middle" x="374.7241" y="-235.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.lock (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="454.6833,-215 367.3167,-215 367.3167,-174 454.6833,-174 454.6833,-215"/>
<text text-anchor="middle" x="411" y="-202.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="411" y="-191.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.34%)</text>
<text text-anchor="middle" x="411" y="-180.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(1.03%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N53 -->
<g id="edge96" class="edge">
<title>N29&#45;&gt;N53</title>
<g id="a_edge96"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.04s)">
<path fill="none" stroke="#000000" d="M411,-264.5798C411,-253.0588 411,-238.198 411,-225.1279"/>
<polygon fill="#000000" stroke="#000000" points="414.5001,-225.1279 411,-215.1279 407.5001,-225.1279 414.5001,-225.1279"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.04s)">
<text text-anchor="middle" x="427.7241" y="-235.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="main.Integer.Add (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2704.9854,-1032.5 2619.0146,-1032.5 2619.0146,-994.5 2704.9854,-994.5 2704.9854,-1032.5"/>
<text text-anchor="middle" x="2662" y="-1020.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="2662" y="-1010.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.086%)</text>
<text text-anchor="middle" x="2662" y="-1000.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.12s(1.03%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N51 -->
<g id="edge52" class="edge">
<title>N30&#45;&gt;N51</title>
<g id="a_edge52"><a xlink:title="main.(*machine).executeSubtract ... main.Integer.Add (0.12s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2614.1028,-1104.7524C2623.2929,-1087.2437 2636.9675,-1061.1912 2647.3556,-1041.4001"/>
<polygon fill="#000000" stroke="#000000" points="2650.4644,-1043.0081 2652.0129,-1032.5271 2644.2663,-1039.7548 2650.4644,-1043.0081"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.(*machine).executeSubtract ... main.Integer.Add (0.12s)">
<text text-anchor="middle" x="2654.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.convI2I (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2601.2027,-1032.5 2520.7973,-1032.5 2520.7973,-994.5 2601.2027,-994.5 2601.2027,-1032.5"/>
<text text-anchor="middle" x="2561" y="-1020.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="2561" y="-1010.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.086%)</text>
<text text-anchor="middle" x="2561" y="-1000.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(0.94%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N55 -->
<g id="edge77" class="edge">
<title>N30&#45;&gt;N55</title>
<g id="a_edge77"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.convI2I (0.07s)">
<path fill="none" stroke="#000000" d="M2597.7925,-1104.7757C2593.393,-1091.5211 2587.1933,-1073.5577 2581,-1058 2578.9246,-1052.7865 2576.5839,-1047.2911 2574.2543,-1042.0089"/>
<polygon fill="#000000" stroke="#000000" points="2577.4244,-1040.5245 2570.1325,-1032.8382 2571.0396,-1043.3942 2577.4244,-1040.5245"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.convI2I (0.07s)">
<text text-anchor="middle" x="2601.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.assertI2I (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2502.4271,-1031.5 2431.5729,-1031.5 2431.5729,-995.5 2502.4271,-995.5 2502.4271,-1031.5"/>
<text text-anchor="middle" x="2467" y="-1015.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="2467" y="-1007.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(0.6%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N73 -->
<g id="edge91" class="edge">
<title>N30&#45;&gt;N73</title>
<g id="a_edge91"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.05s)">
<path fill="none" stroke="#000000" d="M2581.7302,-1104.9736C2566.0149,-1091.6511 2544.3909,-1073.5277 2525,-1058 2516.7526,-1051.3957 2507.7356,-1044.3808 2499.3217,-1037.9207"/>
<polygon fill="#000000" stroke="#000000" points="2501.23,-1034.974 2491.1597,-1031.6814 2496.9788,-1040.5352 2501.23,-1034.974"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.05s)">
<text text-anchor="middle" x="2556.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N32 -->
<g id="edge84" class="edge">
<title>N31&#45;&gt;N32</title>
<g id="a_edge84"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.07s)">
<path fill="none" stroke="#000000" d="M2834.9521,-1100.3806C2835.5243,-1050.8635 2829.1087,-936.2102 2762,-881 2715.4908,-842.737 1835.8745,-815.7267 1559.422,-808.155"/>
<polygon fill="#000000" stroke="#000000" points="1559.1516,-804.6464 1549.0599,-807.8726 1558.9608,-811.6438 1559.1516,-804.6464"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.07s)">
<text text-anchor="middle" x="2832.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N42 -->
<g id="edge61" class="edge">
<title>N32&#45;&gt;N42</title>
<g id="a_edge61"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.10s)">
<path fill="none" stroke="#000000" d="M1468.3424,-782.1249C1460.779,-759.1088 1451,-723.1366 1451,-691 1451,-691 1451,-691 1451,-378 1451,-350.2531 1430.8477,-325.8669 1411.5761,-308.89"/>
<polygon fill="#000000" stroke="#000000" points="1413.629,-306.0439 1403.7157,-302.3054 1409.134,-311.41 1413.629,-306.0439"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.10s)">
<text text-anchor="middle" x="1467.7241" y="-523.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.memequal64 (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1105.3051,-824 986.6949,-824 986.6949,-788 1105.3051,-788 1105.3051,-824"/>
<text text-anchor="middle" x="1046" y="-808.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.memequal64</text>
<text text-anchor="middle" x="1046" y="-796.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.51%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N80 -->
<g id="edge90" class="edge">
<title>N33&#45;&gt;N80</title>
<g id="a_edge90"><a xlink:title="runtime.ifaceeq &#45;&gt; runtime.memequal64 (0.06s)">
<path fill="none" stroke="#000000" d="M1046,-883.8034C1046,-868.8025 1046,-849.7318 1046,-834.2257"/>
<polygon fill="#000000" stroke="#000000" points="1049.5001,-834.1541 1046,-824.1541 1042.5001,-834.1542 1049.5001,-834.1541"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.ifaceeq &#45;&gt; runtime.memequal64 (0.06s)">
<text text-anchor="middle" x="1062.7241" y="-851.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.mach_semaphore_wait (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1149.5289,-302 970.4711,-302 970.4711,-266 1149.5289,-266 1149.5289,-302"/>
<text text-anchor="middle" x="1060" y="-286.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="1060" y="-273.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.13s(1.11%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N50 -->
<g id="edge51" class="edge">
<title>N34&#45;&gt;N50</title>
<g id="a_edge51"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.13s)">
<path fill="none" stroke="#000000" d="M881.6435,-359.9273C886.4392,-357.5421 891.3232,-355.1733 896,-353 931.9219,-336.307 973.0064,-319.0243 1005.0681,-305.9313"/>
<polygon fill="#000000" stroke="#000000" points="1006.7689,-309.018 1014.7129,-302.0077 1004.1311,-302.534 1006.7689,-309.018"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.13s)">
<text text-anchor="middle" x="983.7241" y="-323.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.mach_semaphore_timedwait (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="952.6338,-302 743.3662,-302 743.3662,-266 952.6338,-266 952.6338,-302"/>
<text text-anchor="middle" x="848" y="-286.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_timedwait</text>
<text text-anchor="middle" x="848" y="-273.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.12s(1.03%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N54 -->
<g id="edge55" class="edge">
<title>N34&#45;&gt;N54</title>
<g id="a_edge55"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_timedwait (0.12s)">
<path fill="none" stroke="#000000" d="M847.1928,-359.8759C847.3367,-346.3516 847.536,-327.6192 847.7005,-312.1514"/>
<polygon fill="#000000" stroke="#000000" points="851.2011,-312.1052 847.8078,-302.0685 844.2015,-312.0307 851.2011,-312.1052"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_timedwait (0.12s)">
<text text-anchor="middle" x="863.7241" y="-323.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N14 -->
<g id="edge66" class="edge">
<title>N35&#45;&gt;N14</title>
<g id="a_edge66"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.09s)">
<path fill="none" stroke="#000000" d="M2193.7365,-1210.9707C2174.6033,-1205.2836 2155.1368,-1198.3482 2137.5518,-1190 2133.0073,-1187.8426 2117.376,-1176.7951 2100.2843,-1164.3373"/>
<polygon fill="#000000" stroke="#000000" points="2101.9553,-1161.223 2091.8186,-1158.1411 2097.8209,-1166.8717 2101.9553,-1161.223"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.09s)">
<text text-anchor="middle" x="2153.7241" y="-1178.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N47 -->
<g id="edge89" class="edge">
<title>N35&#45;&gt;N47</title>
<g id="a_edge89"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.06s)">
<path fill="none" stroke="#000000" d="M2397.1185,-1210.9963C2402.1469,-1209.9638 2407.1294,-1208.9592 2412,-1208 2457.5958,-1199.0207 2469.3232,-1198.5575 2515,-1190 2546.1847,-1184.1576 2553.8153,-1181.8424 2585,-1176 2630.6768,-1167.4425 2654.4269,-1190.1318 2688,-1158 2749.4961,-1099.1438 2716.0083,-1054.0698 2719,-969 2719.2187,-962.7816 2720.0365,-961.1353 2719,-955 2718.1971,-950.2478 2716.9586,-945.3313 2715.5181,-940.5593"/>
<polygon fill="#000000" stroke="#000000" points="2718.8362,-939.4454 2712.3529,-931.0659 2712.1956,-941.6596 2718.8362,-939.4454"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.06s)">
<text text-anchor="middle" x="2741.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="main.(*machine).popValue (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2279.9551,-1031.5 2134.0449,-1031.5 2134.0449,-995.5 2279.9551,-995.5 2279.9551,-1031.5"/>
<text text-anchor="middle" x="2207" y="-1015.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="2207" y="-1003.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.51%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N78 -->
<g id="edge101" class="edge">
<title>N35&#45;&gt;N78</title>
<g id="a_edge101"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M2282.605,-1210.7979C2273.0232,-1196.2636 2260.9654,-1176.5857 2252.5518,-1158 2234.9683,-1119.1578 2221.3894,-1071.5715 2213.7933,-1041.8866"/>
<polygon fill="#000000" stroke="#000000" points="2217.0941,-1040.6593 2211.2691,-1031.8094 2210.3038,-1042.3601 2217.0941,-1040.6593"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="2268.7241" y="-1119.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N8 -->
<g id="edge36" class="edge">
<title>N36&#45;&gt;N8</title>
<g id="a_edge36"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.23s)">
<path fill="none" stroke="#000000" d="M164.028,-1214.7179C137.7182,-1195.6171 103,-1163.0196 103,-1124 103,-1124 103,-1124 103,-577 103,-517.7813 65.096,-551.8666 348,-521 576.1471,-496.1077 847.5795,-484.6156 976.6277,-480.245"/>
<polygon fill="#000000" stroke="#000000" points="976.9175,-483.7373 986.7951,-479.9054 976.6838,-476.7412 976.9175,-483.7373"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.23s)">
<text text-anchor="middle" x="119.7241" y="-851.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime._System (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1246.7699,-595 1173.2301,-595 1173.2301,-559 1246.7699,-559 1246.7699,-595"/>
<text text-anchor="middle" x="1210" y="-578.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="1210" y="-570.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.22s(1.88%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N8 -->
<g id="edge37" class="edge">
<title>N37&#45;&gt;N8</title>
<g id="a_edge37"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.22s)">
<path fill="none" stroke="#000000" d="M1196.9819,-558.8732C1187.5596,-546.8167 1173.904,-531.3526 1159,-521 1149.1087,-514.1293 1137.9576,-508.1132 1126.6851,-502.9296"/>
<polygon fill="#000000" stroke="#000000" points="1127.776,-499.5861 1117.2126,-498.7706 1124.9618,-505.9955 1127.776,-499.5861"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.22s)">
<text text-anchor="middle" x="1190.7241" y="-523.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N42 -->
<g id="edge103" class="edge">
<title>N39&#45;&gt;N42</title>
<g id="a_edge103"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<path fill="none" stroke="#000000" d="M1035.0411,-355.9265C1038.7325,-354.8811 1042.4042,-353.896 1046,-353 1092.7929,-341.3401 1105.6927,-344.3566 1153,-335 1204.3627,-324.8413 1261.9505,-311.6905 1305.873,-301.2875"/>
<polygon fill="#000000" stroke="#000000" points="1306.9593,-304.6269 1315.8789,-298.9093 1305.3406,-297.8167 1306.9593,-304.6269"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<text text-anchor="middle" x="1230.7241" y="-323.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.newdefer (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1268.4609,-302 1167.5391,-302 1167.5391,-266 1268.4609,-266 1268.4609,-302"/>
<text text-anchor="middle" x="1218" y="-286.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="1218" y="-274.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.86%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N59 -->
<g id="edge60" class="edge">
<title>N39&#45;&gt;N59</title>
<g id="a_edge60"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.10s)">
<path fill="none" stroke="#000000" d="M1028.9105,-355.9612C1068.6924,-340.8215 1121.2655,-320.8139 1160.8771,-305.7391"/>
<polygon fill="#000000" stroke="#000000" points="1162.2953,-308.9443 1170.3965,-302.1163 1159.8055,-302.4021 1162.2953,-308.9443"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.10s)">
<text text-anchor="middle" x="1132.7241" y="-323.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.(*mheap).alloc (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="344.8526,-124 235.1474,-124 235.1474,-86 344.8526,-86 344.8526,-124"/>
<text text-anchor="middle" x="290" y="-112" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="290" y="-102" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.086%)</text>
<text text-anchor="middle" x="290" y="-92" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.15s(1.28%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N46 -->
<g id="edge46" class="edge">
<title>N40&#45;&gt;N46</title>
<g id="a_edge46"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.15s)">
<path fill="none" stroke="#000000" d="M290,-175.0798C290,-163.1532 290,-147.6473 290,-134.2542"/>
<polygon fill="#000000" stroke="#000000" points="293.5001,-134.0748 290,-124.0748 286.5001,-134.0748 293.5001,-134.0748"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.15s)">
<text text-anchor="middle" x="306.7241" y="-144.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.getitab (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2554.1256,-932.5 2453.8744,-932.5 2453.8744,-885.5 2554.1256,-885.5 2554.1256,-932.5"/>
<text text-anchor="middle" x="2504" y="-918.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="2504" y="-905.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.13s(1.11%)</text>
<text text-anchor="middle" x="2504" y="-892.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.17s(1.46%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N55 -->
<g id="edge95" class="edge">
<title>N45&#45;&gt;N55</title>
<g id="a_edge95"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.convI2I (0.04s)">
<path fill="none" stroke="#000000" d="M2449.0394,-1104.7602C2459.7561,-1090.8339 2475.388,-1072.0656 2491.5518,-1058 2499.6561,-1050.9476 2508.9749,-1044.207 2518.1002,-1038.201"/>
<polygon fill="#000000" stroke="#000000" points="2520.1993,-1041.0133 2526.744,-1032.6816 2516.4321,-1035.1135 2520.1993,-1041.0133"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.convI2I (0.04s)">
<text text-anchor="middle" x="2507.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="main.(*Integer).Multiply (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2413.9756,-1032.5 2298.0244,-1032.5 2298.0244,-994.5 2413.9756,-994.5 2413.9756,-1032.5"/>
<text text-anchor="middle" x="2356" y="-1020.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="2356" y="-1010.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.17%)</text>
<text text-anchor="middle" x="2356" y="-1000.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.07s(0.6%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N71 -->
<g id="edge76" class="edge">
<title>N45&#45;&gt;N71</title>
<g id="a_edge76"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*Integer).Multiply (0.07s)">
<path fill="none" stroke="#000000" d="M2419.2648,-1104.522C2411.6221,-1094.8744 2402.4141,-1082.9694 2394.5518,-1072 2387.499,-1062.1602 2380.1029,-1051.1288 2373.6965,-1041.3198"/>
<polygon fill="#000000" stroke="#000000" points="2376.5034,-1039.2152 2368.1296,-1032.7244 2370.628,-1043.0205 2376.5034,-1039.2152"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*Integer).Multiply (0.07s)">
<text text-anchor="middle" x="2410.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N73 -->
<g id="edge100" class="edge">
<title>N45&#45;&gt;N73</title>
<g id="a_edge100"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.02s)">
<path fill="none" stroke="#000000" d="M2432.1787,-1104.743C2430.923,-1091.3147 2430.6658,-1073.1597 2435.5518,-1058 2437.5705,-1051.7365 2440.8141,-1045.5913 2444.4679,-1039.9624"/>
<polygon fill="#000000" stroke="#000000" points="2447.4749,-1041.7738 2450.4302,-1031.5995 2441.7752,-1037.7102 2447.4749,-1041.7738"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.02s)">
<text text-anchor="middle" x="2451.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N78 -->
<g id="edge99" class="edge">
<title>N45&#45;&gt;N78</title>
<g id="a_edge99"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M2396.6662,-1104.9229C2369.911,-1091.6562 2333.3426,-1073.6194 2301,-1058 2285.9198,-1050.7172 2269.4279,-1042.8703 2254.5268,-1035.8241"/>
<polygon fill="#000000" stroke="#000000" points="2256.0183,-1032.6578 2245.4812,-1031.5524 2253.0291,-1038.9875 2256.0183,-1032.6578"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="2342.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N41 -->
<g id="edge50" class="edge">
<title>N46&#45;&gt;N41</title>
<g id="a_edge50"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.14s)">
<path fill="none" stroke="#000000" d="M290,-85.6919C290,-74.1154 290,-59.1873 290,-46.2967"/>
<polygon fill="#000000" stroke="#000000" points="293.5001,-46.066 290,-36.0661 286.5001,-46.0661 293.5001,-46.066"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.14s)">
<text text-anchor="middle" x="306.7241" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N32 -->
<g id="edge81" class="edge">
<title>N47&#45;&gt;N32</title>
<g id="a_edge81"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.07s)">
<path fill="none" stroke="#000000" d="M2652.391,-897.246C2625.9008,-891.509 2592.8494,-884.9988 2563,-881 2190.0311,-831.0347 1740.2745,-813.4229 1558.7998,-808.0628"/>
<polygon fill="#000000" stroke="#000000" points="1558.8948,-804.5642 1548.7972,-807.7718 1558.6912,-811.5612 1558.8948,-804.5642"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.07s)">
<text text-anchor="middle" x="2402.7241" y="-851.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.freedefer (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="725.0819,-302 618.9181,-302 618.9181,-266 725.0819,-266 725.0819,-302"/>
<text text-anchor="middle" x="672" y="-286.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="672" y="-273.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.12s(1.03%)</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N52 -->
<g id="edge54" class="edge">
<title>N48&#45;&gt;N52</title>
<g id="a_edge54"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.12s)">
<path fill="none" stroke="#000000" d="M710.1253,-357.1384C703.0942,-343.6501 693.8679,-325.9506 686.2527,-311.3419"/>
<polygon fill="#000000" stroke="#000000" points="689.2465,-309.5132 681.5203,-302.2635 683.0392,-312.7489 689.2465,-309.5132"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.12s)">
<text text-anchor="middle" x="714.7241" y="-323.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.schedule (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1338.7699,-824 1265.2301,-824 1265.2301,-788 1338.7699,-788 1338.7699,-824"/>
<text text-anchor="middle" x="1302" y="-807.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="1302" y="-799.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(1.28%)</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.findrunnable (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1343.8209,-709 1260.1791,-709 1260.1791,-673 1343.8209,-673 1343.8209,-709"/>
<text text-anchor="middle" x="1302" y="-692.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="1302" y="-684.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.77%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N66 -->
<g id="edge69" class="edge">
<title>N49&#45;&gt;N66</title>
<g id="a_edge69"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.09s)">
<path fill="none" stroke="#000000" d="M1302,-787.7779C1302,-769.3567 1302,-740.6329 1302,-719.2569"/>
<polygon fill="#000000" stroke="#000000" points="1305.5001,-719.1368 1302,-709.1368 1298.5001,-719.1369 1305.5001,-719.1368"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.09s)">
<text text-anchor="middle" x="1318.7241" y="-751.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N18 -->
<g id="edge78" class="edge">
<title>N51&#45;&gt;N18</title>
<g id="a_edge78"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.07s)">
<path fill="none" stroke="#000000" d="M2640.0747,-994.3871C2622.8478,-980.6432 2597.5671,-963.1525 2572,-955 2470.0543,-922.4928 1717.7726,-911.9101 1505.579,-909.5552"/>
<polygon fill="#000000" stroke="#000000" points="1505.3376,-906.0525 1495.2999,-909.4429 1505.261,-913.052 1505.3376,-906.0525"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.07s)">
<text text-anchor="middle" x="2617.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N47 -->
<g id="edge102" class="edge">
<title>N51&#45;&gt;N47</title>
<g id="a_edge102"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M2669.52,-994.3331C2675.3562,-979.4579 2683.5767,-958.5056 2690.4114,-941.0856"/>
<polygon fill="#000000" stroke="#000000" points="2693.8527,-941.8972 2694.2469,-931.3097 2687.3363,-939.3405 2693.8527,-941.8972"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="2699.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.osyield (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="447.7699,-123 374.2301,-123 374.2301,-87 447.7699,-87 447.7699,-123"/>
<text text-anchor="middle" x="411" y="-106.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="411" y="-98.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(0.68%)</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N68 -->
<g id="edge97" class="edge">
<title>N53&#45;&gt;N68</title>
<g id="a_edge97"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.04s)">
<path fill="none" stroke="#000000" d="M411,-173.7419C411,-161.8004 411,-146.6228 411,-133.5683"/>
<polygon fill="#000000" stroke="#000000" points="414.5001,-133.2195 411,-123.2195 407.5001,-133.2196 414.5001,-133.2195"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.04s)">
<text text-anchor="middle" x="427.7241" y="-144.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N44 -->
<g id="edge59" class="edge">
<title>N55&#45;&gt;N44</title>
<g id="a_edge59"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.10s)">
<path fill="none" stroke="#000000" d="M2550.5453,-994.3331C2542.5727,-979.7167 2531.3996,-959.2326 2521.9987,-941.9976"/>
<polygon fill="#000000" stroke="#000000" points="2524.8511,-939.9178 2516.9899,-932.8148 2518.7058,-943.2698 2524.8511,-939.9178"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.10s)">
<text text-anchor="middle" x="2551.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.stopm (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1338.9781,-595 1265.0219,-595 1265.0219,-559 1338.9781,-559 1338.9781,-595"/>
<text text-anchor="middle" x="1302" y="-578.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="1302" y="-570.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.94%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N8 -->
<g id="edge56" class="edge">
<title>N56&#45;&gt;N8</title>
<g id="a_edge56"><a xlink:title="runtime.stopm ... runtime.systemstack (0.11s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1276.7995,-558.747C1259.107,-546.6342 1234.4994,-531.1546 1211,-521 1184.4651,-509.5337 1154.0945,-500.4181 1127.0546,-493.5847"/>
<polygon fill="#000000" stroke="#000000" points="1127.8035,-490.1646 1117.2565,-491.1703 1126.1286,-496.9613 1127.8035,-490.1646"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.stopm ... runtime.systemstack (0.11s)">
<text text-anchor="middle" x="1253.4678" y="-523.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.(*mheap).alloc_m (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="600.8051,-302 499.1949,-302 499.1949,-266 600.8051,-266 600.8051,-302"/>
<text text-anchor="middle" x="550" y="-285.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="550" y="-277.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.77%)</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N65 -->
<g id="edge67" class="edge">
<title>N64&#45;&gt;N65</title>
<g id="a_edge67"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.09s)">
<path fill="none" stroke="#000000" d="M571.7941,-359.8759C567.8721,-346.2215 562.4253,-327.2585 557.9581,-311.7061"/>
<polygon fill="#000000" stroke="#000000" points="561.3147,-310.7136 555.1899,-302.0685 554.5867,-312.6462 561.3147,-310.7136"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.09s)">
<text text-anchor="middle" x="581.7241" y="-323.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.(*mheap).allocSpanLocked (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="632.838,-213.5 473.162,-213.5 473.162,-175.5 632.838,-175.5 632.838,-213.5"/>
<text text-anchor="middle" x="553" y="-201.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).allocSpanLocked</text>
<text text-anchor="middle" x="553" y="-191.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.17%)</text>
<text text-anchor="middle" x="553" y="-181.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.07s(0.6%)</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N72 -->
<g id="edge79" class="edge">
<title>N65&#45;&gt;N72</title>
<g id="a_edge79"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.07s)">
<path fill="none" stroke="#000000" d="M550.6071,-265.8883C551.0137,-253.7588 551.5579,-237.524 552.0245,-223.6013"/>
<polygon fill="#000000" stroke="#000000" points="555.5257,-223.6231 552.3627,-213.5114 548.5296,-223.3885 555.5257,-223.6231"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.07s)">
<text text-anchor="middle" x="568.7241" y="-235.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N56 -->
<g id="edge68" class="edge">
<title>N66&#45;&gt;N56</title>
<g id="a_edge68"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.09s)">
<path fill="none" stroke="#000000" d="M1302,-672.9364C1302,-654.7827 1302,-626.536 1302,-605.3859"/>
<polygon fill="#000000" stroke="#000000" points="1305.5001,-605.3566 1302,-595.3566 1298.5001,-605.3567 1305.5001,-605.3566"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.09s)">
<text text-anchor="middle" x="1318.7241" y="-621.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.mcall (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1348.7699,-1031.5 1275.2301,-1031.5 1275.2301,-995.5 1348.7699,-995.5 1348.7699,-1031.5"/>
<text text-anchor="middle" x="1312" y="-1015.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="1312" y="-1007.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(0.68%)</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.park_m (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1348.7699,-927 1275.2301,-927 1275.2301,-891 1348.7699,-891 1348.7699,-927"/>
<text text-anchor="middle" x="1312" y="-910.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.park_m</text>
<text text-anchor="middle" x="1312" y="-902.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(0.68%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N69 -->
<g id="edge72" class="edge">
<title>N67&#45;&gt;N69</title>
<g id="a_edge72"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.08s)">
<path fill="none" stroke="#000000" d="M1312,-995.2975C1312,-979.3617 1312,-955.942 1312,-937.5195"/>
<polygon fill="#000000" stroke="#000000" points="1315.5001,-937.3445 1312,-927.3445 1308.5001,-937.3446 1315.5001,-937.3445"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.08s)">
<text text-anchor="middle" x="1328.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.usleep (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="454.4805,-36 367.5195,-36 367.5195,0 454.4805,0 454.4805,-36"/>
<text text-anchor="middle" x="411" y="-20.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="411" y="-8.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.68%)</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N70 -->
<g id="edge73" class="edge">
<title>N68&#45;&gt;N70</title>
<g id="a_edge73"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.08s)">
<path fill="none" stroke="#000000" d="M411,-86.9735C411,-75.1918 411,-59.5607 411,-46.1581"/>
<polygon fill="#000000" stroke="#000000" points="414.5001,-46.0033 411,-36.0034 407.5001,-46.0034 414.5001,-46.0033"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.08s)">
<text text-anchor="middle" x="427.7241" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N49 -->
<g id="edge74" class="edge">
<title>N69&#45;&gt;N49</title>
<g id="a_edge74"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.08s)">
<path fill="none" stroke="#000000" d="M1310.2122,-890.5857C1308.6977,-874.9868 1306.5015,-852.365 1304.7612,-834.4401"/>
<polygon fill="#000000" stroke="#000000" points="1308.2224,-833.8699 1303.7723,-824.2549 1301.2551,-834.5464 1308.2224,-833.8699"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.08s)">
<text text-anchor="middle" x="1323.7241" y="-851.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N44 -->
<g id="edge80" class="edge">
<title>N73&#45;&gt;N44</title>
<g id="a_edge80"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.07s)">
<path fill="none" stroke="#000000" d="M2472.3411,-995.462C2475.8762,-983.8379 2480.7333,-968.4396 2485.5518,-955 2487.0627,-950.7857 2488.7215,-946.3842 2490.4057,-942.0458"/>
<polygon fill="#000000" stroke="#000000" points="2493.6607,-943.3324 2494.0857,-932.7461 2487.1517,-940.7567 2493.6607,-943.3324"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.07s)">
<text text-anchor="middle" x="2501.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.gopreempt_m (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1206.817,-1031.5 1119.183,-1031.5 1119.183,-995.5 1206.817,-995.5 1206.817,-1031.5"/>
<text text-anchor="middle" x="1163" y="-1015.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="1163" y="-1007.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(0.6%)</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.goschedImpl (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1257.2073,-927 1172.7927,-927 1172.7927,-891 1257.2073,-891 1257.2073,-927"/>
<text text-anchor="middle" x="1215" y="-910.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="1215" y="-902.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(0.6%)</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N75 -->
<g id="edge82" class="edge">
<title>N74&#45;&gt;N75</title>
<g id="a_edge82"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.07s)">
<path fill="none" stroke="#000000" d="M1172.0577,-995.2975C1180.1357,-979.0639 1192.0783,-955.0638 1201.3199,-936.4918"/>
<polygon fill="#000000" stroke="#000000" points="1204.5501,-937.8566 1205.8716,-927.3445 1198.2831,-934.7381 1204.5501,-937.8566"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.07s)">
<text text-anchor="middle" x="1206.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N49 -->
<g id="edge83" class="edge">
<title>N75&#45;&gt;N49</title>
<g id="a_edge83"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.07s)">
<path fill="none" stroke="#000000" d="M1230.5539,-890.5857C1244.2864,-874.3276 1264.4626,-850.4408 1279.875,-832.194"/>
<polygon fill="#000000" stroke="#000000" points="1282.8018,-834.1529 1286.5808,-824.2549 1277.4542,-829.6359 1282.8018,-834.1529"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.07s)">
<text text-anchor="middle" x="1279.7241" y="-851.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.morestack (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1243.7582,-1251 1168.2418,-1251 1168.2418,-1215 1243.7582,-1215 1243.7582,-1251"/>
<text text-anchor="middle" x="1206" y="-1234.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="1206" y="-1226.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(0.6%)</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.newstack (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1207.1493,-1142 1134.8507,-1142 1134.8507,-1106 1207.1493,-1106 1207.1493,-1142"/>
<text text-anchor="middle" x="1171" y="-1125.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="1171" y="-1117.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(0.6%)</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N77 -->
<g id="edge85" class="edge">
<title>N76&#45;&gt;N77</title>
<g id="a_edge85"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.07s)">
<path fill="none" stroke="#000000" d="M1197.4446,-1214.8368C1194.079,-1207.2644 1190.3573,-1198.3125 1187.5518,-1190 1183.4029,-1177.7071 1179.7674,-1163.8143 1176.9685,-1151.9569"/>
<polygon fill="#000000" stroke="#000000" points="1180.3684,-1151.1234 1174.7323,-1142.1521 1173.5436,-1152.68 1180.3684,-1151.1234"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.07s)">
<text text-anchor="middle" x="1203.7241" y="-1178.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N74 -->
<g id="edge86" class="edge">
<title>N77&#45;&gt;N74</title>
<g id="a_edge86"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.07s)">
<path fill="none" stroke="#000000" d="M1169.679,-1105.7532C1168.4225,-1088.3984 1166.5134,-1062.0286 1165.0576,-1041.9203"/>
<polygon fill="#000000" stroke="#000000" points="1168.536,-1041.4951 1164.323,-1031.7739 1161.5543,-1042.0006 1168.536,-1041.4951"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.07s)">
<text text-anchor="middle" x="1183.7241" y="-1060.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N5 -->
<g id="edge93" class="edge">
<title>N79&#45;&gt;N5</title>
<g id="a_edge93"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.05s)">
<path fill="none" stroke="#000000" d="M595.6336,-1214.9533C590.5263,-1212.3702 585.1952,-1209.9369 580,-1208 498.3556,-1177.5609 197,-1211.1341 197,-1124 197,-1124 197,-1124 197,-962 197,-925.0229 190.5518,-907.8272 216,-881 291.661,-801.2392 602.7957,-736.9781 766.7778,-707.8739"/>
<polygon fill="#000000" stroke="#000000" points="767.6405,-711.2758 776.8807,-706.0922 766.4248,-704.3822 767.6405,-711.2758"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.05s)">
<text text-anchor="middle" x="213.7241" y="-957.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration10.svg.





































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2084)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2084 3068.5144,-2084 3068.5144,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="1474.0662,-1888 1474.0662,-2072 2136.0662,-2072 2136.0662,-1888 1474.0662,-1888"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="2127.9099,-2064 1482.2224,-2064 1482.2224,-1896 2127.9099,-1896 2127.9099,-2064"/>
<text text-anchor="start" x="1490.1443" y="-2034.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="1490.1443" y="-2002.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="1490.1443" y="-1970.4" font-family="Times,serif" font-size="32.00" fill="#000000">3.75s of 3.84s total (97.66%)</text>
<text text-anchor="start" x="1490.1443" y="-1938.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 21 nodes (cum &lt;= 0.02s)</text>
<text text-anchor="start" x="1490.1443" y="-1906.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 103 (cum &gt;= 3.57s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (3.61s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2223.836,-1998 2146.2963,-1998 2146.2963,-1962 2223.836,-1962 2223.836,-1998"/>
<text text-anchor="middle" x="2185.0662" y="-1981.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="2185.0662" y="-1973.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.61s(94.01%)</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.gcDrain (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1047.8361,-1846 974.2963,-1846 974.2963,-1810 1047.8361,-1810 1047.8361,-1846"/>
<text text-anchor="middle" x="1011.0662" y="-1829.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcDrain</text>
<text text-anchor="middle" x="1011.0662" y="-1821.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.78%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N47 -->
<g id="edge86" class="edge">
<title>N1&#45;&gt;N47</title>
<g id="a_edge86"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.02s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2181.8641,-1961.8563C2176.9832,-1940.1894 2165.4235,-1904.7765 2140.0662,-1888 2128.5899,-1880.4073 1270.228,-1840.0457 1058.0781,-1830.178"/>
<polygon fill="#000000" stroke="#000000" points="1058.0451,-1826.6728 1047.8934,-1829.7046 1057.72,-1833.6652 1058.0451,-1826.6728"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.02s)">
<text text-anchor="middle" x="2011.7903" y="-1866.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.gcMarkDone (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1850.6561,-1846 1765.4763,-1846 1765.4763,-1810 1850.6561,-1810 1850.6561,-1846"/>
<text text-anchor="middle" x="1808.0662" y="-1829.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkDone</text>
<text text-anchor="middle" x="1808.0662" y="-1821.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N66 -->
<g id="edge87" class="edge">
<title>N1&#45;&gt;N66</title>
<g id="a_edge87"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.02s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2181.4063,-1961.9997C2176.1103,-1940.8175 2164.1779,-1906.2288 2140.0662,-1888 2096.9399,-1855.396 1943.3708,-1838.6141 1861.0677,-1831.7895"/>
<polygon fill="#000000" stroke="#000000" points="1861.1625,-1828.2858 1850.9128,-1830.968 1860.598,-1835.263 1861.1625,-1828.2858"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.02s)">
<text text-anchor="middle" x="2138.7903" y="-1866.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run (3.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2254.8164,-1846 2115.3159,-1846 2115.3159,-1810 2254.8164,-1810 2254.8164,-1846"/>
<text text-anchor="middle" x="2185.0662" y="-1829.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.(*App).Run</text>
<text text-anchor="middle" x="2185.0662" y="-1821.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.57s(92.97%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N77 -->
<g id="edge6" class="edge">
<title>N1&#45;&gt;N77</title>
<g id="a_edge6"><a xlink:title="runtime.goexit ... gopkg.in/urfave/cli%2ev1.(*App).Run (3.57s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M2185.0662,-1961.9667C2185.0662,-1935.7983 2185.0662,-1887.0561 2185.0662,-1856.1368"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2189.4413,-1856.0098 2185.0662,-1846.0098 2180.6913,-1856.0099 2189.4413,-1856.0098"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.goexit ... gopkg.in/urfave/cli%2ev1.(*App).Run (3.57s)">
<text text-anchor="middle" x="2201.7903" y="-1866.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.57s</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (3.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2452.3974,-1497 2213.7349,-1497 2213.7349,-1423 2452.3974,-1423 2452.3974,-1497"/>
<text text-anchor="middle" x="2333.0662" y="-1475.4" font-family="Times,serif" font-size="22.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="2333.0662" y="-1453.4" font-family="Times,serif" font-size="22.00" fill="#000000">0.37s(9.64%)</text>
<text text-anchor="middle" x="2333.0662" y="-1431.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 3.57s(92.97%)</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).execute.func10 (3.56s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2548.6287,-1358.5 2427.5036,-1358.5 2427.5036,-1322.5 2548.6287,-1322.5 2548.6287,-1358.5"/>
<text text-anchor="middle" x="2488.0662" y="-1342.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).execute.func10</text>
<text text-anchor="middle" x="2488.0662" y="-1334.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.56s(92.71%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N4 -->
<g id="edge55" class="edge">
<title>N2&#45;&gt;N4</title>
<g id="a_edge55"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func10 (0.03s)">
<path fill="none" stroke="#000000" d="M2371.7496,-1422.9255C2383.5663,-1412.2124 2396.8255,-1400.7807 2409.6179,-1391 2421.9546,-1381.5678 2436.0538,-1372.1175 2448.8652,-1363.9855"/>
<polygon fill="#000000" stroke="#000000" points="2450.8742,-1366.8571 2457.4913,-1358.5828 2447.1585,-1360.9246 2450.8742,-1366.8571"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func10 (0.03s)">
<text text-anchor="middle" x="2425.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.(*machine).execute.func11 (2.49s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2409.3939,-1373 2144.7385,-1373 2144.7385,-1308 2409.3939,-1308 2409.3939,-1373"/>
<text text-anchor="middle" x="2277.0662" y="-1353.8" font-family="Times,serif" font-size="19.00" fill="#000000">main.(*machine).execute.func11</text>
<text text-anchor="middle" x="2277.0662" y="-1334.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.22s(5.73%)</text>
<text text-anchor="middle" x="2277.0662" y="-1315.8" font-family="Times,serif" font-size="19.00" fill="#000000">of 2.49s(64.84%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N5 -->
<g id="edge9" class="edge">
<title>N2&#45;&gt;N5</title>
<g id="a_edge9"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func11 (1.16s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M2285.0056,-1422.9879C2280.4177,-1417.465 2276.4339,-1411.4416 2273.6179,-1405 2270.6533,-1398.2185 2269.4466,-1390.6466 2269.2883,-1383.1425"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="2272.7901,-1383.153 2269.6557,-1373.0324 2265.7947,-1382.8987 2272.7901,-1383.153"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func11 (1.16s)">
<text text-anchor="middle" x="2290.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.16s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="756.5275,-1367 497.6048,-1367 497.6048,-1314 756.5275,-1314 756.5275,-1367"/>
<text text-anchor="middle" x="627.0662" y="-1351" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="627.0662" y="-1336" font-family="Times,serif" font-size="15.00" fill="#000000">0.07s(1.82%)</text>
<text text-anchor="middle" x="627.0662" y="-1321" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.32s(8.33%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N11 -->
<g id="edge15" class="edge">
<title>N2&#45;&gt;N11</title>
<g id="a_edge15"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.32s)">
<path fill="none" stroke="#000000" d="M2213.822,-1457.8007C1921.0532,-1452.0048 1172.6806,-1434.6825 924.6179,-1405 861.739,-1397.4761 792.5446,-1382.8678 736.7176,-1369.4538"/>
<polygon fill="#000000" stroke="#000000" points="737.3537,-1366.0067 726.8106,-1367.0524 735.7046,-1372.8097 737.3537,-1366.0067"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.32s)">
<text text-anchor="middle" x="941.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.executeSubtract (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="885.554,-1361 774.5784,-1361 774.5784,-1320 885.554,-1320 885.554,-1361"/>
<text text-anchor="middle" x="830.0662" y="-1348.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeSubtract</text>
<text text-anchor="middle" x="830.0662" y="-1337.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.26%)</text>
<text text-anchor="middle" x="830.0662" y="-1326.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.29s(7.55%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N12 -->
<g id="edge16" class="edge">
<title>N2&#45;&gt;N12</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.29s)">
<path fill="none" stroke="#000000" d="M2213.6673,-1456.8116C1943.5666,-1449.2694 1292.1773,-1429.1403 1073.6179,-1405 993.0497,-1396.1011 970.9295,-1398.7384 894.0662,-1373 887.9399,-1370.9486 881.6702,-1368.3951 875.5664,-1365.6271"/>
<polygon fill="#000000" stroke="#000000" points="876.6887,-1362.2849 866.1557,-1361.1422 873.6771,-1368.604 876.6887,-1362.2849"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.29s)">
<text text-anchor="middle" x="1090.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="442.5275,-1367 183.6048,-1367 183.6048,-1314 442.5275,-1314 442.5275,-1367"/>
<text text-anchor="middle" x="313.0662" y="-1351" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="313.0662" y="-1336" font-family="Times,serif" font-size="15.00" fill="#000000">0.09s(2.34%)</text>
<text text-anchor="middle" x="313.0662" y="-1321" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.28s(7.29%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N13 -->
<g id="edge17" class="edge">
<title>N2&#45;&gt;N13</title>
<g id="a_edge17"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.28s)">
<path fill="none" stroke="#000000" d="M2213.6704,-1458.202C1808.843,-1451.8916 508.6822,-1429.79 422.6179,-1405 399.2601,-1398.272 375.7241,-1385.3954 356.4862,-1372.9057"/>
<polygon fill="#000000" stroke="#000000" points="358.2261,-1369.859 347.9657,-1367.2179 354.3396,-1375.681 358.2261,-1369.859"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.28s)">
<text text-anchor="middle" x="439.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="runtime.deferreturn (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1389.3944,-1368.5 1248.7379,-1368.5 1248.7379,-1312.5 1389.3944,-1312.5 1389.3944,-1368.5"/>
<text text-anchor="middle" x="1319.0662" y="-1351.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="1319.0662" y="-1335.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.10s(2.60%)</text>
<text text-anchor="middle" x="1319.0662" y="-1319.7" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.27s(7.03%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge18" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.27s)">
<path fill="none" stroke="#000000" d="M2213.8723,-1456.432C2060.7005,-1450.7362 1786.8386,-1436.7976 1554.6179,-1405 1484.2572,-1395.3656 1465.9958,-1393.7126 1398.0662,-1373 1396.8293,-1372.6229 1395.5851,-1372.2337 1394.3355,-1371.8339"/>
<polygon fill="#000000" stroke="#000000" points="1395.2745,-1368.4569 1384.6803,-1368.5783 1393.0379,-1375.09 1395.2745,-1368.4569"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.27s)">
<text text-anchor="middle" x="1571.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="runtime.deferproc (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2127.0492,-1364 2017.0832,-1364 2017.0832,-1317 2127.0492,-1317 2127.0492,-1364"/>
<text text-anchor="middle" x="2072.0662" y="-1349.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="2072.0662" y="-1336.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.04%)</text>
<text text-anchor="middle" x="2072.0662" y="-1323.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.25s(6.51%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N15 -->
<g id="edge19" class="edge">
<title>N2&#45;&gt;N15</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.25s)">
<path fill="none" stroke="#000000" d="M2246.3027,-1422.8881C2211.8038,-1407.8185 2171.8741,-1389.9835 2136.0662,-1373 2133.0824,-1371.5848 2130.0306,-1370.1144 2126.9568,-1368.6153"/>
<polygon fill="#000000" stroke="#000000" points="2128.2323,-1365.3419 2117.7154,-1364.0586 2125.1366,-1371.6202 2128.2323,-1365.3419"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.25s)">
<text text-anchor="middle" x="2217.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="main.executeMultiply (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1024.7054,-1362.5 903.427,-1362.5 903.427,-1318.5 1024.7054,-1318.5 1024.7054,-1362.5"/>
<text text-anchor="middle" x="964.0662" y="-1348.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.executeMultiply</text>
<text text-anchor="middle" x="964.0662" y="-1336.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.78%)</text>
<text text-anchor="middle" x="964.0662" y="-1324.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.22s(5.73%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N17 -->
<g id="edge20" class="edge">
<title>N2&#45;&gt;N17</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.22s)">
<path fill="none" stroke="#000000" d="M2213.5927,-1456.5791C2019.0505,-1450.3667 1621.8404,-1435.006 1286.6179,-1405 1173.9258,-1394.9129 1142.7915,-1404.306 1034.0662,-1373 1027.9824,-1371.2483 1021.7598,-1369.036 1015.6568,-1366.5929"/>
<polygon fill="#000000" stroke="#000000" points="1016.7757,-1363.2661 1006.2021,-1362.5968 1014.0505,-1369.7139 1016.7757,-1363.2661"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.22s)">
<text text-anchor="middle" x="1303.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1230.6993,-1362.5 1043.433,-1362.5 1043.433,-1318.5 1230.6993,-1318.5 1230.6993,-1362.5"/>
<text text-anchor="middle" x="1137.0662" y="-1348.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(intPusher).(main.pushInt)&#45;fm</text>
<text text-anchor="middle" x="1137.0662" y="-1336.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.78%)</text>
<text text-anchor="middle" x="1137.0662" y="-1324.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.09s(2.34%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N33 -->
<g id="edge35" class="edge">
<title>N2&#45;&gt;N33</title>
<g id="a_edge35"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.09s)">
<path fill="none" stroke="#000000" d="M2213.6937,-1456.8667C2040.1485,-1451.3787 1708.2473,-1437.3672 1427.6179,-1405 1343.6139,-1395.3111 1322.257,-1392.8801 1240.0662,-1373 1230.9356,-1370.7915 1221.4342,-1368.2028 1212.0567,-1365.4672"/>
<polygon fill="#000000" stroke="#000000" points="1212.9331,-1362.0763 1202.3499,-1362.5731 1210.9329,-1368.7845 1212.9331,-1362.0763"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.09s)">
<text text-anchor="middle" x="1444.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.ifaceeq (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1520.6341,-1367 1407.4983,-1367 1407.4983,-1314 1520.6341,-1314 1520.6341,-1367"/>
<text text-anchor="middle" x="1464.0662" y="-1351" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="1464.0662" y="-1336" font-family="Times,serif" font-size="15.00" fill="#000000">0.07s(1.82%)</text>
<text text-anchor="middle" x="1464.0662" y="-1321" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.08s(2.08%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N37 -->
<g id="edge38" class="edge">
<title>N2&#45;&gt;N37</title>
<g id="a_edge38"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.08s)">
<path fill="none" stroke="#000000" d="M2213.9005,-1454.5163C2082.514,-1447.4145 1865.1475,-1432.5435 1679.6179,-1405 1612.3828,-1395.0183 1594.2779,-1395.2945 1530.0662,-1373 1528.2111,-1372.3559 1526.3407,-1371.6719 1524.4637,-1370.9552"/>
<polygon fill="#000000" stroke="#000000" points="1525.6438,-1367.6568 1515.062,-1367.1317 1523.0067,-1374.1411 1525.6438,-1367.6568"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.08s)">
<text text-anchor="middle" x="1696.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="main.(*CodeQuotation).nextWord (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1757.1414,-1359.5 1538.991,-1359.5 1538.991,-1321.5 1757.1414,-1321.5 1757.1414,-1359.5"/>
<text text-anchor="middle" x="1648.0662" y="-1343.5" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="1648.0662" y="-1328.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.07s(1.82%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N38 -->
<g id="edge41" class="edge">
<title>N2&#45;&gt;N38</title>
<g id="a_edge41"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.07s)">
<path fill="none" stroke="#000000" d="M2213.891,-1455.6765C2067.738,-1449.1902 1829.1264,-1434.4251 1745.6179,-1405 1720.8749,-1396.2815 1696.2575,-1379.9325 1677.9421,-1365.8767"/>
<polygon fill="#000000" stroke="#000000" points="1680.0142,-1363.0534 1669.9926,-1359.6156 1675.683,-1368.5526 1680.0142,-1363.0534"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.07s)">
<text text-anchor="middle" x="1762.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.memeqbody (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="438.3184,-1142 305.814,-1142 305.814,-1106 438.3184,-1106 438.3184,-1142"/>
<text text-anchor="middle" x="372.0662" y="-1126.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="372.0662" y="-1112.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.05s(1.30%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N42 -->
<g id="edge68" class="edge">
<title>N2&#45;&gt;N42</title>
<g id="a_edge68"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.02s)">
<path fill="none" stroke="#000000" d="M2213.7338,-1457.9983C1816.2685,-1450.8604 558.4426,-1424.3002 489.0662,-1373 484.9393,-1369.9484 421.3697,-1206.5866 419.0662,-1202 410.2521,-1184.4499 398.9257,-1165.5666 389.6003,-1150.7759"/>
<polygon fill="#000000" stroke="#000000" points="392.4223,-1148.6917 384.0929,-1142.1441 386.5211,-1152.4569 392.4223,-1148.6917"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.02s)">
<text text-anchor="middle" x="470.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.jmpdefer (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1746.7035,-1248 1647.4288,-1248 1647.4288,-1212 1746.7035,-1212 1746.7035,-1248"/>
<text text-anchor="middle" x="1697.0662" y="-1232.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.jmpdefer</text>
<text text-anchor="middle" x="1697.0662" y="-1220.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.78%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N48 -->
<g id="edge98" class="edge">
<title>N2&#45;&gt;N48</title>
<g id="a_edge98"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.jmpdefer (0.01s)">
<path fill="none" stroke="#000000" d="M2213.6028,-1452.3738C2078.0169,-1441.6786 1867.2761,-1418.2436 1802.6179,-1373 1775.4625,-1353.9984 1785.2765,-1335.0081 1766.0662,-1308 1752.9801,-1289.6022 1736.2427,-1270.5935 1722.5297,-1255.9476"/>
<polygon fill="#000000" stroke="#000000" points="1724.6872,-1253.1364 1715.265,-1248.2914 1719.6093,-1257.9546 1724.6872,-1253.1364"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.jmpdefer (0.01s)">
<text text-anchor="middle" x="1819.7903" y="-1336.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.makemap (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2760.5369,-1362.5 2657.5955,-1362.5 2657.5955,-1318.5 2760.5369,-1318.5 2760.5369,-1362.5"/>
<text text-anchor="middle" x="2709.0662" y="-1348.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="2709.0662" y="-1336.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.52%)</text>
<text text-anchor="middle" x="2709.0662" y="-1324.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.03s(0.78%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N49 -->
<g id="edge56" class="edge">
<title>N2&#45;&gt;N49</title>
<g id="a_edge56"><a xlink:title="main.(*machine).execute ... runtime.makemap (0.03s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2452.3356,-1436.2213C2512.7996,-1421.9255 2586.4802,-1401.0085 2649.0662,-1373 2653.1296,-1371.1815 2657.2929,-1369.1967 2661.4392,-1367.1334"/>
<polygon fill="#000000" stroke="#000000" points="2663.136,-1370.1968 2670.4437,-1362.5255 2659.9472,-1363.9653 2663.136,-1370.1968"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.(*machine).execute ... runtime.makemap (0.03s)">
<text text-anchor="middle" x="2615.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="main.(*machine).execute.func1 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1999.5271,-1361 1844.6052,-1361 1844.6052,-1320 1999.5271,-1320 1999.5271,-1361"/>
<text text-anchor="middle" x="1922.0662" y="-1348.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="1922.0662" y="-1337.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.26%)</text>
<text text-anchor="middle" x="1922.0662" y="-1326.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N53 -->
<g id="edge66" class="edge">
<title>N2&#45;&gt;N53</title>
<g id="a_edge66"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.02s)">
<path fill="none" stroke="#000000" d="M2213.7589,-1431.1007C2151.9433,-1415.363 2075.4816,-1394.702 2008.0662,-1373 2000.0944,-1370.4338 1991.7778,-1367.5543 1983.5925,-1364.5977"/>
<polygon fill="#000000" stroke="#000000" points="1984.6663,-1361.2635 1974.0726,-1361.1056 1982.2556,-1367.8354 1984.6663,-1361.2635"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.02s)">
<text text-anchor="middle" x="2131.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="main.tryParseInt (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2639.8361,-1358.5 2566.2963,-1358.5 2566.2963,-1322.5 2639.8361,-1322.5 2639.8361,-1358.5"/>
<text text-anchor="middle" x="2603.0662" y="-1342.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="2603.0662" y="-1334.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N54 -->
<g id="edge67" class="edge">
<title>N2&#45;&gt;N54</title>
<g id="a_edge67"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.02s)">
<path fill="none" stroke="#000000" d="M2452.5186,-1423.0297C2487.7776,-1409.7128 2525.5945,-1392.9522 2558.0662,-1373 2562.2588,-1370.4238 2566.5693,-1367.5823 2570.7837,-1364.6838"/>
<polygon fill="#000000" stroke="#000000" points="2573.0798,-1367.3473 2579.2311,-1358.721 2569.043,-1361.6285 2573.0798,-1367.3473"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.02s)">
<text text-anchor="middle" x="2539.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (3.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2405.0544,-1583 2261.0779,-1583 2261.0779,-1547 2405.0544,-1547 2405.0544,-1583"/>
<text text-anchor="middle" x="2333.0662" y="-1566.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="2333.0662" y="-1558.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.57s(92.97%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge4" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge4"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (3.57s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2333.0662,-1546.7104C2333.0662,-1535.7413 2333.0662,-1521.2432 2333.0662,-1507.248"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2337.4413,-1507.2038 2333.0662,-1497.2038 2328.6913,-1507.2038 2337.4413,-1507.2038"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (3.57s)">
<text text-anchor="middle" x="2349.7903" y="-1517.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.57s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N2 -->
<g id="edge7" class="edge">
<title>N4&#45;&gt;N2</title>
<g id="a_edge7"><a xlink:title="main.(*machine).execute.func10 &#45;&gt; main.(*machine).execute (3.53s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2480.023,-1358.5712C2472.9949,-1372.6927 2461.6393,-1392.0357 2447.0662,-1405 2442.1022,-1409.416 2436.7207,-1413.556 2431.0894,-1417.4237"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2428.6754,-1413.7748 2422.6798,-1422.8959 2433.4477,-1421.1088 2428.6754,-1413.7748"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*machine).execute.func10 &#45;&gt; main.(*machine).execute (3.53s)">
<text text-anchor="middle" x="2475.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.53s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="main.(*CodeQuotation).cloneCode (0.58s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2374.8446,-1253.5 2179.2877,-1253.5 2179.2877,-1206.5 2374.8446,-1206.5 2374.8446,-1253.5"/>
<text text-anchor="middle" x="2277.0662" y="-1239.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="2277.0662" y="-1226.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.04%)</text>
<text text-anchor="middle" x="2277.0662" y="-1213.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.58s(15.10%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N9 -->
<g id="edge57" class="edge">
<title>N4&#45;&gt;N9</title>
<g id="a_edge57"><a xlink:title="main.(*machine).execute.func10 &#45;&gt; main.(*CodeQuotation).cloneCode (0.03s)">
<path fill="none" stroke="#000000" d="M2453.2238,-1322.2532C2420.0646,-1304.8878 2369.6705,-1278.4966 2331.2649,-1258.3837"/>
<polygon fill="#000000" stroke="#000000" points="2332.7568,-1255.2141 2322.2743,-1253.6754 2329.5093,-1261.4152 2332.7568,-1255.2141"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="main.(*machine).execute.func10 &#45;&gt; main.(*CodeQuotation).cloneCode (0.03s)">
<text text-anchor="middle" x="2404.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N2 -->
<g id="edge8" class="edge">
<title>N5&#45;&gt;N2</title>
<g id="a_edge8"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*machine).execute (1.33s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M2300.9576,-1373.1096C2304.6345,-1378.9038 2308.1663,-1385.006 2311.0662,-1391 2314.4543,-1398.0032 2317.4899,-1405.6519 2320.1453,-1413.2251"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="2316.8269,-1414.3382 2323.3035,-1422.7229 2323.4693,-1412.1294 2316.8269,-1414.3382"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*machine).execute (1.33s)">
<text text-anchor="middle" x="2332.7903" y="-1393.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.33s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N9 -->
<g id="edge11" class="edge">
<title>N5&#45;&gt;N9</title>
<g id="a_edge11"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*CodeQuotation).cloneCode (0.55s)">
<path fill="none" stroke="#000000" d="M2277.0662,-1307.944C2277.0662,-1294.0439 2277.0662,-1277.8242 2277.0662,-1263.7912"/>
<polygon fill="#000000" stroke="#000000" points="2280.5663,-1263.561 2277.0662,-1253.561 2273.5663,-1263.5611 2280.5663,-1263.561"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*CodeQuotation).cloneCode (0.55s)">
<text text-anchor="middle" x="2293.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.55s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.convT2I (0.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1949.1348,-1046 1828.9975,-1046 1828.9975,-993 1949.1348,-993 1949.1348,-1046"/>
<text text-anchor="middle" x="1889.0662" y="-1030" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1889.0662" y="-1015" font-family="Times,serif" font-size="15.00" fill="#000000">0.08s(2.08%)</text>
<text text-anchor="middle" x="1889.0662" y="-1000" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.57s(14.84%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N10 -->
<g id="edge14" class="edge">
<title>N5&#45;&gt;N10</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; runtime.convT2I (0.39s)">
<path fill="none" stroke="#000000" d="M2233.7529,-1307.8377C2214.1403,-1292.8608 2190.763,-1274.7469 2170.0662,-1258 2081.6438,-1186.4528 1980.5338,-1099.274 1926.9883,-1052.6679"/>
<polygon fill="#000000" stroke="#000000" points="1929.2796,-1050.0221 1919.4404,-1046.0926 1924.6816,-1055.3003 1929.2796,-1050.0221"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; runtime.convT2I (0.39s)">
<text text-anchor="middle" x="2096.7903" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.mallocgc (0.95s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2369.1759,-837 2184.9564,-837 2184.9564,-757 2369.1759,-757 2369.1759,-837"/>
<text text-anchor="middle" x="2277.0662" y="-813.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="2277.0662" y="-789.8" font-family="Times,serif" font-size="24.00" fill="#000000">0.49s(12.76%)</text>
<text text-anchor="middle" x="2277.0662" y="-765.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 0.95s(24.74%)</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.heapBitsSetType (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2381.395,-707 2172.7373,-707 2172.7373,-661 2381.395,-661 2381.395,-707"/>
<text text-anchor="middle" x="2277.0662" y="-687.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="2277.0662" y="-668.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.20s(5.21%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N18 -->
<g id="edge21" class="edge">
<title>N6&#45;&gt;N18</title>
<g id="a_edge21"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.20s)">
<path fill="none" stroke="#000000" d="M2277.0662,-756.8423C2277.0662,-743.9875 2277.0662,-729.8978 2277.0662,-717.5643"/>
<polygon fill="#000000" stroke="#000000" points="2280.5663,-717.2531 2277.0662,-707.2531 2273.5663,-717.2532 2280.5663,-717.2531"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.20s)">
<text text-anchor="middle" x="2293.7903" y="-727.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.(*mcache).nextFree (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2539.1761,-704.5 2398.9562,-704.5 2398.9562,-663.5 2539.1761,-663.5 2539.1761,-704.5"/>
<text text-anchor="middle" x="2469.0662" y="-691.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="2469.0662" y="-680.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.26%)</text>
<text text-anchor="middle" x="2469.0662" y="-669.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.05s(1.30%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N41 -->
<g id="edge51" class="edge">
<title>N6&#45;&gt;N41</title>
<g id="a_edge51"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.05s)">
<path fill="none" stroke="#000000" d="M2345.2988,-756.8423C2371.9644,-741.1484 2401.7573,-723.614 2425.4297,-709.6819"/>
<polygon fill="#000000" stroke="#000000" points="2427.3404,-712.6186 2434.1834,-704.53 2423.7899,-706.5858 2427.3404,-712.6186"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.05s)">
<text text-anchor="middle" x="2411.7903" y="-727.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.memclr (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3040.5408,-36 2947.5915,-36 2947.5915,0 3040.5408,0 3040.5408,-36"/>
<text text-anchor="middle" x="2994.0662" y="-20.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="2994.0662" y="-8.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.78%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N50 -->
<g id="edge108" class="edge">
<title>N6&#45;&gt;N50</title>
<g id="a_edge108"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.01s)">
<path fill="none" stroke="#000000" d="M2369.5214,-792.6448C2570.8611,-781.9245 3031.0662,-750.1823 3031.0662,-684 3031.0662,-684 3031.0662,-684 3031.0662,-104 3031.0662,-83.0758 3021.7097,-61.4485 3012.407,-45.1164"/>
<polygon fill="#000000" stroke="#000000" points="3015.1669,-42.9152 3007.007,-36.1575 3009.1717,-46.5289 3015.1669,-42.9152"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.01s)">
<text text-anchor="middle" x="3047.7903" y="-371.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.stkbucket (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2659.3811,-702 2556.7512,-702 2556.7512,-666 2659.3811,-666 2659.3811,-702"/>
<text text-anchor="middle" x="2608.0662" y="-686.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="2608.0662" y="-674.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.78%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N51 -->
<g id="edge63" class="edge">
<title>N6&#45;&gt;N51</title>
<g id="a_edge63"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.03s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2369.3032,-767.5174C2421.886,-750.4228 2488.8971,-728.1536 2548.0662,-707 2549.307,-706.5564 2550.5611,-706.1047 2551.8246,-705.6467"/>
<polygon fill="#000000" stroke="#000000" points="2553.4537,-708.7768 2561.6303,-702.0392 2551.0368,-702.2073 2553.4537,-708.7768"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.03s)">
<text text-anchor="middle" x="2512.7903" y="-727.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.newobject (0.95s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2329.7035,-937 2224.4288,-937 2224.4288,-893 2329.7035,-893 2329.7035,-937"/>
<text text-anchor="middle" x="2277.0662" y="-923.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="2277.0662" y="-911.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.78%)</text>
<text text-anchor="middle" x="2277.0662" y="-899.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.95s(24.74%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N6 -->
<g id="edge10" class="edge">
<title>N7&#45;&gt;N6</title>
<g id="a_edge10"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (0.92s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M2277.0662,-892.8051C2277.0662,-879.9901 2277.0662,-863.318 2277.0662,-847.4821"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="2280.5663,-847.2454 2277.0662,-837.2454 2273.5663,-847.2454 2280.5663,-847.2454"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (0.92s)">
<text text-anchor="middle" x="2293.7903" y="-857.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.92s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.systemstack (0.72s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2162.0385,-611 1998.0938,-611 1998.0938,-549 2162.0385,-549 2162.0385,-611"/>
<text text-anchor="middle" x="2080.0662" y="-592.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2080.0662" y="-574.6" font-family="Times,serif" font-size="18.00" fill="#000000">0.16s(4.17%)</text>
<text text-anchor="middle" x="2080.0662" y="-556.6" font-family="Times,serif" font-size="18.00" fill="#000000">of 0.72s(18.75%)</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.deferproc.func1 (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2151.3976,-499 2008.7347,-499 2008.7347,-452 2151.3976,-452 2151.3976,-499"/>
<text text-anchor="middle" x="2080.0662" y="-484.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2080.0662" y="-471.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.04%)</text>
<text text-anchor="middle" x="2080.0662" y="-458.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.19s(4.95%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N19 -->
<g id="edge24" class="edge">
<title>N8&#45;&gt;N19</title>
<g id="a_edge24"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.19s)">
<path fill="none" stroke="#000000" d="M2080.0662,-548.9295C2080.0662,-536.5207 2080.0662,-522.1936 2080.0662,-509.5073"/>
<polygon fill="#000000" stroke="#000000" points="2083.5663,-509.3148 2080.0662,-499.3148 2076.5663,-509.3148 2083.5663,-509.3148"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.19s)">
<text text-anchor="middle" x="2096.7903" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.mach_semaphore_signal (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2911.4962,-497.5 2656.6361,-497.5 2656.6361,-453.5 2911.4962,-453.5 2911.4962,-497.5"/>
<text text-anchor="middle" x="2784.0662" y="-479.1" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2784.0662" y="-461.1" font-family="Times,serif" font-size="18.00" fill="#000000">0.18s(4.69%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N21 -->
<g id="edge26" class="edge">
<title>N8&#45;&gt;N21</title>
<g id="a_edge26"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.16s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2162.0721,-570.9987C2241.4988,-561.9857 2365.2607,-547.1638 2472.0662,-531 2533.5176,-521.7 2601.4894,-509.8005 2658.2607,-499.4066"/>
<polygon fill="#000000" stroke="#000000" points="2659.1583,-502.8003 2668.3616,-497.5515 2657.8939,-495.9155 2659.1583,-502.8003"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.16s)">
<text text-anchor="middle" x="2573.7903" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.deferreturn.func1 (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1991.0095,-497.5 1851.1228,-497.5 1851.1228,-453.5 1991.0095,-453.5 1991.0095,-497.5"/>
<text text-anchor="middle" x="1921.0662" y="-483.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="1921.0662" y="-471.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.78%)</text>
<text text-anchor="middle" x="1921.0662" y="-459.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.13s(3.39%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N25 -->
<g id="edge30" class="edge">
<title>N8&#45;&gt;N25</title>
<g id="a_edge30"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.13s)">
<path fill="none" stroke="#000000" d="M2032.7914,-548.9295C2010.7465,-534.4409 1984.7223,-517.3369 1963.339,-503.2831"/>
<polygon fill="#000000" stroke="#000000" points="1965.0665,-500.2303 1954.7875,-497.6628 1961.2219,-506.08 1965.0665,-500.2303"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.13s)">
<text text-anchor="middle" x="2022.7903" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2296.4061,-493.5 2169.7262,-493.5 2169.7262,-457.5 2296.4061,-457.5 2296.4061,-493.5"/>
<text text-anchor="middle" x="2233.0662" y="-477.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="2233.0662" y="-469.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N55 -->
<g id="edge91" class="edge">
<title>N8&#45;&gt;N55</title>
<g id="a_edge91"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.02s)">
<path fill="none" stroke="#000000" d="M2125.557,-548.9295C2148.7829,-533.066 2176.5992,-514.0673 2198.1182,-499.3697"/>
<polygon fill="#000000" stroke="#000000" points="2200.342,-502.0893 2206.6257,-493.559 2196.3939,-496.3089 2200.342,-502.0893"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.02s)">
<text text-anchor="middle" x="2187.7903" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.(*mheap).alloc.func1 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2638.8634,-493.5 2527.2689,-493.5 2527.2689,-457.5 2638.8634,-457.5 2638.8634,-493.5"/>
<text text-anchor="middle" x="2583.0662" y="-477.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="2583.0662" y="-469.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N60 -->
<g id="edge92" class="edge">
<title>N8&#45;&gt;N60</title>
<g id="a_edge92"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.02s)">
<path fill="none" stroke="#000000" d="M2162.0936,-568.9408C2250.7792,-556.034 2395.8533,-532.1522 2518.0662,-499 2520.69,-498.2882 2523.3585,-497.5184 2526.0433,-496.7063"/>
<polygon fill="#000000" stroke="#000000" points="2527.3151,-499.9747 2535.7847,-493.6095 2525.1943,-493.3037 2527.3151,-499.9747"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.02s)">
<text text-anchor="middle" x="2451.7903" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.mach_semaphore_timedwait (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2509.3437,-493.5 2314.7886,-493.5 2314.7886,-457.5 2509.3437,-457.5 2509.3437,-493.5"/>
<text text-anchor="middle" x="2412.0662" y="-477.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mach_semaphore_timedwait</text>
<text text-anchor="middle" x="2412.0662" y="-465.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N70 -->
<g id="edge93" class="edge">
<title>N8&#45;&gt;N70</title>
<g id="a_edge93"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.02s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2162.1336,-554.1685C2218.5337,-536.4161 2292.4758,-513.1422 2345.2721,-496.524"/>
<polygon fill="#000000" stroke="#000000" points="2346.3875,-499.8423 2354.8753,-493.5014 2344.2858,-493.1653 2346.3875,-499.8423"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.02s)">
<text text-anchor="middle" x="2292.7903" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N7 -->
<g id="edge12" class="edge">
<title>N9&#45;&gt;N7</title>
<g id="a_edge12"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.54s)">
<path fill="none" stroke="#000000" d="M2277.0662,-1206.3238C2277.0662,-1150.5987 2277.0662,-1011.0813 2277.0662,-947.4946"/>
<polygon fill="#000000" stroke="#000000" points="2280.5663,-947.2521 2277.0662,-937.2521 2273.5663,-947.2522 2280.5663,-947.2521"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.54s)">
<text text-anchor="middle" x="2293.7903" y="-1066.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N7 -->
<g id="edge13" class="edge">
<title>N10&#45;&gt;N7</title>
<g id="a_edge13"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.40s)">
<path fill="none" stroke="#000000" d="M1949.2936,-1013.3006C2022.2512,-1005.2792 2140.5479,-990.4865 2182.0662,-975 2202.6107,-967.3368 2223.4293,-954.8354 2240.3204,-943.222"/>
<polygon fill="#000000" stroke="#000000" points="2242.6185,-945.8841 2248.7731,-937.2602 2238.5838,-940.1638 2242.6185,-945.8841"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.40s)">
<text text-anchor="middle" x="2226.7903" y="-963.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.typedmemmove (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="940.4178,-943 767.7145,-943 767.7145,-887 940.4178,-887 940.4178,-943"/>
<text text-anchor="middle" x="854.0662" y="-926.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="854.0662" y="-910.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.12s(3.12%)</text>
<text text-anchor="middle" x="854.0662" y="-894.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.25s(6.51%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N16 -->
<g id="edge37" class="edge">
<title>N10&#45;&gt;N16</title>
<g id="a_edge37"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.09s)">
<path fill="none" stroke="#000000" d="M1828.9465,-1013.43C1656.925,-996.0616 1161.6091,-946.0514 950.8527,-924.7722"/>
<polygon fill="#000000" stroke="#000000" points="951.0306,-921.2724 940.7295,-923.7501 950.3273,-928.237 951.0306,-921.2724"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.09s)">
<text text-anchor="middle" x="1450.7903" y="-963.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.mapassign1 (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="630.6326,-1253.5 509.4997,-1253.5 509.4997,-1206.5 630.6326,-1206.5 630.6326,-1253.5"/>
<text text-anchor="middle" x="570.0662" y="-1239.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="570.0662" y="-1226.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.04%)</text>
<text text-anchor="middle" x="570.0662" y="-1213.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.19s(4.95%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N20 -->
<g id="edge22" class="edge">
<title>N11&#45;&gt;N20</title>
<g id="a_edge22"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.19s)">
<path fill="none" stroke="#000000" d="M613.2681,-1313.751C605.3359,-1298.3737 595.3113,-1278.9401 586.9159,-1262.6649"/>
<polygon fill="#000000" stroke="#000000" points="589.8842,-1260.7845 582.1893,-1253.5018 583.6632,-1263.9936 589.8842,-1260.7845"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.19s)">
<text text-anchor="middle" x="617.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.assertI2T (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="908.1199,-1043 800.0124,-1043 800.0124,-996 908.1199,-996 908.1199,-1043"/>
<text text-anchor="middle" x="854.0662" y="-1028.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="854.0662" y="-1015.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.04%)</text>
<text text-anchor="middle" x="854.0662" y="-1002.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.12s(3.12%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N29 -->
<g id="edge52" class="edge">
<title>N11&#45;&gt;N29</title>
<g id="a_edge52"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M633.8757,-1313.8518C643.4694,-1278.2233 661.6321,-1217.7184 678.0662,-1202 704.5269,-1176.6915 811.4092,-1179.9471 835.0662,-1152 858.0663,-1124.8288 860.3437,-1082.7313 858.4632,-1053.3002"/>
<polygon fill="#000000" stroke="#000000" points="861.9302,-1052.7566 857.613,-1043.0813 854.9543,-1053.3371 861.9302,-1052.7566"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="814.7903" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="main.(*machine).popValue (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="865.5106,-1249 686.6218,-1249 686.6218,-1211 865.5106,-1211 865.5106,-1249"/>
<text text-anchor="middle" x="776.0662" y="-1233" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="776.0662" y="-1218" font-family="Times,serif" font-size="15.00" fill="#000000">0.08s(2.08%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N35 -->
<g id="edge69" class="edge">
<title>N11&#45;&gt;N35</title>
<g id="a_edge69"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M663.1349,-1313.751C687.0674,-1296.0024 718.2863,-1272.8502 741.8333,-1255.3875"/>
<polygon fill="#000000" stroke="#000000" points="744.1863,-1258 750.1336,-1249.2318 740.0165,-1252.3774 744.1863,-1258"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="727.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="main.(*Integer).Add (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1101.4786,-1250.5 994.6537,-1250.5 994.6537,-1209.5 1101.4786,-1209.5 1101.4786,-1250.5"/>
<text text-anchor="middle" x="1048.0662" y="-1237.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="1048.0662" y="-1226.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.26%)</text>
<text text-anchor="middle" x="1048.0662" y="-1215.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(3.12%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N27 -->
<g id="edge31" class="edge">
<title>N12&#45;&gt;N27</title>
<g id="a_edge31"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.12s)">
<path fill="none" stroke="#000000" d="M841.6353,-1319.9999C851.0173,-1305.3492 865.6175,-1286.4478 883.6179,-1276 923.601,-1252.793 941.8881,-1271.6203 986.0662,-1258 989.6038,-1256.9093 993.2045,-1255.666 996.7999,-1254.3238"/>
<polygon fill="#000000" stroke="#000000" points="998.25,-1257.514 1006.2577,-1250.5766 995.6716,-1251.0062 998.25,-1257.514"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.12s)">
<text text-anchor="middle" x="900.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.assertI2I (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1216.7055,-1252 1119.4268,-1252 1119.4268,-1208 1216.7055,-1208 1216.7055,-1252"/>
<text text-anchor="middle" x="1168.0662" y="-1238.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="1168.0662" y="-1226.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.52%)</text>
<text text-anchor="middle" x="1168.0662" y="-1214.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.12s(3.12%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N28 -->
<g id="edge42" class="edge">
<title>N12&#45;&gt;N28</title>
<g id="a_edge42"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.07s)">
<path fill="none" stroke="#000000" d="M865.4125,-1319.9864C874.5063,-1315.4319 884.446,-1311.0561 894.0662,-1308 946.722,-1291.2725 963.3792,-1303.0444 1017.0662,-1290 1059.5421,-1279.6795 1069.6464,-1274.6421 1110.0662,-1258 1111.4555,-1257.428 1112.8588,-1256.8388 1114.2708,-1256.236"/>
<polygon fill="#000000" stroke="#000000" points="1115.9228,-1259.3327 1123.659,-1252.0938 1113.0971,-1252.9283 1115.9228,-1259.3327"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.07s)">
<text text-anchor="middle" x="1081.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N35 -->
<g id="edge100" class="edge">
<title>N12&#45;&gt;N35</title>
<g id="a_edge100"><a xlink:title="main.executeSubtract &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M799.2216,-1319.7689C789.8353,-1311.6948 780.6717,-1301.5801 775.6179,-1290 771.4741,-1280.5048 770.6176,-1269.3318 771.1196,-1259.2176"/>
<polygon fill="#000000" stroke="#000000" points="774.6124,-1259.4567 772.0537,-1249.1755 767.6425,-1258.8083 774.6124,-1259.4567"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="792.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.convI2I (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="976.7211,-1252 883.4112,-1252 883.4112,-1208 976.7211,-1208 976.7211,-1252"/>
<text text-anchor="middle" x="930.0662" y="-1238.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="930.0662" y="-1226.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.52%)</text>
<text text-anchor="middle" x="930.0662" y="-1214.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.08s(2.08%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N36 -->
<g id="edge50" class="edge">
<title>N12&#45;&gt;N36</title>
<g id="a_edge50"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.05s)">
<path fill="none" stroke="#000000" d="M825.169,-1319.8733C823.1546,-1306.272 822.9925,-1288.6921 831.6179,-1276 843.136,-1259.0514 855.4598,-1266.5864 874.0662,-1258 875.0778,-1257.5332 876.0982,-1257.0588 877.125,-1256.5783"/>
<polygon fill="#000000" stroke="#000000" points="878.9543,-1259.5839 886.4778,-1252.1241 875.9444,-1253.264 878.9543,-1259.5839"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.05s)">
<text text-anchor="middle" x="848.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.mapaccess2_faststr (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="409.8398,-1258 216.2925,-1258 216.2925,-1202 409.8398,-1202 409.8398,-1258"/>
<text text-anchor="middle" x="313.0662" y="-1241.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="313.0662" y="-1225.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.11s(2.86%)</text>
<text text-anchor="middle" x="313.0662" y="-1209.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.14s(3.65%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N24 -->
<g id="edge27" class="edge">
<title>N13&#45;&gt;N24</title>
<g id="a_edge27"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.14s)">
<path fill="none" stroke="#000000" d="M313.0662,-1313.751C313.0662,-1300.0504 313.0662,-1283.1298 313.0662,-1268.0919"/>
<polygon fill="#000000" stroke="#000000" points="316.5663,-1268.0445 313.0662,-1258.0445 309.5663,-1268.0446 316.5663,-1268.0445"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.14s)">
<text text-anchor="middle" x="329.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N29 -->
<g id="edge70" class="edge">
<title>N13&#45;&gt;N29</title>
<g id="a_edge70"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M346.4429,-1313.9645C361.2722,-1302.2478 378.9785,-1288.3574 395.0662,-1276 405.6401,-1267.8778 408.9934,-1266.736 419.0662,-1258 495.989,-1191.2851 493.1765,-1147.4141 581.0662,-1096 646.496,-1057.7246 732.0007,-1037.8155 789.7486,-1028.0268"/>
<polygon fill="#000000" stroke="#000000" points="790.5384,-1031.4441 799.8398,-1026.3713 789.4051,-1024.5364 790.5384,-1031.4441"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="513.7903" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N35 -->
<g id="edge58" class="edge">
<title>N13&#45;&gt;N35</title>
<g id="a_edge58"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M354.7309,-1313.8805C382.3701,-1296.2468 413.7359,-1276.295 414.6179,-1276 509.9454,-1244.1165 540.5507,-1272.1618 640.0662,-1258 653.6054,-1256.0733 667.8226,-1253.6254 681.7525,-1250.9821"/>
<polygon fill="#000000" stroke="#000000" points="682.6804,-1254.3675 691.831,-1249.0274 681.3475,-1247.4955 682.6804,-1254.3675"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="431.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N8 -->
<g id="edge29" class="edge">
<title>N14&#45;&gt;N8</title>
<g id="a_edge29"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.13s)">
<path fill="none" stroke="#000000" d="M1382.2896,-1312.3935C1387.5601,-1310.6955 1392.8625,-1309.1944 1398.0662,-1308 1526.0921,-1278.6151 1566.3123,-1324.4613 1693.0662,-1290 1723.3711,-1281.7608 1732.5032,-1278.7619 1756.0662,-1258 1778.6336,-1238.1153 1768.1311,-1217.2337 1794.0662,-1202 1833.4979,-1178.8386 1965.8829,-1215.4671 1999.0662,-1184 2035.872,-1149.0977 2015.0662,-1121.7232 2015.0662,-1071 2015.0662,-1071 2015.0662,-1071 2015.0662,-684 2015.0662,-660.1813 2027.4781,-637.3201 2041.4544,-619.128"/>
<polygon fill="#000000" stroke="#000000" points="2044.3731,-621.0852 2047.947,-611.1113 2038.9334,-616.6795 2044.3731,-621.0852"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.13s)">
<text text-anchor="middle" x="2031.7903" y="-963.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.memmove (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1441.8712,-395.5 1304.2611,-395.5 1304.2611,-355.5 1441.8712,-355.5 1441.8712,-395.5"/>
<text text-anchor="middle" x="1373.0662" y="-378.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="1373.0662" y="-362.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.10s(2.60%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N32 -->
<g id="edge103" class="edge">
<title>N14&#45;&gt;N32</title>
<g id="a_edge103"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.01s)">
<path fill="none" stroke="#000000" d="M1368.5188,-1312.3809C1429.6397,-1279.2217 1537.8737,-1225.6334 1638.0662,-1202 1674.3464,-1193.4422 1947.425,-1211.0559 1973.0662,-1184 1979.3156,-1177.4058 2032.2287,-1158.4212 1958.0662,-993 1831.6034,-710.9221 1520.8078,-477.2736 1411.6941,-401.4595"/>
<polygon fill="#000000" stroke="#000000" points="1413.4982,-398.4519 1403.2807,-395.6495 1409.5205,-404.212 1413.4982,-398.4519"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.01s)">
<text text-anchor="middle" x="1905.7903" y="-857.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N48 -->
<g id="edge82" class="edge">
<title>N14&#45;&gt;N48</title>
<g id="a_edge82"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.jmpdefer (0.02s)">
<path fill="none" stroke="#000000" d="M1382.3105,-1312.4828C1387.5762,-1310.7648 1392.8719,-1309.2347 1398.0662,-1308 1449.0216,-1295.888 1585.1325,-1311.1075 1633.0662,-1290 1650.1499,-1282.4772 1665.5451,-1268.405 1676.9528,-1255.7788"/>
<polygon fill="#000000" stroke="#000000" points="1679.6321,-1258.0314 1683.5199,-1248.1756 1674.3345,-1253.4557 1679.6321,-1258.0314"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.jmpdefer (0.02s)">
<text text-anchor="middle" x="1672.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.getcallersp (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1911.3634,-1248 1802.7689,-1248 1802.7689,-1212 1911.3634,-1212 1911.3634,-1248"/>
<text text-anchor="middle" x="1857.0662" y="-1232.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.getcallersp</text>
<text text-anchor="middle" x="1857.0662" y="-1220.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N68 -->
<g id="edge102" class="edge">
<title>N14&#45;&gt;N68</title>
<g id="a_edge102"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.getcallersp (0.01s)">
<path fill="none" stroke="#000000" d="M1381.8307,-1312.4477C1387.25,-1310.7107 1392.7089,-1309.1876 1398.0662,-1308 1482.9857,-1289.1756 1708.4358,-1322.6255 1789.0662,-1290 1807.0746,-1282.7132 1823.5208,-1268.5117 1835.727,-1255.754"/>
<polygon fill="#000000" stroke="#000000" points="1838.5875,-1257.8125 1842.7552,-1248.0719 1833.4228,-1253.0875 1838.5875,-1257.8125"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.getcallersp (0.01s)">
<text text-anchor="middle" x="1829.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N8 -->
<g id="edge23" class="edge">
<title>N15&#45;&gt;N8</title>
<g id="a_edge23"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.19s)">
<path fill="none" stroke="#000000" d="M2099.6643,-1316.6794C2120.3367,-1296.071 2145.0662,-1264.2586 2145.0662,-1230 2145.0662,-1230 2145.0662,-1230 2145.0662,-684 2145.0662,-660.1813 2132.6542,-637.3201 2118.678,-619.128"/>
<polygon fill="#000000" stroke="#000000" points="2121.1989,-616.6795 2112.1853,-611.1113 2115.7592,-621.0852 2121.1989,-616.6795"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.19s)">
<text text-anchor="middle" x="2161.7903" y="-963.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N68 -->
<g id="edge101" class="edge">
<title>N15&#45;&gt;N68</title>
<g id="a_edge101"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallersp (0.01s)">
<path fill="none" stroke="#000000" d="M2030.1796,-1316.8767C2022.9662,-1313.4966 2015.4203,-1310.3689 2008.0662,-1308 1958.2189,-1291.9435 1934.8155,-1319.6062 1891.6179,-1290 1880.3084,-1282.2488 1872.2177,-1269.4936 1866.7227,-1257.7323"/>
<polygon fill="#000000" stroke="#000000" points="1869.8192,-1256.068 1862.7037,-1248.2181 1863.3709,-1258.792 1869.8192,-1256.068"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallersp (0.01s)">
<text text-anchor="middle" x="1908.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N32 -->
<g id="edge43" class="edge">
<title>N16&#45;&gt;N32</title>
<g id="a_edge43"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.07s)">
<path fill="none" stroke="#000000" d="M940.541,-900.3732C1034.7071,-881.9306 1172.0662,-846.5384 1172.0662,-797 1172.0662,-797 1172.0662,-797 1172.0662,-475.5 1172.0662,-418.4171 1237.8522,-393.9186 1294.1524,-383.4046"/>
<polygon fill="#000000" stroke="#000000" points="1294.924,-386.823 1304.1746,-381.658 1293.7221,-379.9269 1294.924,-386.823"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.07s)">
<text text-anchor="middle" x="1188.7903" y="-631.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.heapBitsBulkBarrier (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="943.4734,-815 764.6589,-815 764.6589,-779 943.4734,-779 943.4734,-815"/>
<text text-anchor="middle" x="854.0662" y="-799.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.heapBitsBulkBarrier</text>
<text text-anchor="middle" x="854.0662" y="-785.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.56%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N39 -->
<g id="edge48" class="edge">
<title>N16&#45;&gt;N39</title>
<g id="a_edge48"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.06s)">
<path fill="none" stroke="#000000" d="M854.0662,-886.7361C854.0662,-868.1554 854.0662,-843.9321 854.0662,-825.3367"/>
<polygon fill="#000000" stroke="#000000" points="857.5663,-825.1235 854.0662,-815.1235 850.5663,-825.1236 857.5663,-825.1235"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.06s)">
<text text-anchor="middle" x="870.7903" y="-857.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N28 -->
<g id="edge49" class="edge">
<title>N17&#45;&gt;N28</title>
<g id="a_edge49"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.05s)">
<path fill="none" stroke="#000000" d="M1007.506,-1318.4727C1016.1621,-1314.6161 1025.2918,-1310.9126 1034.0662,-1308 1071.1281,-1295.6976 1086.799,-1310.4508 1120.0662,-1290 1131.9027,-1282.7236 1142.0533,-1271.436 1149.9305,-1260.6057"/>
<polygon fill="#000000" stroke="#000000" points="1152.9898,-1262.3327 1155.7492,-1252.1035 1147.2131,-1258.3792 1152.9898,-1262.3327"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.05s)">
<text text-anchor="middle" x="1153.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="main.Integer.Multiply (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1347.1125,-1250.5 1235.0198,-1250.5 1235.0198,-1209.5 1347.1125,-1209.5 1347.1125,-1250.5"/>
<text text-anchor="middle" x="1291.0662" y="-1237.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="1291.0662" y="-1226.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.26%)</text>
<text text-anchor="middle" x="1291.0662" y="-1215.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(2.34%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N34 -->
<g id="edge36" class="edge">
<title>N17&#45;&gt;N34</title>
<g id="a_edge36"><a xlink:title="main.executeMultiply ... main.Integer.Multiply (0.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1006.2059,-1318.4164C1015.2063,-1314.4201 1024.7982,-1310.6778 1034.0662,-1308 1094.3353,-1290.5864 1114.1497,-1308.5909 1174.0662,-1290 1200.3925,-1281.8315 1227.914,-1268.0199 1249.6461,-1255.7061"/>
<polygon fill="#000000" stroke="#000000" points="1251.6774,-1258.5746 1258.585,-1250.5412 1248.1754,-1252.5136 1251.6774,-1258.5746"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.executeMultiply ... main.Integer.Multiply (0.09s)">
<text text-anchor="middle" x="1224.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N35 -->
<g id="edge72" class="edge">
<title>N17&#45;&gt;N35</title>
<g id="a_edge72"><a xlink:title="main.executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M954.0586,-1318.2135C946.7487,-1304.2624 935.5847,-1286.9229 921.0662,-1276 914.922,-1271.3775 884.363,-1261.4418 852.8729,-1251.9832"/>
<polygon fill="#000000" stroke="#000000" points="853.6793,-1248.5715 843.0962,-1249.0696 851.68,-1255.2799 853.6793,-1248.5715"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="951.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N36 -->
<g id="edge62" class="edge">
<title>N17&#45;&gt;N36</title>
<g id="a_edge62"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<path fill="none" stroke="#000000" d="M974.8171,-1318.3587C979.4841,-1305.6033 982.7341,-1289.4783 977.0662,-1276 974.6264,-1270.1982 971.058,-1264.7622 966.9603,-1259.8033"/>
<polygon fill="#000000" stroke="#000000" points="969.5162,-1257.412 960.1713,-1252.4196 964.3633,-1262.1499 969.5162,-1257.412"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<text text-anchor="middle" x="996.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.newdefer (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2148.428,-396.5 2011.7044,-396.5 2011.7044,-354.5 2148.428,-354.5 2148.428,-396.5"/>
<text text-anchor="middle" x="2080.0662" y="-378.9" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2080.0662" y="-361.9" font-family="Times,serif" font-size="17.00" fill="#000000">0.13s(3.39%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N26 -->
<g id="edge28" class="edge">
<title>N19&#45;&gt;N26</title>
<g id="a_edge28"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.13s)">
<path fill="none" stroke="#000000" d="M2080.0662,-451.8014C2080.0662,-438.3234 2080.0662,-421.2809 2080.0662,-406.723"/>
<polygon fill="#000000" stroke="#000000" points="2083.5663,-406.6482 2080.0662,-396.6482 2076.5663,-406.6482 2083.5663,-406.6482"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.13s)">
<text text-anchor="middle" x="2096.7903" y="-422.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N32 -->
<g id="edge81" class="edge">
<title>N19&#45;&gt;N32</title>
<g id="a_edge81"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<path fill="none" stroke="#000000" d="M2008.6589,-454.0154C2005.7642,-453.3059 2002.8918,-452.6305 2000.0662,-452 1948.9537,-440.5951 1934.6935,-445.569 1883.6179,-434 1862.5466,-429.2272 1858.2665,-424.1625 1837.0662,-420 1703.5042,-393.7764 1545.1538,-382.8021 1452.2413,-378.3591"/>
<polygon fill="#000000" stroke="#000000" points="1452.2245,-374.8546 1442.0728,-377.8864 1451.8994,-381.847 1452.2245,-374.8546"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<text text-anchor="middle" x="1900.7903" y="-422.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N16 -->
<g id="edge40" class="edge">
<title>N20&#45;&gt;N16</title>
<g id="a_edge40"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.08s)">
<path fill="none" stroke="#000000" d="M566.1227,-1206.36C562.6541,-1178.0456 560.882,-1130.1648 581.0662,-1096 623.1786,-1024.7185 705.6882,-975.9729 769.026,-947.1852"/>
<polygon fill="#000000" stroke="#000000" points="770.5177,-950.3523 778.2247,-943.0823 767.6662,-943.9594 770.5177,-950.3523"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.08s)">
<text text-anchor="middle" x="619.7903" y="-1066.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.strequal (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="826.4027,-1142 725.7296,-1142 725.7296,-1106 826.4027,-1106 826.4027,-1142"/>
<text text-anchor="middle" x="776.0662" y="-1126.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.strequal</text>
<text text-anchor="middle" x="776.0662" y="-1113.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.04%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N44 -->
<g id="edge54" class="edge">
<title>N20&#45;&gt;N44</title>
<g id="a_edge54"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.strequal (0.04s)">
<path fill="none" stroke="#000000" d="M615.7842,-1206.4752C650.347,-1188.6904 697.5275,-1164.4131 731.7441,-1146.8065"/>
<polygon fill="#000000" stroke="#000000" points="733.7395,-1149.716 741.0299,-1142.0284 730.5366,-1143.4917 733.7395,-1149.716"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.strequal (0.04s)">
<text text-anchor="middle" x="702.7903" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.aeshashbody (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="707.7093,-1142 590.423,-1142 590.423,-1106 707.7093,-1106 707.7093,-1142"/>
<text text-anchor="middle" x="649.0662" y="-1126.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="649.0662" y="-1114.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.78%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N45 -->
<g id="edge65" class="edge">
<title>N20&#45;&gt;N45</title>
<g id="a_edge65"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.03s)">
<path fill="none" stroke="#000000" d="M587.5988,-1206.4752C599.9085,-1189.9584 616.3916,-1167.8419 629.19,-1150.6693"/>
<polygon fill="#000000" stroke="#000000" points="632.3358,-1152.3053 635.5052,-1142.1957 626.7231,-1148.1223 632.3358,-1152.3053"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.03s)">
<text text-anchor="middle" x="631.7903" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime._System (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2116.8361,-702 2043.2963,-702 2043.2963,-666 2116.8361,-666 2116.8361,-702"/>
<text text-anchor="middle" x="2080.0662" y="-685.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="2080.0662" y="-677.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.16s(4.17%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N8 -->
<g id="edge25" class="edge">
<title>N22&#45;&gt;N8</title>
<g id="a_edge25"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.16s)">
<path fill="none" stroke="#000000" d="M2080.0662,-665.8846C2080.0662,-653.6851 2080.0662,-637.0785 2080.0662,-621.7185"/>
<polygon fill="#000000" stroke="#000000" points="2083.5663,-621.3532 2080.0662,-611.3533 2076.5663,-621.3533 2083.5663,-621.3532"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.16s)">
<text text-anchor="middle" x="2096.7903" y="-631.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.getitab (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1076.6061,-1152 957.5262,-1152 957.5262,-1096 1076.6061,-1096 1076.6061,-1152"/>
<text text-anchor="middle" x="1017.0662" y="-1135.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="1017.0662" y="-1119.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.10s(2.60%)</text>
<text text-anchor="middle" x="1017.0662" y="-1103.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.16s(4.17%)</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime/internal/atomic.Loadp (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1114.012,-1037.5 926.1203,-1037.5 926.1203,-1001.5 1114.012,-1001.5 1114.012,-1037.5"/>
<text text-anchor="middle" x="1020.0662" y="-1022.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime/internal/atomic.Loadp</text>
<text text-anchor="middle" x="1020.0662" y="-1008.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.56%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N40 -->
<g id="edge47" class="edge">
<title>N23&#45;&gt;N40</title>
<g id="a_edge47"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.06s)">
<path fill="none" stroke="#000000" d="M1017.8701,-1095.9959C1018.2975,-1081.1092 1018.8217,-1062.8486 1019.2508,-1047.9024"/>
<polygon fill="#000000" stroke="#000000" points="1022.7552,-1047.797 1019.5437,-1037.7006 1015.758,-1047.5961 1022.7552,-1047.797"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.06s)">
<text text-anchor="middle" x="1035.7903" y="-1066.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N42 -->
<g id="edge64" class="edge">
<title>N24&#45;&gt;N42</title>
<g id="a_edge64"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.03s)">
<path fill="none" stroke="#000000" d="M328.7222,-1201.8722C337.4297,-1186.2282 348.2184,-1166.8452 356.8537,-1151.3309"/>
<polygon fill="#000000" stroke="#000000" points="360.109,-1152.6789 361.9143,-1142.239 353.9926,-1149.2745 360.109,-1152.6789"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.03s)">
<text text-anchor="middle" x="363.7903" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.freedefer (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1981.0837,-402 1861.0486,-402 1861.0486,-349 1981.0837,-349 1981.0837,-402"/>
<text text-anchor="middle" x="1921.0662" y="-386" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="1921.0662" y="-371" font-family="Times,serif" font-size="15.00" fill="#000000">0.08s(2.08%)</text>
<text text-anchor="middle" x="1921.0662" y="-356" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.10s(2.60%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N31 -->
<g id="edge34" class="edge">
<title>N25&#45;&gt;N31</title>
<g id="a_edge34"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.10s)">
<path fill="none" stroke="#000000" d="M1921.0662,-453.3068C1921.0662,-441.2934 1921.0662,-426.1397 1921.0662,-412.4044"/>
<polygon fill="#000000" stroke="#000000" points="1924.5663,-412.253 1921.0662,-402.253 1917.5663,-412.253 1924.5663,-412.253"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.10s)">
<text text-anchor="middle" x="1937.7903" y="-422.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="main.Integer.Add (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1257.5501,-1144.5 1164.5823,-1144.5 1164.5823,-1103.5 1257.5501,-1103.5 1257.5501,-1144.5"/>
<text text-anchor="middle" x="1211.0662" y="-1131.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="1211.0662" y="-1120.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.26%)</text>
<text text-anchor="middle" x="1211.0662" y="-1109.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.11s(2.86%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N30 -->
<g id="edge32" class="edge">
<title>N27&#45;&gt;N30</title>
<g id="a_edge32"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.11s)">
<path fill="none" stroke="#000000" d="M1079.8812,-1209.3105C1105.9096,-1192.384 1142.871,-1168.3477 1170.9309,-1150.1002"/>
<polygon fill="#000000" stroke="#000000" points="1172.8562,-1153.0232 1179.3314,-1144.6373 1169.04,-1147.1549 1172.8562,-1153.0232"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.11s)">
<text text-anchor="middle" x="1156.5339" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N23 -->
<g id="edge33" class="edge">
<title>N28&#45;&gt;N23</title>
<g id="a_edge33"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.10s)">
<path fill="none" stroke="#000000" d="M1122.921,-1207.8559C1118.5935,-1205.8389 1114.2572,-1203.8579 1110.0662,-1202 1090.5817,-1193.3625 1082.7433,-1196.6875 1065.6179,-1184 1056.6326,-1177.3431 1048.3459,-1168.6502 1041.2573,-1159.9562"/>
<polygon fill="#000000" stroke="#000000" points="1043.9979,-1157.7789 1035.0985,-1152.03 1038.4704,-1162.0739 1043.9979,-1157.7789"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.10s)">
<text text-anchor="middle" x="1082.7903" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N16 -->
<g id="edge39" class="edge">
<title>N29&#45;&gt;N16</title>
<g id="a_edge39"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.08s)">
<path fill="none" stroke="#000000" d="M854.0662,-995.7873C854.0662,-983.1885 854.0662,-967.3964 854.0662,-953.1246"/>
<polygon fill="#000000" stroke="#000000" points="857.5663,-953.0685 854.0662,-943.0685 850.5663,-953.0685 857.5663,-953.0685"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.08s)">
<text text-anchor="middle" x="870.7903" y="-963.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N10 -->
<g id="edge45" class="edge">
<title>N30&#45;&gt;N10</title>
<g id="a_edge45"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.06s)">
<path fill="none" stroke="#000000" d="M1253.0064,-1103.4454C1259.0065,-1100.7936 1265.1501,-1098.2296 1271.0662,-1096 1318.5316,-1078.1117 1330.7661,-1073.3677 1380.6179,-1064 1535.1681,-1034.9582 1719.7885,-1024.7964 1818.5134,-1021.2948"/>
<polygon fill="#000000" stroke="#000000" points="1818.7924,-1024.7874 1828.6669,-1020.9475 1818.5531,-1017.7915 1818.7924,-1024.7874"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.06s)">
<text text-anchor="middle" x="1397.7903" y="-1066.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N29 -->
<g id="edge59" class="edge">
<title>N30&#45;&gt;N29</title>
<g id="a_edge59"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1189.115,-1103.2525C1173.1977,-1089.5582 1150.4421,-1072.6092 1127.0662,-1064 1039.1627,-1031.6258 1008.0157,-1068.434 917.0662,-1046 916.8502,-1045.9467 916.6339,-1045.8928 916.4175,-1045.8382"/>
<polygon fill="#000000" stroke="#000000" points="917.1713,-1042.4129 906.5927,-1043.0003 915.2287,-1049.138 917.1713,-1042.4129"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="1171.7903" y="-1066.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.assertI2T2 (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1322.5388,-1037.5 1215.5935,-1037.5 1215.5935,-1001.5 1322.5388,-1001.5 1322.5388,-1037.5"/>
<text text-anchor="middle" x="1269.0662" y="-1021.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2T2</text>
<text text-anchor="middle" x="1269.0662" y="-1009.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.78%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N46 -->
<g id="edge99" class="edge">
<title>N30&#45;&gt;N46</title>
<g id="a_edge99"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T2 (0.01s)">
<path fill="none" stroke="#000000" d="M1222.5251,-1103.3542C1231.5775,-1087.0442 1244.2826,-1064.1531 1254.1316,-1046.408"/>
<polygon fill="#000000" stroke="#000000" points="1257.1945,-1048.1017 1258.9871,-1037.6596 1251.074,-1044.7046 1257.1945,-1048.1017"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T2 (0.01s)">
<text text-anchor="middle" x="1260.7903" y="-1066.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.duffzero (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1969.3204,-296.5 1872.8119,-296.5 1872.8119,-260.5 1969.3204,-260.5 1969.3204,-296.5"/>
<text text-anchor="middle" x="1921.0662" y="-280.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="1921.0662" y="-268.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N63 -->
<g id="edge83" class="edge">
<title>N31&#45;&gt;N63</title>
<g id="a_edge83"><a xlink:title="runtime.freedefer &#45;&gt; runtime.duffzero (0.02s)">
<path fill="none" stroke="#000000" d="M1921.0662,-348.9943C1921.0662,-335.893 1921.0662,-320.075 1921.0662,-306.7453"/>
<polygon fill="#000000" stroke="#000000" points="1924.5663,-306.688 1921.0662,-296.688 1917.5663,-306.6881 1924.5663,-306.688"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.freedefer &#45;&gt; runtime.duffzero (0.02s)">
<text text-anchor="middle" x="1937.7903" y="-319.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N10 -->
<g id="edge44" class="edge">
<title>N33&#45;&gt;N10</title>
<g id="a_edge44"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.06s)">
<path fill="none" stroke="#000000" d="M1198.8138,-1318.3708C1242.9018,-1302.2957 1303.4676,-1279.6522 1356.0662,-1258 1526.5154,-1187.8347 1723.7156,-1097.0269 1823.6834,-1050.2943"/>
<polygon fill="#000000" stroke="#000000" points="1825.1836,-1053.4566 1832.7578,-1046.0484 1822.217,-1047.1163 1825.1836,-1053.4566"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.06s)">
<text text-anchor="middle" x="1577.7903" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N10 -->
<g id="edge61" class="edge">
<title>N34&#45;&gt;N10</title>
<g id="a_edge61"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.03s)">
<path fill="none" stroke="#000000" d="M1314.7329,-1209.2218C1357.5405,-1172.9406 1452.1368,-1098.6109 1546.0662,-1064 1594.5921,-1046.1192 1733.0999,-1032.1544 1818.5334,-1024.9308"/>
<polygon fill="#000000" stroke="#000000" points="1819.0054,-1028.4037 1828.6794,-1024.0835 1818.4228,-1021.428 1819.0054,-1028.4037"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.03s)">
<text text-anchor="middle" x="1491.7903" y="-1119.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N29 -->
<g id="edge60" class="edge">
<title>N34&#45;&gt;N29</title>
<g id="a_edge60"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1247.1613,-1209.4997C1240.1996,-1206.713 1233.006,-1204.0959 1226.0662,-1202 1183.2546,-1189.0705 1162.469,-1211.3247 1127.0662,-1184 1078.0093,-1146.1368 1111.2256,-1092.2424 1056.0662,-1064 1000.6181,-1035.6098 977.2101,-1062.2235 917.0662,-1046 916.9659,-1045.973 916.8656,-1045.9458 916.7653,-1045.9185"/>
<polygon fill="#000000" stroke="#000000" points="917.9221,-1042.612 907.3368,-1043.0593 915.8907,-1049.3108 917.9221,-1042.612"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="1119.7903" y="-1119.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N46 -->
<g id="edge71" class="edge">
<title>N34&#45;&gt;N46</title>
<g id="a_edge71"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T2 (0.02s)">
<path fill="none" stroke="#000000" d="M1290.5635,-1209.4484C1289.5726,-1177.9782 1286.7483,-1116.0241 1279.0662,-1064 1278.2767,-1058.6537 1277.1974,-1052.9952 1276.039,-1047.5709"/>
<polygon fill="#000000" stroke="#000000" points="1279.3962,-1046.5492 1273.769,-1037.5722 1272.5699,-1048.099 1279.3962,-1046.5492"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T2 (0.02s)">
<text text-anchor="middle" x="1304.7903" y="-1119.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N23 -->
<g id="edge46" class="edge">
<title>N36&#45;&gt;N23</title>
<g id="a_edge46"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.06s)">
<path fill="none" stroke="#000000" d="M948.3042,-1207.7789C959.5907,-1194.0276 974.3494,-1176.0458 987.2988,-1160.2683"/>
<polygon fill="#000000" stroke="#000000" points="990.2388,-1162.203 993.8776,-1152.2527 984.8279,-1157.762 990.2388,-1162.203"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.06s)">
<text text-anchor="middle" x="995.7903" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N8 -->
<g id="edge53" class="edge">
<title>N41&#45;&gt;N8</title>
<g id="a_edge53"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.04s)">
<path fill="none" stroke="#000000" d="M2398.8836,-663.4576C2395.9065,-662.6208 2392.9577,-661.7985 2390.0662,-661 2316.7753,-640.7602 2233.3726,-619.0418 2171.5505,-603.1939"/>
<polygon fill="#000000" stroke="#000000" points="2172.3743,-599.792 2161.8186,-600.702 2170.6378,-606.5732 2172.3743,-599.792"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.04s)">
<text text-anchor="middle" x="2338.7903" y="-631.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.morestack (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2945.8244,-702 2870.308,-702 2870.308,-666 2945.8244,-666 2945.8244,-702"/>
<text text-anchor="middle" x="2908.0662" y="-685.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="2908.0662" y="-677.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(1.04%)</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.findrunnable (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3002.8871,-598 2919.2452,-598 2919.2452,-562 3002.8871,-562 3002.8871,-598"/>
<text text-anchor="middle" x="2961.0662" y="-581.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="2961.0662" y="-573.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N64 -->
<g id="edge96" class="edge">
<title>N43&#45;&gt;N64</title>
<g id="a_edge96"><a xlink:title="runtime.morestack ... runtime.findrunnable (0.02s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2917.2981,-665.8846C2925.5314,-649.7286 2937.7036,-625.8434 2947.1229,-607.3603"/>
<polygon fill="#000000" stroke="#000000" points="2950.34,-608.7557 2951.7622,-598.2568 2944.1032,-605.5773 2950.34,-608.7557"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.morestack ... runtime.findrunnable (0.02s)">
<text text-anchor="middle" x="2950.7903" y="-631.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.gcstopm (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2900.8361,-598 2827.2963,-598 2827.2963,-562 2900.8361,-562 2900.8361,-598"/>
<text text-anchor="middle" x="2864.0662" y="-581.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcstopm</text>
<text text-anchor="middle" x="2864.0662" y="-573.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N67 -->
<g id="edge97" class="edge">
<title>N43&#45;&gt;N67</title>
<g id="a_edge97"><a xlink:title="runtime.morestack ... runtime.gcstopm (0.02s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2897.3234,-665.9693C2893.3661,-658.937 2889.0229,-650.7224 2885.6179,-643 2880.6547,-631.7435 2876.0936,-618.9585 2872.4579,-607.8612"/>
<polygon fill="#000000" stroke="#000000" points="2875.7626,-606.7037 2869.3942,-598.2364 2869.0924,-608.827 2875.7626,-606.7037"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="runtime.morestack ... runtime.gcstopm (0.02s)">
<text text-anchor="middle" x="2901.7903" y="-631.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.gcFlushBgCredit (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="128.1986,-1760 -.0662,-1760 -.0662,-1719 128.1986,-1719 128.1986,-1760"/>
<text text-anchor="middle" x="64.0662" y="-1747.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="64.0662" y="-1736.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.26%)</text>
<text text-anchor="middle" x="64.0662" y="-1725.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N65 -->
<g id="edge84" class="edge">
<title>N47&#45;&gt;N65</title>
<g id="a_edge84"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.gcFlushBgCredit (0.02s)">
<path fill="none" stroke="#000000" d="M974.1391,-1827.3547C809.4214,-1824.3711 148.0841,-1811.2346 108.6179,-1792 97.9225,-1786.7874 88.8092,-1777.6921 81.6645,-1768.5212"/>
<polygon fill="#000000" stroke="#000000" points="84.3493,-1766.2598 75.6677,-1760.1869 78.6673,-1770.3482 84.3493,-1766.2598"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.gcFlushBgCredit (0.02s)">
<text text-anchor="middle" x="125.7903" y="-1780.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N7 -->
<g id="edge107" class="edge">
<title>N49&#45;&gt;N7</title>
<g id="a_edge107"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.01s)">
<path fill="none" stroke="#000000" d="M2706.8128,-1318.093C2704.7665,-1295.7878 2702.0662,-1260.5637 2702.0662,-1230 2702.0662,-1230 2702.0662,-1230 2702.0662,-1019.5 2702.0662,-945.854 2458.3743,-923.8219 2340.0506,-917.465"/>
<polygon fill="#000000" stroke="#000000" points="2340.2005,-913.9681 2330.0334,-916.9482 2339.8398,-920.9588 2340.2005,-913.9681"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.01s)">
<text text-anchor="middle" x="2718.7903" y="-1119.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.usleep (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2356.5466,-1669 2269.5857,-1669 2269.5857,-1633 2356.5466,-1633 2356.5466,-1669"/>
<text text-anchor="middle" x="2313.0662" y="-1653.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="2313.0662" y="-1641.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.78%)</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="strings.ContainsRune (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2645.2348,-1248 2560.8975,-1248 2560.8975,-1212 2645.2348,-1212 2645.2348,-1248"/>
<text text-anchor="middle" x="2603.0662" y="-1231.6" font-family="Times,serif" font-size="8.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="2603.0662" y="-1223.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N75 -->
<g id="edge73" class="edge">
<title>N54&#45;&gt;N75</title>
<g id="a_edge73"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.02s)">
<path fill="none" stroke="#000000" d="M2603.0662,-1322.2532C2603.0662,-1304.8984 2603.0662,-1278.5286 2603.0662,-1258.4203"/>
<polygon fill="#000000" stroke="#000000" points="2606.5663,-1258.2739 2603.0662,-1248.2739 2599.5663,-1258.274 2606.5663,-1258.2739"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.02s)">
<text text-anchor="middle" x="2619.7903" y="-1278.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.(*mcache).refill (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2314.8126,-393.5 2221.3197,-393.5 2221.3197,-357.5 2314.8126,-357.5 2314.8126,-393.5"/>
<text text-anchor="middle" x="2268.0662" y="-377.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="2268.0662" y="-369.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N56 -->
<g id="edge74" class="edge">
<title>N55&#45;&gt;N56</title>
<g id="a_edge74"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.02s)">
<path fill="none" stroke="#000000" d="M2239.4857,-457.1585C2244.7648,-442.0755 2252.3291,-420.4631 2258.3498,-403.2611"/>
<polygon fill="#000000" stroke="#000000" points="2261.6873,-404.3201 2261.6873,-393.7253 2255.0802,-402.0076 2261.6873,-404.3201"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.02s)">
<text text-anchor="middle" x="2268.7903" y="-422.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.(*mcentral).cacheSpan (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2431.4653,-296.5 2314.667,-296.5 2314.667,-260.5 2431.4653,-260.5 2431.4653,-296.5"/>
<text text-anchor="middle" x="2373.0662" y="-280.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="2373.0662" y="-272.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N57 -->
<g id="edge75" class="edge">
<title>N56&#45;&gt;N57</title>
<g id="a_edge75"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.02s)">
<path fill="none" stroke="#000000" d="M2287.8159,-357.255C2304.2417,-342.0807 2327.7889,-320.3276 2345.9754,-303.5267"/>
<polygon fill="#000000" stroke="#000000" points="2348.4347,-306.0198 2353.405,-296.6631 2343.6846,-300.878 2348.4347,-306.0198"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.02s)">
<text text-anchor="middle" x="2345.7903" y="-319.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.(*mcentral).grow (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2858.2035,-208 2759.9288,-208 2759.9288,-172 2858.2035,-172 2858.2035,-208"/>
<text text-anchor="middle" x="2809.0662" y="-191.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="2809.0662" y="-183.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N58 -->
<g id="edge76" class="edge">
<title>N57&#45;&gt;N58</title>
<g id="a_edge76"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.02s)">
<path fill="none" stroke="#000000" d="M2431.4147,-266.6563C2514.5858,-249.7741 2666.3876,-218.9611 2749.9685,-201.9957"/>
<polygon fill="#000000" stroke="#000000" points="2750.7101,-205.4167 2759.814,-199.9973 2749.3175,-198.5566 2750.7101,-205.4167"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.02s)">
<text text-anchor="middle" x="2646.7903" y="-228.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.(*mheap).alloc (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3001.6482,-122 2910.4841,-122 2910.4841,-86 3001.6482,-86 3001.6482,-122"/>
<text text-anchor="middle" x="2956.0662" y="-105.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="2956.0662" y="-97.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N59 -->
<g id="edge77" class="edge">
<title>N58&#45;&gt;N59</title>
<g id="a_edge77"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.02s)">
<path fill="none" stroke="#000000" d="M2839.8822,-171.9716C2862.1286,-158.9566 2892.3588,-141.271 2916.4065,-127.2023"/>
<polygon fill="#000000" stroke="#000000" points="2918.4267,-130.0754 2925.2907,-122.0047 2914.8919,-124.0334 2918.4267,-130.0754"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.02s)">
<text text-anchor="middle" x="2907.7903" y="-142.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N50 -->
<g id="edge78" class="edge">
<title>N59&#45;&gt;N50</title>
<g id="a_edge78"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.02s)">
<path fill="none" stroke="#000000" d="M2964.125,-85.7616C2969.2638,-74.1316 2976.0225,-58.8357 2981.8178,-45.72"/>
<polygon fill="#000000" stroke="#000000" points="2985.1787,-46.7736 2986.019,-36.2121 2978.7759,-43.9444 2985.1787,-46.7736"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.02s)">
<text text-anchor="middle" x="2993.7903" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.(*mheap).alloc_m (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2633.8713,-393.5 2532.261,-393.5 2532.261,-357.5 2633.8713,-357.5 2633.8713,-393.5"/>
<text text-anchor="middle" x="2583.0662" y="-377.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="2583.0662" y="-369.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N62 -->
<g id="edge79" class="edge">
<title>N60&#45;&gt;N62</title>
<g id="a_edge79"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.02s)">
<path fill="none" stroke="#000000" d="M2583.0662,-457.1585C2583.0662,-442.2164 2583.0662,-420.8665 2583.0662,-403.7446"/>
<polygon fill="#000000" stroke="#000000" points="2586.5663,-403.7252 2583.0662,-393.7253 2579.5663,-403.7253 2586.5663,-403.7252"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.02s)">
<text text-anchor="middle" x="2599.7903" y="-422.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.(*mheap).allocSpanLocked (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2670.288,-299 2495.8443,-299 2495.8443,-258 2670.288,-258 2670.288,-299"/>
<text text-anchor="middle" x="2583.0662" y="-286.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).allocSpanLocked</text>
<text text-anchor="middle" x="2583.0662" y="-275.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.26%)</text>
<text text-anchor="middle" x="2583.0662" y="-264.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N61 -->
<g id="edge80" class="edge">
<title>N62&#45;&gt;N61</title>
<g id="a_edge80"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.02s)">
<path fill="none" stroke="#000000" d="M2583.0662,-357.255C2583.0662,-343.7889 2583.0662,-325.1416 2583.0662,-309.3722"/>
<polygon fill="#000000" stroke="#000000" points="2586.5663,-309.0137 2583.0662,-299.0138 2579.5663,-309.0138 2586.5663,-309.0137"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.02s)">
<text text-anchor="middle" x="2599.7903" y="-319.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.stopm (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3002.8361,-493.5 2929.2963,-493.5 2929.2963,-457.5 3002.8361,-457.5 3002.8361,-493.5"/>
<text text-anchor="middle" x="2966.0662" y="-477.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="2966.0662" y="-469.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N73 -->
<g id="edge104" class="edge">
<title>N64&#45;&gt;N73</title>
<g id="a_edge104"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.01s)">
<path fill="none" stroke="#000000" d="M2961.9371,-561.7975C2962.6996,-545.8617 2963.8201,-522.442 2964.7016,-504.0195"/>
<polygon fill="#000000" stroke="#000000" points="2968.2064,-504.0004 2965.1884,-493.8445 2961.2144,-503.6658 2968.2064,-504.0004"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.01s)">
<text text-anchor="middle" x="2979.7903" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N8 -->
<g id="edge85" class="edge">
<title>N66&#45;&gt;N8</title>
<g id="a_edge85"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.02s)">
<path fill="none" stroke="#000000" d="M1765.15,-1826.8538C1505.5354,-1819.7835 156.0662,-1781.0342 156.0662,-1739.5 156.0662,-1739.5 156.0662,-1739.5 156.0662,-684 156.0662,-637.552 1605.0586,-593.3973 1988.1092,-582.5362"/>
<polygon fill="#000000" stroke="#000000" points="1988.4197,-586.0289 1998.3167,-582.2475 1988.2218,-579.0317 1988.4197,-586.0289"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.02s)">
<text text-anchor="middle" x="172.7903" y="-1225.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N21 -->
<g id="edge105" class="edge">
<title>N67&#45;&gt;N21</title>
<g id="a_edge105"><a xlink:title="runtime.gcstopm ... runtime.mach_semaphore_signal (0.01s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2850.1312,-561.7975C2838.3296,-546.3816 2821.1663,-523.9621 2807.2915,-505.8381"/>
<polygon fill="#000000" stroke="#000000" points="2810.037,-503.6665 2801.1791,-497.8538 2804.4787,-507.9217 2810.037,-503.6665"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="runtime.gcstopm ... runtime.mach_semaphore_signal (0.01s)">
<text text-anchor="middle" x="2842.7903" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N73 -->
<g id="edge106" class="edge">
<title>N67&#45;&gt;N73</title>
<g id="a_edge106"><a xlink:title="runtime.gcstopm &#45;&gt; runtime.stopm (0.01s)">
<path fill="none" stroke="#000000" d="M2881.8332,-561.7975C2898.1146,-545.1171 2922.3996,-520.2368 2940.7165,-501.471"/>
<polygon fill="#000000" stroke="#000000" points="2943.6802,-503.4455 2948.1605,-493.8445 2938.6708,-498.556 2943.6802,-503.4455"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="runtime.gcstopm &#45;&gt; runtime.stopm (0.01s)">
<text text-anchor="middle" x="2940.7903" y="-519.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.indexbytebody (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2666.7112,-1037.5 2539.4211,-1037.5 2539.4211,-1001.5 2666.7112,-1001.5 2666.7112,-1037.5"/>
<text text-anchor="middle" x="2603.0662" y="-1021.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.indexbytebody</text>
<text text-anchor="middle" x="2603.0662" y="-1009.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.mstart (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2349.8361,-1998 2276.2963,-1998 2276.2963,-1962 2349.8361,-1962 2349.8361,-1998"/>
<text text-anchor="middle" x="2313.0662" y="-1981.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mstart</text>
<text text-anchor="middle" x="2313.0662" y="-1973.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.mstart1 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2349.8361,-1846 2276.2963,-1846 2276.2963,-1810 2349.8361,-1810 2349.8361,-1846"/>
<text text-anchor="middle" x="2313.0662" y="-1829.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mstart1</text>
<text text-anchor="middle" x="2313.0662" y="-1821.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N72 -->
<g id="edge88" class="edge">
<title>N71&#45;&gt;N72</title>
<g id="a_edge88"><a xlink:title="runtime.mstart &#45;&gt; runtime.mstart1 (0.02s)">
<path fill="none" stroke="#000000" d="M2313.0662,-1961.9667C2313.0662,-1935.7983 2313.0662,-1887.0561 2313.0662,-1856.1368"/>
<polygon fill="#000000" stroke="#000000" points="2316.5663,-1856.0098 2313.0662,-1846.0098 2309.5663,-1856.0099 2316.5663,-1856.0098"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.mstart &#45;&gt; runtime.mstart1 (0.02s)">
<text text-anchor="middle" x="2329.7903" y="-1866.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.sysmon (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2349.8361,-1757.5 2276.2963,-1757.5 2276.2963,-1721.5 2349.8361,-1721.5 2349.8361,-1757.5"/>
<text text-anchor="middle" x="2313.0662" y="-1741.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.sysmon</text>
<text text-anchor="middle" x="2313.0662" y="-1733.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N74 -->
<g id="edge89" class="edge">
<title>N72&#45;&gt;N74</title>
<g id="a_edge89"><a xlink:title="runtime.mstart1 &#45;&gt; runtime.sysmon (0.02s)">
<path fill="none" stroke="#000000" d="M2313.0662,-1809.6627C2313.0662,-1797.5979 2313.0662,-1781.565 2313.0662,-1767.8712"/>
<polygon fill="#000000" stroke="#000000" points="2316.5663,-1767.5109 2313.0662,-1757.511 2309.5663,-1767.511 2316.5663,-1767.5109"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.mstart1 &#45;&gt; runtime.sysmon (0.02s)">
<text text-anchor="middle" x="2329.7903" y="-1780.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N52 -->
<g id="edge90" class="edge">
<title>N74&#45;&gt;N52</title>
<g id="a_edge90"><a xlink:title="runtime.sysmon &#45;&gt; runtime.usleep (0.02s)">
<path fill="none" stroke="#000000" d="M2313.0662,-1721.1627C2313.0662,-1709.0979 2313.0662,-1693.065 2313.0662,-1679.3712"/>
<polygon fill="#000000" stroke="#000000" points="2316.5663,-1679.0109 2313.0662,-1669.011 2309.5663,-1679.011 2316.5663,-1679.0109"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.sysmon &#45;&gt; runtime.usleep (0.02s)">
<text text-anchor="middle" x="2329.7903" y="-1689.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="strings.IndexRune (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2640.505,-1142 2565.6274,-1142 2565.6274,-1106 2640.505,-1106 2640.505,-1142"/>
<text text-anchor="middle" x="2603.0662" y="-1125.6" font-family="Times,serif" font-size="8.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="2603.0662" y="-1117.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.52%)</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N76 -->
<g id="edge94" class="edge">
<title>N75&#45;&gt;N76</title>
<g id="a_edge94"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.02s)">
<path fill="none" stroke="#000000" d="M2603.0662,-1211.5362C2603.0662,-1195.1966 2603.0662,-1171.1 2603.0662,-1152.3232"/>
<polygon fill="#000000" stroke="#000000" points="2606.5663,-1152.2522 2603.0662,-1142.2522 2599.5663,-1152.2522 2606.5663,-1152.2522"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.02s)">
<text text-anchor="middle" x="2619.7903" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N69 -->
<g id="edge95" class="edge">
<title>N76&#45;&gt;N69</title>
<g id="a_edge95"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.02s)">
<path fill="none" stroke="#000000" d="M2603.0662,-1105.7975C2603.0662,-1089.8617 2603.0662,-1066.442 2603.0662,-1048.0195"/>
<polygon fill="#000000" stroke="#000000" points="2606.5663,-1047.8445 2603.0662,-1037.8445 2599.5663,-1047.8446 2606.5663,-1047.8445"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.02s)">
<text text-anchor="middle" x="2619.7903" y="-1066.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction (3.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2258.2499,-1757.5 2111.8825,-1757.5 2111.8825,-1721.5 2258.2499,-1721.5 2258.2499,-1757.5"/>
<text text-anchor="middle" x="2185.0662" y="-1741.1" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.HandleAction</text>
<text text-anchor="middle" x="2185.0662" y="-1733.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.57s(92.97%)</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N78 -->
<g id="edge1" class="edge">
<title>N77&#45;&gt;N78</title>
<g id="a_edge1"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (3.57s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2185.0662,-1809.6627C2185.0662,-1797.5979 2185.0662,-1781.565 2185.0662,-1767.8712"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2189.4413,-1767.5109 2185.0662,-1757.511 2180.6913,-1767.511 2189.4413,-1767.5109"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (3.57s)">
<text text-anchor="middle" x="2201.7903" y="-1780.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.57s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="main.handleFlags (3.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2223.836,-1669 2146.2963,-1669 2146.2963,-1633 2223.836,-1633 2223.836,-1669"/>
<text text-anchor="middle" x="2185.0662" y="-1652.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.handleFlags</text>
<text text-anchor="middle" x="2185.0662" y="-1644.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.57s(92.97%)</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N80 -->
<g id="edge2" class="edge">
<title>N78&#45;&gt;N80</title>
<g id="a_edge2"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (3.57s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2185.0662,-1721.1627C2185.0662,-1709.0979 2185.0662,-1693.065 2185.0662,-1679.3712"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2189.4413,-1679.0109 2185.0662,-1669.011 2180.6913,-1679.011 2189.4413,-1679.0109"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (3.57s)">
<text text-anchor="middle" x="2201.7903" y="-1689.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.57s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="main.(*machine).executeString (3.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2243.4731,-1583 2126.6592,-1583 2126.6592,-1547 2243.4731,-1547 2243.4731,-1583"/>
<text text-anchor="middle" x="2185.0662" y="-1566.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeString</text>
<text text-anchor="middle" x="2185.0662" y="-1558.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.57s(92.97%)</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N2 -->
<g id="edge3" class="edge">
<title>N79&#45;&gt;N2</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (3.57s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2210.5083,-1546.9499C2227.5836,-1534.8356 2250.8348,-1518.3398 2272.4972,-1502.9713"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2275.0811,-1506.5023 2280.7055,-1497.1478 2270.018,-1499.3659 2275.0811,-1506.5023"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (3.57s)">
<text text-anchor="middle" x="2271.7903" y="-1517.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.57s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N79 -->
<g id="edge5" class="edge">
<title>N80&#45;&gt;N79</title>
<g id="a_edge5"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (3.57s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2185.0662,-1632.7616C2185.0662,-1621.3597 2185.0662,-1606.4342 2185.0662,-1593.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2189.4413,-1593.2121 2185.0662,-1583.2121 2180.6913,-1593.2121 2189.4413,-1593.2121"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (3.57s)">
<text text-anchor="middle" x="2201.7903" y="-1603.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.57s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration11.svg.



































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2313)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2313 3005.1133,-2313 3005.1133,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="8,-2117 8,-2301 654,-2301 654,-2117 8,-2117"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="645.8438,-2293 16.1562,-2293 16.1562,-2125 645.8438,-2125 645.8438,-2293"/>
<text text-anchor="start" x="24.0781" y="-2263.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="24.0781" y="-2231.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="24.0781" y="-2199.4" font-family="Times,serif" font-size="32.00" fill="#000000">3.56s of 3.65s total (97.53%)</text>
<text text-anchor="start" x="24.0781" y="-2167.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 28 nodes (cum &lt;= 0.02s)</text>
<text text-anchor="start" x="24.0781" y="-2135.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 82 (cum &gt;= 0.07s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (3.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="741.7699,-2227 664.2301,-2227 664.2301,-2191 741.7699,-2191 741.7699,-2227"/>
<text text-anchor="middle" x="703" y="-2210.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="703" y="-2202.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.45s(94.52%)</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.gcBgMarkWorker (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="646.3907,-2075 545.6093,-2075 545.6093,-2039 646.3907,-2039 646.3907,-2075"/>
<text text-anchor="middle" x="596" y="-2058.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="596" y="-2050.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.55%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N51 -->
<g id="edge94" class="edge">
<title>N1&#45;&gt;N51</title>
<g id="a_edge94"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.02s)">
<path fill="none" stroke="#000000" d="M696.2435,-2190.6799C688.6213,-2171.3332 675.0361,-2140.4466 658,-2117 648.8602,-2104.421 636.9385,-2092.1781 625.9938,-2082.0669"/>
<polygon fill="#000000" stroke="#000000" points="628.0276,-2079.1889 618.2507,-2075.1068 623.348,-2084.3949 628.0276,-2079.1889"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.02s)">
<text text-anchor="middle" x="666.7241" y="-2095.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.main (3.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="741.7699,-2075 664.2301,-2075 664.2301,-2039 741.7699,-2039 741.7699,-2075"/>
<text text-anchor="middle" x="703" y="-2058.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.main</text>
<text text-anchor="middle" x="703" y="-2050.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.43s(93.97%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N63 -->
<g id="edge6" class="edge">
<title>N1&#45;&gt;N63</title>
<g id="a_edge6"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (3.43s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-2190.9667C703,-2164.7983 703,-2116.0561 703,-2085.1368"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-2085.0098 703,-2075.0098 698.6251,-2085.0099 707.3751,-2085.0098"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (3.43s)">
<text text-anchor="middle" x="719.7241" y="-2095.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.43s</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (3.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="822.3313,-1559 583.6687,-1559 583.6687,-1485 822.3313,-1485 822.3313,-1559"/>
<text text-anchor="middle" x="703" y="-1537.4" font-family="Times,serif" font-size="22.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="703" y="-1515.4" font-family="Times,serif" font-size="22.00" fill="#000000">0.36s(9.86%)</text>
<text text-anchor="middle" x="703" y="-1493.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 3.43s(93.97%)</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (3.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1573.9839,-1426 1382.0161,-1426 1382.0161,-1385 1573.9839,-1385 1573.9839,-1426"/>
<text text-anchor="middle" x="1478" y="-1413.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="1478" y="-1402.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1478" y="-1391.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 3.43s(93.97%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N3 -->
<g id="edge83" class="edge">
<title>N2&#45;&gt;N3</title>
<g id="a_edge83"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.02s)">
<path fill="none" stroke="#000000" d="M822.3427,-1514.0015C957.3895,-1503.2259 1183.2525,-1479.9742 1373,-1435 1381.1442,-1433.0697 1389.6064,-1430.9264 1398.034,-1428.7013"/>
<polygon fill="#000000" stroke="#000000" points="1399.1374,-1432.0292 1407.8903,-1426.0595 1397.325,-1425.2679 1399.1374,-1432.0292"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.02s)">
<text text-anchor="middle" x="1300.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).execute.func11 (3.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="471.0581,-1426 310.9419,-1426 310.9419,-1385 471.0581,-1385 471.0581,-1426"/>
<text text-anchor="middle" x="391" y="-1413.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).execute.func11</text>
<text text-anchor="middle" x="391" y="-1402.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="391" y="-1391.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 3.39s(92.88%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N4 -->
<g id="edge82" class="edge">
<title>N2&#45;&gt;N4</title>
<g id="a_edge82"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func11 (0.02s)">
<path fill="none" stroke="#000000" d="M583.703,-1502.5785C530.5654,-1492.5802 474.7819,-1479.8193 451.5518,-1467 436.8423,-1458.8828 423.4022,-1446.0783 412.9411,-1434.2496"/>
<polygon fill="#000000" stroke="#000000" points="415.3299,-1431.6545 406.1959,-1426.286 409.9884,-1436.1788 415.3299,-1431.6545"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func11 (0.02s)">
<text text-anchor="middle" x="468.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.(*machine).execute.func12 (2.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="766.758,-1435 527.242,-1435 527.242,-1376 766.758,-1376 766.758,-1435"/>
<text text-anchor="middle" x="647" y="-1417.4" font-family="Times,serif" font-size="17.00" fill="#000000">main.(*machine).execute.func12</text>
<text text-anchor="middle" x="647" y="-1400.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.14s(3.84%)</text>
<text text-anchor="middle" x="647" y="-1383.4" font-family="Times,serif" font-size="17.00" fill="#000000">of 2.43s(66.58%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N5 -->
<g id="edge11" class="edge">
<title>N2&#45;&gt;N5</title>
<g id="a_edge11"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func12 (1.07s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M693.5338,-1484.9899C690.2052,-1474.3896 686.0174,-1463.0024 681,-1453 679.4291,-1449.8684 677.663,-1446.7169 675.783,-1443.6081"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="678.6055,-1441.5263 670.2506,-1435.0111 672.719,-1445.3144 678.6055,-1441.5263"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func12 (1.07s)">
<text text-anchor="middle" x="703.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.07s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.newobject (0.93s)">
<polygon fill="#f8f8f8" stroke="#000000" points="808.0769,-1020 687.9231,-1020 687.9231,-970 808.0769,-970 808.0769,-1020"/>
<text text-anchor="middle" x="748" y="-1004.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="748" y="-990.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.07s(1.92%)</text>
<text text-anchor="middle" x="748" y="-976.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.93s(25.48%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge102" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge102"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.01s)">
<path fill="none" stroke="#000000" d="M583.4419,-1489.6441C557.5855,-1476.8936 533.4073,-1459.2715 518,-1435 503.9468,-1412.8615 500.8885,-1395.8696 518,-1376 553.1924,-1335.1351 593.601,-1388.6134 638,-1358 743.43,-1285.3053 591.0151,-1192.2994 629,-1070 636.3849,-1046.2229 656.7619,-1029.4889 678.6113,-1017.9594"/>
<polygon fill="#000000" stroke="#000000" points="680.2713,-1021.0434 687.6961,-1013.4855 677.1786,-1014.7636 680.2713,-1021.0434"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.01s)">
<text text-anchor="middle" x="685.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="runtime.deferproc (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1967.5547,-1433.5 1836.4453,-1433.5 1836.4453,-1377.5 1967.5547,-1377.5 1967.5547,-1433.5"/>
<text text-anchor="middle" x="1902" y="-1416.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="1902" y="-1400.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.11s(3.01%)</text>
<text text-anchor="middle" x="1902" y="-1384.7" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.34s(9.32%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N11 -->
<g id="edge17" class="edge">
<title>N2&#45;&gt;N11</title>
<g id="a_edge17"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.34s)">
<path fill="none" stroke="#000000" d="M822.4768,-1515.8868C985.1624,-1507.1682 1285.3974,-1489.6753 1541,-1467 1665.1691,-1455.9846 1701.0467,-1465.2878 1826.4808,-1434.8633"/>
<polygon fill="#000000" stroke="#000000" points="1827.5968,-1438.1931 1836.4698,-1432.4034 1825.923,-1431.3961 1827.5968,-1438.1931"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.34s)">
<text text-anchor="middle" x="1751.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="runtime.deferreturn (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2118.5264,-1432 1985.4736,-1432 1985.4736,-1379 2118.5264,-1379 2118.5264,-1432"/>
<text text-anchor="middle" x="2052" y="-1416" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="2052" y="-1401" font-family="Times,serif" font-size="15.00" fill="#000000">0.09s(2.47%)</text>
<text text-anchor="middle" x="2052" y="-1386" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.30s(8.22%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N12 -->
<g id="edge18" class="edge">
<title>N2&#45;&gt;N12</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.30s)">
<path fill="none" stroke="#000000" d="M822.3501,-1519.8847C1020.2058,-1515.4762 1428.413,-1502.559 1772,-1467 1863.7245,-1457.5071 1887.9996,-1459.1338 1977,-1435 1977.1013,-1434.9725 1977.2026,-1434.945 1977.304,-1434.9173"/>
<polygon fill="#000000" stroke="#000000" points="1978.2377,-1438.2911 1986.8393,-1432.1054 1976.2577,-1431.5769 1978.2377,-1438.2911"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.30s)">
<text text-anchor="middle" x="1912.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1818.1329,-1429 1591.8671,-1429 1591.8671,-1382 1818.1329,-1382 1818.1329,-1429"/>
<text text-anchor="middle" x="1705" y="-1414.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="1705" y="-1401.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.37%)</text>
<text text-anchor="middle" x="1705" y="-1388.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.29s(7.95%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge19" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.29s)">
<path fill="none" stroke="#000000" d="M822.4701,-1517.4947C966.2324,-1511.0179 1214.6706,-1496.457 1426,-1467 1486.121,-1458.6198 1552.5219,-1444.1969 1605.4583,-1431.424"/>
<polygon fill="#000000" stroke="#000000" points="1606.2914,-1434.8235 1615.1814,-1429.06 1604.6376,-1428.0216 1606.2914,-1434.8235"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.29s)">
<text text-anchor="middle" x="1520.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2433.1329,-1429 2206.8671,-1429 2206.8671,-1382 2433.1329,-1382 2433.1329,-1429"/>
<text text-anchor="middle" x="2320" y="-1414.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2320" y="-1401.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.37%)</text>
<text text-anchor="middle" x="2320" y="-1388.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.27s(7.40%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N15 -->
<g id="edge20" class="edge">
<title>N2&#45;&gt;N15</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.27s)">
<path fill="none" stroke="#000000" d="M822.279,-1519.9091C1148.391,-1513.8562 2039.2173,-1494.952 2169,-1467 2201.9412,-1459.9053 2236.8979,-1446.1103 2264.8726,-1433.3806"/>
<polygon fill="#000000" stroke="#000000" points="2266.4766,-1436.4949 2274.079,-1429.1156 2263.5341,-1430.1434 2266.4766,-1436.4949"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.27s)">
<text text-anchor="middle" x="2232.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="main.executeSubtract (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1233.4878,-1426 1122.5122,-1426 1122.5122,-1385 1233.4878,-1385 1233.4878,-1426"/>
<text text-anchor="middle" x="1178" y="-1413.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeSubtract</text>
<text text-anchor="middle" x="1178" y="-1402.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1178" y="-1391.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.19s(5.21%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N18 -->
<g id="edge23" class="edge">
<title>N2&#45;&gt;N18</title>
<g id="a_edge23"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.19s)">
<path fill="none" stroke="#000000" d="M822.2257,-1504.0158C905.2811,-1489.7391 1017.9477,-1466.858 1114,-1435 1118.4817,-1433.5135 1123.0667,-1431.8048 1127.622,-1429.9746"/>
<polygon fill="#000000" stroke="#000000" points="1129.0256,-1433.1813 1136.8879,-1426.0795 1126.313,-1426.7282 1129.0256,-1433.1813"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.19s)">
<text text-anchor="middle" x="1065.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="main.executeMultiply (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1364.3356,-1426 1251.6644,-1426 1251.6644,-1385 1364.3356,-1385 1364.3356,-1426"/>
<text text-anchor="middle" x="1308" y="-1413.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeMultiply</text>
<text text-anchor="middle" x="1308" y="-1402.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1308" y="-1391.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.15s(4.11%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N22 -->
<g id="edge28" class="edge">
<title>N2&#45;&gt;N22</title>
<g id="a_edge28"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.15s)">
<path fill="none" stroke="#000000" d="M822.3808,-1513.1525C933.2365,-1502.5135 1101.8037,-1480.1138 1242,-1435 1246.611,-1433.5162 1251.3317,-1431.8094 1256.0243,-1429.9804"/>
<polygon fill="#000000" stroke="#000000" points="1257.6344,-1433.1037 1265.5728,-1426.0871 1254.9915,-1426.6218 1257.6344,-1433.1037"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.15s)">
<text text-anchor="middle" x="1187.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.ifaceeq (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2566.9453,-1425.5 2451.0547,-1425.5 2451.0547,-1385.5 2566.9453,-1385.5 2566.9453,-1425.5"/>
<text text-anchor="middle" x="2509" y="-1408.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="2509" y="-1392.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.10s(2.74%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N30 -->
<g id="edge44" class="edge">
<title>N2&#45;&gt;N30</title>
<g id="a_edge44"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.10s)">
<path fill="none" stroke="#000000" d="M822.2816,-1519.811C1135.4705,-1513.7358 1976.081,-1495.2309 2253,-1467 2337.7562,-1458.3594 2360.3922,-1459.463 2442,-1435 2447.3263,-1433.4034 2452.7888,-1431.4909 2458.1856,-1429.4171"/>
<polygon fill="#000000" stroke="#000000" points="2459.8212,-1432.5314 2467.785,-1425.5436 2457.2018,-1426.04 2459.8212,-1432.5314"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.10s)">
<text text-anchor="middle" x="2387.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="main.(*CodeQuotation).nextWord (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2803.0752,-1424.5 2584.9248,-1424.5 2584.9248,-1386.5 2803.0752,-1386.5 2803.0752,-1424.5"/>
<text text-anchor="middle" x="2694" y="-1408.5" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2694" y="-1393.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.09s(2.47%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N31 -->
<g id="edge46" class="edge">
<title>N2&#45;&gt;N31</title>
<g id="a_edge46"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.09s)">
<path fill="none" stroke="#000000" d="M822.3006,-1520.5738C1156.9441,-1516.1873 2100.1144,-1501.0777 2408,-1467 2478.7162,-1459.1729 2557.6807,-1441.4958 2614.6902,-1427.0929"/>
<polygon fill="#000000" stroke="#000000" points="2615.8898,-1430.3991 2624.715,-1424.5368 2614.1602,-1423.6161 2615.8898,-1430.3991"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.09s)">
<text text-anchor="middle" x="2511.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1104.6332,-1427.5 917.3668,-1427.5 917.3668,-1383.5 1104.6332,-1383.5 1104.6332,-1427.5"/>
<text text-anchor="middle" x="1011" y="-1413.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(intPusher).(main.pushInt)&#45;fm</text>
<text text-anchor="middle" x="1011" y="-1401.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.55%)</text>
<text text-anchor="middle" x="1011" y="-1389.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.08s(2.19%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N34 -->
<g id="edge51" class="edge">
<title>N2&#45;&gt;N34</title>
<g id="a_edge51"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.08s)">
<path fill="none" stroke="#000000" d="M800.8763,-1484.9786C847.1233,-1467.4858 901.1932,-1447.0341 942.9021,-1431.2578"/>
<polygon fill="#000000" stroke="#000000" points="944.2992,-1434.4714 952.4142,-1427.6599 941.8227,-1427.9241 944.2992,-1434.4714"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.08s)">
<text text-anchor="middle" x="901.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="main.(*machine).execute.func1 (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3001.2267,-1423.5 2820.7733,-1423.5 2820.7733,-1387.5 3001.2267,-1387.5 3001.2267,-1423.5"/>
<text text-anchor="middle" x="2911" y="-1408.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="2911" y="-1395.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.10%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N42 -->
<g id="edge72" class="edge">
<title>N2&#45;&gt;N42</title>
<g id="a_edge72"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.04s)">
<path fill="none" stroke="#000000" d="M822.3108,-1519.7195C1173.1868,-1512.8053 2197.914,-1491.0713 2532,-1467 2656.9306,-1457.9986 2689.2847,-1460.0925 2812,-1435 2823.4622,-1432.6562 2835.5112,-1429.5914 2847.1037,-1426.3252"/>
<polygon fill="#000000" stroke="#000000" points="2848.0779,-1429.687 2856.7112,-1423.5456 2846.1324,-1422.9627 2848.0779,-1429.687"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.04s)">
<text text-anchor="middle" x="2722.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="main.NilWord.func1 (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="899.5176,-1427.5 784.4824,-1427.5 784.4824,-1383.5 899.5176,-1383.5 899.5176,-1427.5"/>
<text text-anchor="middle" x="842" y="-1413.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="842" y="-1401.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.55%)</text>
<text text-anchor="middle" x="842" y="-1389.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.04s(1.10%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N43 -->
<g id="edge73" class="edge">
<title>N2&#45;&gt;N43</title>
<g id="a_edge73"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.04s)">
<path fill="none" stroke="#000000" d="M747.3626,-1484.8184C766.7923,-1468.5338 789.2513,-1449.7102 807.4133,-1434.4881"/>
<polygon fill="#000000" stroke="#000000" points="810.0134,-1436.8757 815.4293,-1427.7697 805.5169,-1431.5108 810.0134,-1436.8757"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.04s)">
<text text-anchor="middle" x="801.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.jmpdefer (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2186.1072,-1319 2079.8928,-1319 2079.8928,-1283 2186.1072,-1283 2186.1072,-1319"/>
<text text-anchor="middle" x="2133" y="-1303.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.jmpdefer</text>
<text text-anchor="middle" x="2133" y="-1290.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.10%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N46 -->
<g id="edge76" class="edge">
<title>N2&#45;&gt;N46</title>
<g id="a_edge76"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.jmpdefer (0.03s)">
<path fill="none" stroke="#000000" d="M822.3057,-1518.462C1087.6733,-1510.2997 1720.1268,-1489.1478 1933,-1467 2020.3543,-1457.9115 2055.1547,-1484.0607 2128,-1435 2129.0392,-1434.3001 2174.661,-1359.2062 2175,-1358 2176.6837,-1352.0099 2177.3473,-1349.7625 2175,-1344 2172.4079,-1337.6366 2168.3708,-1331.702 2163.8034,-1326.3965"/>
<polygon fill="#000000" stroke="#000000" points="2166.2743,-1323.916 2156.8389,-1319.0969 2161.2097,-1328.7482 2166.2743,-1323.916"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.jmpdefer (0.03s)">
<text text-anchor="middle" x="2180.7241" y="-1401.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.growslice (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="292.9844,-1423.5 219.0156,-1423.5 219.0156,-1387.5 292.9844,-1387.5 292.9844,-1423.5"/>
<text text-anchor="middle" x="256" y="-1407.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="256" y="-1399.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.55%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N52 -->
<g id="edge84" class="edge">
<title>N2&#45;&gt;N52</title>
<g id="a_edge84"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.02s)">
<path fill="none" stroke="#000000" d="M583.5563,-1508.7865C498.5036,-1498.356 392.1918,-1482.947 350.5518,-1467 327.2931,-1458.0925 303.8066,-1442.8556 286.0598,-1429.7771"/>
<polygon fill="#000000" stroke="#000000" points="287.9247,-1426.7996 277.835,-1423.5674 283.7069,-1432.3862 287.9247,-1426.7996"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.02s)">
<text text-anchor="middle" x="367.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge8" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge8"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (3.41s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1444.8813,-1426.0585C1420.4417,-1440.1469 1385.8589,-1457.877 1353,-1467 1258.3678,-1493.2739 993.603,-1509.1922 832.6756,-1516.7267"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="832.0153,-1512.3775 822.2286,-1517.2109 832.4205,-1521.1181 832.0153,-1512.3775"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (3.41s)">
<text text-anchor="middle" x="1405.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.41s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N6 -->
<g id="edge104" class="edge">
<title>N3&#45;&gt;N6</title>
<g id="a_edge104"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.01s)">
<path fill="none" stroke="#000000" d="M1448.0876,-1384.8037C1439.1722,-1377.2986 1430.1502,-1368.1425 1424,-1358 1410.4742,-1335.6942 1410,-1327.0863 1410,-1301 1410,-1301 1410,-1301 1410,-1098 1410,-1081.6097 1400.4648,-1077.7078 1386,-1070 1288.9808,-1018.3017 963.0284,-1001.7502 818.2785,-996.8722"/>
<polygon fill="#000000" stroke="#000000" points="818.2847,-993.3706 808.1753,-996.5408 818.0552,-1000.3668 818.2847,-993.3706"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.01s)">
<text text-anchor="middle" x="1426.7241" y="-1196.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N2 -->
<g id="edge9" class="edge">
<title>N4&#45;&gt;N2</title>
<g id="a_edge9"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*machine).execute (3.37s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M386.2443,-1426.2009C384.4965,-1439.4457 384.8954,-1456.1228 394.5518,-1467 418.4361,-1493.904 499.9909,-1507.6893 573.2411,-1514.7299"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="573.1548,-1519.1155 583.515,-1515.6793 573.96,-1510.4026 573.1548,-1519.1155"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*machine).execute (3.37s)">
<text text-anchor="middle" x="411.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.37s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.(*CodeQuotation).cloneCode (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="646.7784,-1324.5 451.2216,-1324.5 451.2216,-1277.5 646.7784,-1277.5 646.7784,-1324.5"/>
<text text-anchor="middle" x="549" y="-1310.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="549" y="-1297.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.10%)</text>
<text text-anchor="middle" x="549" y="-1284.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.40s(10.96%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N10 -->
<g id="edge103" class="edge">
<title>N4&#45;&gt;N10</title>
<g id="a_edge103"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*CodeQuotation).cloneCode (0.01s)">
<path fill="none" stroke="#000000" d="M422.2157,-1384.8542C445.8092,-1369.2496 478.511,-1347.6209 504.7927,-1330.2384"/>
<polygon fill="#000000" stroke="#000000" points="507.0271,-1332.9569 513.4371,-1324.521 503.1655,-1327.1183 507.0271,-1332.9569"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*CodeQuotation).cloneCode (0.01s)">
<text text-anchor="middle" x="496.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N2 -->
<g id="edge10" class="edge">
<title>N5&#45;&gt;N2</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; main.(*machine).execute (1.36s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M642.7415,-1435.2193C642.4094,-1445.6259 643.4015,-1457.1621 647.5518,-1467 648.9377,-1470.2852 650.6239,-1473.4758 652.5342,-1476.5566"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="649.8219,-1478.7835 658.4476,-1484.9356 655.5411,-1474.7472 649.8219,-1478.7835"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; main.(*machine).execute (1.36s)">
<text text-anchor="middle" x="664.7241" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.36s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.convT2I (0.76s)">
<polygon fill="#f8f8f8" stroke="#000000" points="811.5399,-1126 684.4601,-1126 684.4601,-1070 811.5399,-1070 811.5399,-1126"/>
<text text-anchor="middle" x="748" y="-1109.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="748" y="-1093.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.10s(2.74%)</text>
<text text-anchor="middle" x="748" y="-1077.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.76s(20.82%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N8 -->
<g id="edge13" class="edge">
<title>N5&#45;&gt;N8</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; runtime.convT2I (0.54s)">
<path fill="none" stroke="#000000" d="M664.8648,-1375.7007C673.0622,-1361.0993 682.402,-1343.03 689,-1326 714.1305,-1261.1356 731.9169,-1181.7861 741.0214,-1135.8532"/>
<polygon fill="#000000" stroke="#000000" points="744.459,-1136.5106 742.9375,-1126.0256 737.5884,-1135.1709 744.459,-1136.5106"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; runtime.convT2I (0.54s)">
<text text-anchor="middle" x="732.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N10 -->
<g id="edge15" class="edge">
<title>N5&#45;&gt;N10</title>
<g id="a_edge15"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; main.(*CodeQuotation).cloneCode (0.39s)">
<path fill="none" stroke="#000000" d="M619.1793,-1375.834C606.3833,-1362.1893 591.2012,-1346.0002 578.2365,-1332.1757"/>
<polygon fill="#000000" stroke="#000000" points="580.685,-1329.6699 571.2913,-1324.7698 575.5789,-1334.4584 580.685,-1329.6699"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; main.(*CodeQuotation).cloneCode (0.39s)">
<text text-anchor="middle" x="617.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.mallocgc (0.89s)">
<polygon fill="#f8f8f8" stroke="#000000" points="840.1098,-920 655.8902,-920 655.8902,-840 840.1098,-840 840.1098,-920"/>
<text text-anchor="middle" x="748" y="-896.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="748" y="-872.8" font-family="Times,serif" font-size="24.00" fill="#000000">0.52s(14.25%)</text>
<text text-anchor="middle" x="748" y="-848.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 0.89s(24.38%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N7 -->
<g id="edge12" class="edge">
<title>N6&#45;&gt;N7</title>
<g id="a_edge12"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (0.86s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M748,-969.7628C748,-958.1715 748,-943.9941 748,-930.3606"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="751.5001,-930.0927 748,-920.0928 744.5001,-930.0928 751.5001,-930.0927"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (0.86s)">
<text text-anchor="middle" x="764.7241" y="-940.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.86s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.heapBitsSetType (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="991.0835,-790 802.9165,-790 802.9165,-748 991.0835,-748 991.0835,-790"/>
<text text-anchor="middle" x="897" y="-772.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="897" y="-755.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.14s(3.84%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N24 -->
<g id="edge29" class="edge">
<title>N7&#45;&gt;N24</title>
<g id="a_edge29"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.14s)">
<path fill="none" stroke="#000000" d="M801.7924,-839.9265C821.2773,-825.4108 842.8151,-809.3659 860.47,-796.2136"/>
<polygon fill="#000000" stroke="#000000" points="862.8707,-798.7897 868.7991,-790.0087 858.6888,-793.1761 862.8707,-798.7897"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.14s)">
<text text-anchor="middle" x="861.7241" y="-810.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.gcStart (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="784.7699,-787 711.2301,-787 711.2301,-751 784.7699,-751 784.7699,-787"/>
<text text-anchor="middle" x="748" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcStart</text>
<text text-anchor="middle" x="748" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(3.56%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N66 -->
<g id="edge33" class="edge">
<title>N7&#45;&gt;N66</title>
<g id="a_edge33"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.13s)">
<path fill="none" stroke="#000000" d="M748,-839.9265C748,-825.8572 748,-810.3512 748,-797.4349"/>
<polygon fill="#000000" stroke="#000000" points="751.5001,-797.2827 748,-787.2827 744.5001,-797.2828 751.5001,-797.2827"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.13s)">
<text text-anchor="middle" x="764.7241" y="-810.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.(*mcache).nextFree (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1718.1257,-787 1611.8743,-787 1611.8743,-751 1718.1257,-751 1718.1257,-787"/>
<text text-anchor="middle" x="1665" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="1665" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(2.47%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N70 -->
<g id="edge49" class="edge">
<title>N7&#45;&gt;N70</title>
<g id="a_edge49"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.09s)">
<path fill="none" stroke="#000000" d="M840.1702,-876.9845C998.046,-870.339 1329.6289,-849.9063 1603,-790 1603.6071,-789.867 1604.2165,-789.73 1604.828,-789.5894"/>
<polygon fill="#000000" stroke="#000000" points="1606.0263,-792.8956 1614.8467,-787.0261 1604.2912,-786.1141 1606.0263,-792.8956"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.09s)">
<text text-anchor="middle" x="1528.7241" y="-810.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N6 -->
<g id="edge14" class="edge">
<title>N8&#45;&gt;N6</title>
<g id="a_edge14"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.53s)">
<path fill="none" stroke="#000000" d="M748,-1069.8548C748,-1057.756 748,-1043.4754 748,-1030.6485"/>
<polygon fill="#000000" stroke="#000000" points="751.5001,-1030.2955 748,-1020.2956 744.5001,-1030.2956 751.5001,-1030.2955"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.53s)">
<text text-anchor="middle" x="764.7241" y="-1040.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.53s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="runtime.typedmemmove (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1752.9426,-1018.5 1609.0574,-1018.5 1609.0574,-971.5 1752.9426,-971.5 1752.9426,-1018.5"/>
<text text-anchor="middle" x="1681" y="-1004.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="1681" y="-991.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.37%)</text>
<text text-anchor="middle" x="1681" y="-978.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.30s(8.22%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N13 -->
<g id="edge30" class="edge">
<title>N8&#45;&gt;N13</title>
<g id="a_edge30"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.13s)">
<path fill="none" stroke="#000000" d="M811.7617,-1090.9609C976.4086,-1072.7845 1415.6937,-1024.2889 1598.9387,-1004.0593"/>
<polygon fill="#000000" stroke="#000000" points="1599.498,-1007.5189 1609.0536,-1002.9426 1598.7299,-1000.5612 1599.498,-1007.5189"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.13s)">
<text text-anchor="middle" x="1287.7241" y="-1040.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.systemstack (0.69s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1738.586,-698 1591.414,-698 1591.414,-642 1738.586,-642 1738.586,-698"/>
<text text-anchor="middle" x="1665" y="-681.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="1665" y="-665.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.11s(3.01%)</text>
<text text-anchor="middle" x="1665" y="-649.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.69s(18.90%)</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.deferproc.func1 (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1745.7668,-592 1584.2332,-592 1584.2332,-539 1745.7668,-539 1745.7668,-592"/>
<text text-anchor="middle" x="1665" y="-576" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="1665" y="-561" font-family="Times,serif" font-size="15.00" fill="#000000">0.09s(2.47%)</text>
<text text-anchor="middle" x="1665" y="-546" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.20s(5.48%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N17 -->
<g id="edge22" class="edge">
<title>N9&#45;&gt;N17</title>
<g id="a_edge22"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.20s)">
<path fill="none" stroke="#000000" d="M1665,-641.9959C1665,-629.7835 1665,-615.3005 1665,-602.2395"/>
<polygon fill="#000000" stroke="#000000" points="1668.5001,-602.1401 1665,-592.1401 1661.5001,-602.1402 1668.5001,-602.1401"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.20s)">
<text text-anchor="middle" x="1681.7241" y="-612.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.deferreturn.func1 (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1451.6153,-586 1322.3847,-586 1322.3847,-545 1451.6153,-545 1451.6153,-586"/>
<text text-anchor="middle" x="1387" y="-573.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="1387" y="-562.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1387" y="-551.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.13s(3.56%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N25 -->
<g id="edge36" class="edge">
<title>N9&#45;&gt;N25</title>
<g id="a_edge36"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.13s)">
<path fill="none" stroke="#000000" d="M1591.231,-642.2703C1547.655,-625.8901 1493.0175,-605.3519 1451.2226,-589.6412"/>
<polygon fill="#000000" stroke="#000000" points="1452.293,-586.3045 1441.7009,-586.062 1449.8299,-592.8569 1452.293,-586.3045"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.13s)">
<text text-anchor="middle" x="1551.7241" y="-612.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.semasleep.func1 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1565.9727,-583.5 1470.0273,-583.5 1470.0273,-547.5 1565.9727,-547.5 1565.9727,-583.5"/>
<text text-anchor="middle" x="1518" y="-567.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep.func1</text>
<text text-anchor="middle" x="1518" y="-559.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.55%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N55 -->
<g id="edge101" class="edge">
<title>N9&#45;&gt;N55</title>
<g id="a_edge101"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.02s)">
<path fill="none" stroke="#000000" d="M1625.6067,-641.9959C1602.6325,-625.6639 1573.9459,-605.271 1551.9703,-589.649"/>
<polygon fill="#000000" stroke="#000000" points="1553.7812,-586.642 1543.6028,-583.7006 1549.7253,-592.3474 1553.7812,-586.642"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.02s)">
<text text-anchor="middle" x="1612.7241" y="-612.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.startTheWorldWithSema (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1304.3482,-583.5 1181.6518,-583.5 1181.6518,-547.5 1304.3482,-547.5 1304.3482,-583.5"/>
<text text-anchor="middle" x="1243" y="-567.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.startTheWorldWithSema</text>
<text text-anchor="middle" x="1243" y="-559.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(3.56%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N67 -->
<g id="edge37" class="edge">
<title>N9&#45;&gt;N67</title>
<g id="a_edge37"><a xlink:title="runtime.systemstack &#45;&gt; runtime.startTheWorldWithSema (0.13s)">
<path fill="none" stroke="#000000" d="M1591.4058,-656.8921C1519.6412,-643.3624 1407.7686,-620.2784 1313,-592 1307.8636,-590.4673 1302.565,-588.7405 1297.2898,-586.922"/>
<polygon fill="#000000" stroke="#000000" points="1298.4547,-583.6216 1287.86,-583.5716 1296.1111,-590.2176 1298.4547,-583.6216"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.startTheWorldWithSema (0.13s)">
<text text-anchor="middle" x="1444.7241" y="-612.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1890.3399,-583.5 1763.6601,-583.5 1763.6601,-547.5 1890.3399,-547.5 1890.3399,-583.5"/>
<text text-anchor="middle" x="1827" y="-567.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="1827" y="-559.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(2.19%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N73 -->
<g id="edge57" class="edge">
<title>N9&#45;&gt;N73</title>
<g id="a_edge57"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.08s)">
<path fill="none" stroke="#000000" d="M1708.413,-641.9959C1733.9556,-625.5194 1765.9054,-604.9098 1790.2045,-589.2353"/>
<polygon fill="#000000" stroke="#000000" points="1792.2785,-592.0625 1798.7846,-583.7006 1788.484,-586.1802 1792.2785,-592.0625"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.08s)">
<text text-anchor="middle" x="1772.7241" y="-612.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N6 -->
<g id="edge16" class="edge">
<title>N10&#45;&gt;N6</title>
<g id="a_edge16"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.36s)">
<path fill="none" stroke="#000000" d="M542.6884,-1277.2241C530.67,-1226.0077 510.8911,-1104.5245 573,-1038 587.4784,-1022.4923 635.7348,-1011.347 677.9147,-1004.2946"/>
<polygon fill="#000000" stroke="#000000" points="678.6081,-1007.728 687.9215,-1002.6772 677.4911,-1000.8177 678.6081,-1007.728"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.36s)">
<text text-anchor="middle" x="548.7241" y="-1146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N9 -->
<g id="edge21" class="edge">
<title>N11&#45;&gt;N9</title>
<g id="a_edge21"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.20s)">
<path fill="none" stroke="#000000" d="M1875.1588,-1377.3306C1859.1835,-1357.5734 1842,-1329.6606 1842,-1301 1842,-1301 1842,-1301 1842,-769 1842,-722.2408 1794.3664,-697.3531 1748.5204,-684.2282"/>
<polygon fill="#000000" stroke="#000000" points="1749.3486,-680.8266 1738.7822,-681.6024 1747.5262,-687.5852 1749.3486,-680.8266"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.20s)">
<text text-anchor="middle" x="1858.7241" y="-1040.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.getcallersp (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1985.9883,-1319 1870.0117,-1319 1870.0117,-1283 1985.9883,-1283 1985.9883,-1319"/>
<text text-anchor="middle" x="1928" y="-1303.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.getcallersp</text>
<text text-anchor="middle" x="1928" y="-1290.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.10%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N45 -->
<g id="edge80" class="edge">
<title>N11&#45;&gt;N45</title>
<g id="a_edge80"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallersp (0.03s)">
<path fill="none" stroke="#000000" d="M1903.1144,-1377.292C1904.0231,-1366.7124 1905.6504,-1354.6723 1908.5518,-1344 1909.9401,-1338.893 1911.8661,-1333.6256 1913.9699,-1328.6038"/>
<polygon fill="#000000" stroke="#000000" points="1917.2197,-1329.9113 1918.1402,-1319.3565 1910.8385,-1327.0335 1917.2197,-1329.9113"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallersp (0.03s)">
<text text-anchor="middle" x="1924.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N9 -->
<g id="edge31" class="edge">
<title>N12&#45;&gt;N9</title>
<g id="a_edge31"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.13s)">
<path fill="none" stroke="#000000" d="M2053.4322,-1378.724C2054.3382,-1346.0475 2053.1626,-1289.5258 2038,-1244 2006.2431,-1148.65 1946.6251,-1148.4988 1918.5518,-1052 1911.4749,-1027.674 1918,-1020.3345 1918,-995 1918,-995 1918,-995 1918,-815 1918,-735.4613 1822.7094,-698.9371 1749.0902,-682.5881"/>
<polygon fill="#000000" stroke="#000000" points="1749.3675,-679.0689 1738.8582,-680.4127 1747.9117,-685.9159 1749.3675,-679.0689"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.13s)">
<text text-anchor="middle" x="1934.7241" y="-1040.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.memmove (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2045.0493,-489 1884.9507,-489 1884.9507,-443 2045.0493,-443 2045.0493,-489"/>
<text text-anchor="middle" x="1965" y="-469.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="1965" y="-450.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.21s(5.75%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N16 -->
<g id="edge69" class="edge">
<title>N12&#45;&gt;N16</title>
<g id="a_edge69"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.06s)">
<path fill="none" stroke="#000000" d="M2040.5799,-1378.9193C2017.1862,-1323.5242 1966,-1197.0555 1966,-1151 1966,-1151 1966,-1151 1966,-565.5 1966,-543.4903 1965.7523,-518.7435 1965.5035,-499.4354"/>
<polygon fill="#000000" stroke="#000000" points="1969.0017,-499.2719 1965.3667,-489.3202 1962.0023,-499.3666 1969.0017,-499.2719"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.06s)">
<text text-anchor="middle" x="1982.7241" y="-940.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N45 -->
<g id="edge106" class="edge">
<title>N12&#45;&gt;N45</title>
<g id="a_edge106"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.getcallersp (0.01s)">
<path fill="none" stroke="#000000" d="M1995.2034,-1378.8889C1985.079,-1372.8034 1975.0612,-1365.7971 1966.5518,-1358 1957.1503,-1349.3856 1948.8869,-1338.0461 1942.4468,-1327.7512"/>
<polygon fill="#000000" stroke="#000000" points="1945.3987,-1325.8676 1937.2739,-1319.0678 1939.385,-1329.4502 1945.3987,-1325.8676"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.getcallersp (0.01s)">
<text text-anchor="middle" x="1982.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N46 -->
<g id="edge107" class="edge">
<title>N12&#45;&gt;N46</title>
<g id="a_edge107"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.jmpdefer (0.01s)">
<path fill="none" stroke="#000000" d="M2064.0602,-1378.869C2069.783,-1367.5783 2077.2001,-1354.6073 2085.5518,-1344 2090.484,-1337.7357 2096.3766,-1331.6065 2102.3045,-1326.0283"/>
<polygon fill="#000000" stroke="#000000" points="2104.6897,-1328.5902 2109.7622,-1319.2885 2099.9963,-1323.3967 2104.6897,-1328.5902"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.jmpdefer (0.01s)">
<text text-anchor="middle" x="2101.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N16 -->
<g id="edge38" class="edge">
<title>N13&#45;&gt;N16</title>
<g id="a_edge38"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.13s)">
<path fill="none" stroke="#000000" d="M1724.7496,-971.344C1745.3034,-958.4258 1768.7903,-940.8111 1785,-920 1812.61,-884.5524 1917.905,-596.545 1953.308,-498.524"/>
<polygon fill="#000000" stroke="#000000" points="1956.6011,-499.7094 1956.7023,-489.1151 1950.0165,-497.334 1956.6011,-499.7094"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.13s)">
<text text-anchor="middle" x="1888.7241" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.heapBitsBulkBarrier (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1776.1798,-900 1573.8202,-900 1573.8202,-860 1776.1798,-860 1776.1798,-900"/>
<text text-anchor="middle" x="1675" y="-883.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.heapBitsBulkBarrier</text>
<text text-anchor="middle" x="1675" y="-867.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.12s(3.29%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N27 -->
<g id="edge41" class="edge">
<title>N13&#45;&gt;N27</title>
<g id="a_edge41"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.12s)">
<path fill="none" stroke="#000000" d="M1679.7713,-971.4505C1678.8456,-953.7082 1677.5694,-929.2469 1676.5698,-910.087"/>
<polygon fill="#000000" stroke="#000000" points="1680.0632,-909.8684 1676.0468,-900.0643 1673.0727,-910.2332 1680.0632,-909.8684"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.12s)">
<text text-anchor="middle" x="1695.7241" y="-940.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.mapassign1 (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1813.6485,-1326 1684.3515,-1326 1684.3515,-1276 1813.6485,-1276 1813.6485,-1326"/>
<text text-anchor="middle" x="1749" y="-1310.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="1749" y="-1296.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.64%)</text>
<text text-anchor="middle" x="1749" y="-1282.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.16s(4.38%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N21 -->
<g id="edge27" class="edge">
<title>N14&#45;&gt;N21</title>
<g id="a_edge27"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.16s)">
<path fill="none" stroke="#000000" d="M1714.9843,-1381.7873C1720.7248,-1368.1535 1728.0399,-1350.7802 1734.4145,-1335.6406"/>
<polygon fill="#000000" stroke="#000000" points="1737.7868,-1336.6506 1738.4417,-1326.076 1731.3353,-1333.9342 1737.7868,-1336.6506"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.16s)">
<text text-anchor="middle" x="1746.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.assertI2T (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1735.0537,-1121.5 1626.9463,-1121.5 1626.9463,-1074.5 1735.0537,-1074.5 1735.0537,-1121.5"/>
<text text-anchor="middle" x="1681" y="-1107.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="1681" y="-1094.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.37%)</text>
<text text-anchor="middle" x="1681" y="-1081.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.15s(4.11%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N23 -->
<g id="edge77" class="edge">
<title>N14&#45;&gt;N23</title>
<g id="a_edge77"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1692.6748,-1381.9133C1668.2753,-1335.1222 1615.9898,-1234.3256 1614,-1226 1608.8343,-1204.3865 1606.2791,-1196.8378 1614,-1176 1620.5328,-1158.3686 1633.0318,-1142.0418 1645.4816,-1128.9306"/>
<polygon fill="#000000" stroke="#000000" points="1648.2002,-1131.1601 1652.7607,-1121.597 1643.232,-1126.2288 1648.2002,-1131.1601"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="1645.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="main.(*machine).popValue (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1627.7736,-1321 1438.2264,-1321 1438.2264,-1281 1627.7736,-1281 1627.7736,-1321"/>
<text text-anchor="middle" x="1533" y="-1304.2" font-family="Times,serif" font-size="16.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="1533" y="-1288.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.10s(2.74%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N29 -->
<g id="edge70" class="edge">
<title>N14&#45;&gt;N29</title>
<g id="a_edge70"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.05s)">
<path fill="none" stroke="#000000" d="M1652.7261,-1381.9849C1638.1258,-1374.823 1622.4581,-1366.5641 1608.5518,-1358 1593.8616,-1348.9532 1578.512,-1337.7386 1565.5152,-1327.6564"/>
<polygon fill="#000000" stroke="#000000" points="1567.3683,-1324.661 1557.3448,-1321.2287 1563.0401,-1330.1626 1567.3683,-1324.661"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.05s)">
<text text-anchor="middle" x="1625.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N23 -->
<g id="edge42" class="edge">
<title>N15&#45;&gt;N23</title>
<g id="a_edge42"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.11s)">
<path fill="none" stroke="#000000" d="M2291.7572,-1381.9933C2274.1174,-1366.7662 2251.3519,-1346.093 2233,-1326 2214.1766,-1305.3908 2217.6001,-1292.3797 2195,-1276 2121.091,-1222.4336 1865.7048,-1148.2656 1745.0676,-1115.1556"/>
<polygon fill="#000000" stroke="#000000" points="1745.789,-1111.7244 1735.2199,-1112.4619 1743.9421,-1118.4763 1745.789,-1111.7244"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.11s)">
<text text-anchor="middle" x="2179.4678" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N29 -->
<g id="edge78" class="edge">
<title>N15&#45;&gt;N29</title>
<g id="a_edge78"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M2243.7928,-1381.9398C2188.3137,-1364.8264 2122.3108,-1344.564 2119,-1344 1924.309,-1310.8361 1871.3576,-1347.1692 1675,-1326 1662.9227,-1324.698 1650.3216,-1322.9912 1637.8293,-1321.08"/>
<polygon fill="#000000" stroke="#000000" points="1638.2691,-1317.6062 1627.8462,-1319.5072 1637.1797,-1324.5209 1638.2691,-1317.6062"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="2180.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.mapaccess2_faststr (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2413.6143,-1326 2242.3857,-1326 2242.3857,-1276 2413.6143,-1276 2413.6143,-1326"/>
<text text-anchor="middle" x="2328" y="-1310.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="2328" y="-1296.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.64%)</text>
<text text-anchor="middle" x="2328" y="-1282.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.08s(2.19%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N37 -->
<g id="edge52" class="edge">
<title>N15&#45;&gt;N37</title>
<g id="a_edge52"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.08s)">
<path fill="none" stroke="#000000" d="M2321.8153,-1381.7873C2322.8491,-1368.2833 2324.1638,-1351.1108 2325.3149,-1336.0738"/>
<polygon fill="#000000" stroke="#000000" points="2328.8067,-1336.3141 2326.0803,-1326.076 2321.8271,-1335.7797 2328.8067,-1336.3141"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.08s)">
<text text-anchor="middle" x="2340.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N16 -->
<g id="edge92" class="edge">
<title>N17&#45;&gt;N16</title>
<g id="a_edge92"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<path fill="none" stroke="#000000" d="M1745.8586,-541.314C1748.9394,-540.5126 1751.9945,-539.7381 1755,-539 1795.0384,-529.1673 1807.3679,-535.3985 1846,-521 1857.7703,-516.6131 1859.318,-512.6204 1870.5518,-507 1879.8801,-502.3329 1889.8629,-497.6633 1899.7173,-493.2348"/>
<polygon fill="#000000" stroke="#000000" points="1901.3797,-496.3262 1909.1003,-489.0707 1898.5402,-489.928 1901.3797,-496.3262"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<text text-anchor="middle" x="1886.7241" y="-509.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.newdefer (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1726.2013,-485 1603.7987,-485 1603.7987,-447 1726.2013,-447 1726.2013,-485"/>
<text text-anchor="middle" x="1665" y="-469" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="1665" y="-454" font-family="Times,serif" font-size="15.00" fill="#000000">0.09s(2.47%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N32 -->
<g id="edge48" class="edge">
<title>N17&#45;&gt;N32</title>
<g id="a_edge48"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.09s)">
<path fill="none" stroke="#000000" d="M1665,-538.8358C1665,-525.4817 1665,-509.2762 1665,-495.5446"/>
<polygon fill="#000000" stroke="#000000" points="1668.5001,-495.1643 1665,-485.1643 1661.5001,-495.1644 1668.5001,-495.1643"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.09s)">
<text text-anchor="middle" x="1681.7241" y="-509.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.assertI2I (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1238.3356,-1321.5 1147.6644,-1321.5 1147.6644,-1280.5 1238.3356,-1280.5 1238.3356,-1321.5"/>
<text text-anchor="middle" x="1193" y="-1308.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="1193" y="-1297.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1193" y="-1286.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.06s(1.64%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N41 -->
<g id="edge75" class="edge">
<title>N18&#45;&gt;N41</title>
<g id="a_edge75"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.04s)">
<path fill="none" stroke="#000000" d="M1180.9635,-1384.8542C1183.1412,-1369.6827 1186.1363,-1348.8168 1188.594,-1331.6953"/>
<polygon fill="#000000" stroke="#000000" points="1192.0862,-1331.9988 1190.0426,-1321.6029 1185.1572,-1331.0042 1192.0862,-1331.9988"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.04s)">
<text text-anchor="middle" x="1203.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.convI2I (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1129.6833,-1321.5 1042.3167,-1321.5 1042.3167,-1280.5 1129.6833,-1280.5 1129.6833,-1321.5"/>
<text text-anchor="middle" x="1086" y="-1308.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="1086" y="-1297.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1086" y="-1286.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.04s(1.10%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N44 -->
<g id="edge91" class="edge">
<title>N18&#45;&gt;N44</title>
<g id="a_edge91"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.02s)">
<path fill="none" stroke="#000000" d="M1133.7354,-1384.9656C1109.1596,-1373.3526 1083.1911,-1360.6347 1081.5518,-1358 1076.7131,-1350.2234 1075.9405,-1340.6475 1076.9314,-1331.5796"/>
<polygon fill="#000000" stroke="#000000" points="1080.3872,-1332.1365 1078.6768,-1321.6806 1073.4935,-1330.921 1080.3872,-1332.1365"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.02s)">
<text text-anchor="middle" x="1098.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="main.(*Integer).Add (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1024.7543,-1319 943.2457,-1319 943.2457,-1283 1024.7543,-1283 1024.7543,-1319"/>
<text text-anchor="middle" x="984" y="-1302.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="984" y="-1294.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(2.19%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N71 -->
<g id="edge55" class="edge">
<title>N18&#45;&gt;N71</title>
<g id="a_edge55"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.08s)">
<path fill="none" stroke="#000000" d="M1136.474,-1384.9676C1129.088,-1381.7177 1121.392,-1378.5826 1114,-1376 1082.2711,-1364.9145 1069.8046,-1374.5492 1040.5518,-1358 1026.688,-1350.1569 1013.9337,-1337.9593 1004.0605,-1326.857"/>
<polygon fill="#000000" stroke="#000000" points="1006.5547,-1324.3876 997.4058,-1319.0444 1001.2258,-1328.9266 1006.5547,-1324.3876"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.08s)">
<text text-anchor="middle" x="1057.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.mach_semaphore_signal (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1370.4301,-44 1115.5699,-44 1115.5699,0 1370.4301,0 1370.4301,-44"/>
<text text-anchor="middle" x="1243" y="-25.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="1243" y="-7.6" font-family="Times,serif" font-size="18.00" fill="#000000">0.17s(4.66%)</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.notewakeup (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1283.5365,-302 1202.4635,-302 1202.4635,-266 1283.5365,-266 1283.5365,-302"/>
<text text-anchor="middle" x="1243" y="-285.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notewakeup</text>
<text text-anchor="middle" x="1243" y="-277.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.17s(4.66%)</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.semawakeup (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1285.1995,-216 1200.8005,-216 1200.8005,-180 1285.1995,-180 1285.1995,-216"/>
<text text-anchor="middle" x="1243" y="-199.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semawakeup</text>
<text text-anchor="middle" x="1243" y="-191.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.17s(4.66%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N65 -->
<g id="edge25" class="edge">
<title>N20&#45;&gt;N65</title>
<g id="a_edge25"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (0.17s)">
<path fill="none" stroke="#000000" d="M1243,-265.7616C1243,-254.3597 1243,-239.4342 1243,-226.494"/>
<polygon fill="#000000" stroke="#000000" points="1246.5001,-226.2121 1243,-216.2121 1239.5001,-226.2121 1246.5001,-226.2121"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (0.17s)">
<text text-anchor="middle" x="1259.7241" y="-236.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N13 -->
<g id="edge65" class="edge">
<title>N21&#45;&gt;N13</title>
<g id="a_edge65"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.07s)">
<path fill="none" stroke="#000000" d="M1753.8835,-1275.9776C1761.2314,-1232.3801 1771.5352,-1140.4223 1744,-1070 1737.6411,-1053.7369 1726.2469,-1038.4534 1714.8802,-1025.9802"/>
<polygon fill="#000000" stroke="#000000" points="1717.2804,-1023.4254 1707.8515,-1018.5935 1712.2093,-1028.2507 1717.2804,-1023.4254"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.07s)">
<text text-anchor="middle" x="1778.7241" y="-1146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.aeshashbody (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1740.6431,-1219 1623.3569,-1219 1623.3569,-1183 1740.6431,-1183 1740.6431,-1219"/>
<text text-anchor="middle" x="1682" y="-1203.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="1682" y="-1191.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.55%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N48 -->
<g id="edge98" class="edge">
<title>N21&#45;&gt;N48</title>
<g id="a_edge98"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.02s)">
<path fill="none" stroke="#000000" d="M1732.0931,-1275.7658C1722.2417,-1261.0622 1709.829,-1242.5358 1699.8245,-1227.6038"/>
<polygon fill="#000000" stroke="#000000" points="1702.7238,-1225.6429 1694.2499,-1219.2834 1696.9084,-1229.5393 1702.7238,-1225.6429"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.02s)">
<text text-anchor="middle" x="1736.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N29 -->
<g id="edge88" class="edge">
<title>N22&#45;&gt;N29</title>
<g id="a_edge88"><a xlink:title="main.executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M1352.1843,-1384.9788C1389.0322,-1367.8651 1441.6166,-1343.4425 1480.5868,-1325.343"/>
<polygon fill="#000000" stroke="#000000" points="1482.0865,-1328.5056 1489.6817,-1321.1189 1479.1379,-1322.1569 1482.0865,-1328.5056"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="1450.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="main.(*Integer).Multiply (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1381.9731,-1321.5 1256.0269,-1321.5 1256.0269,-1280.5 1381.9731,-1280.5 1381.9731,-1321.5"/>
<text text-anchor="middle" x="1319" y="-1308.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="1319" y="-1297.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1319" y="-1286.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.08s(2.19%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N33 -->
<g id="edge54" class="edge">
<title>N22&#45;&gt;N33</title>
<g id="a_edge54"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.08s)">
<path fill="none" stroke="#000000" d="M1310.1732,-1384.8542C1311.7702,-1369.6827 1313.9666,-1348.8168 1315.7689,-1331.6953"/>
<polygon fill="#000000" stroke="#000000" points="1319.2651,-1331.9144 1316.8313,-1321.6029 1312.3036,-1331.1816 1319.2651,-1331.9144"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.08s)">
<text text-anchor="middle" x="1331.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N41 -->
<g id="edge89" class="edge">
<title>N22&#45;&gt;N41</title>
<g id="a_edge89"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.02s)">
<path fill="none" stroke="#000000" d="M1285.2797,-1384.8542C1267.4812,-1368.6808 1242.5613,-1346.0361 1223.1036,-1328.355"/>
<polygon fill="#000000" stroke="#000000" points="1225.4278,-1325.7378 1215.6731,-1321.6029 1220.7202,-1330.9184 1225.4278,-1325.7378"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.02s)">
<text text-anchor="middle" x="1270.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N44 -->
<g id="edge90" class="edge">
<title>N22&#45;&gt;N44</title>
<g id="a_edge90"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.02s)">
<path fill="none" stroke="#000000" d="M1265.9543,-1384.986C1258.1141,-1381.6568 1249.9005,-1378.4899 1242,-1376 1201.66,-1363.2863 1186.3636,-1376.9529 1148.5518,-1358 1134.3582,-1350.8856 1121.0017,-1339.6209 1110.3045,-1328.9775"/>
<polygon fill="#000000" stroke="#000000" points="1112.8088,-1326.5322 1103.3461,-1321.7668 1107.7717,-1331.3931 1112.8088,-1326.5322"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.02s)">
<text text-anchor="middle" x="1165.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N13 -->
<g id="edge45" class="edge">
<title>N23&#45;&gt;N13</title>
<g id="a_edge45"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.10s)">
<path fill="none" stroke="#000000" d="M1681,-1074.3697C1681,-1060.8922 1681,-1043.7706 1681,-1028.8824"/>
<polygon fill="#000000" stroke="#000000" points="1684.5001,-1028.5203 1681,-1018.5203 1677.5001,-1028.5204 1684.5001,-1028.5203"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.10s)">
<text text-anchor="middle" x="1697.7241" y="-1040.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.freedefer (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1450.9853,-486 1323.0147,-486 1323.0147,-446 1450.9853,-446 1450.9853,-486"/>
<text text-anchor="middle" x="1387" y="-469.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="1387" y="-453.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.12s(3.29%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N26 -->
<g id="edge40" class="edge">
<title>N25&#45;&gt;N26</title>
<g id="a_edge40"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.12s)">
<path fill="none" stroke="#000000" d="M1387,-544.8835C1387,-530.9163 1387,-512.2187 1387,-496.5328"/>
<polygon fill="#000000" stroke="#000000" points="1390.5001,-496.2496 1387,-486.2496 1383.5001,-496.2496 1390.5001,-496.2496"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.12s)">
<text text-anchor="middle" x="1403.7241" y="-509.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime._System (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1593.9781,-787 1520.0219,-787 1520.0219,-751 1593.9781,-751 1593.9781,-787"/>
<text text-anchor="middle" x="1557" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="1557" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(3.01%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N9 -->
<g id="edge43" class="edge">
<title>N28&#45;&gt;N9</title>
<g id="a_edge43"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.11s)">
<path fill="none" stroke="#000000" d="M1576.8089,-750.8419C1590.7502,-738.0623 1609.8567,-720.548 1626.7218,-705.0883"/>
<polygon fill="#000000" stroke="#000000" points="1629.2798,-707.4915 1634.2863,-698.1542 1624.5497,-702.3314 1629.2798,-707.4915"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.11s)">
<text text-anchor="middle" x="1631.4678" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="main.Integer.Multiply (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1362.2151,-1219 1275.7849,-1219 1275.7849,-1183 1362.2151,-1183 1362.2151,-1219"/>
<text text-anchor="middle" x="1319" y="-1202.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="1319" y="-1194.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.92%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N74 -->
<g id="edge58" class="edge">
<title>N33&#45;&gt;N74</title>
<g id="a_edge58"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.07s)">
<path fill="none" stroke="#000000" d="M1319,-1280.2799C1319,-1265.4505 1319,-1245.3154 1319,-1229.0482"/>
<polygon fill="#000000" stroke="#000000" points="1322.5001,-1229.0115 1319,-1219.0116 1315.5001,-1229.0116 1322.5001,-1229.0115"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.07s)">
<text text-anchor="middle" x="1335.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N8 -->
<g id="edge68" class="edge">
<title>N34&#45;&gt;N8</title>
<g id="a_edge68"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.06s)">
<path fill="none" stroke="#000000" d="M987.2972,-1383.1933C971.46,-1367.7822 950.5731,-1346.4521 934,-1326 883.4001,-1263.5572 885.4164,-1236.926 833,-1176 820.1051,-1161.0116 804.5155,-1145.9841 790.227,-1133.1764"/>
<polygon fill="#000000" stroke="#000000" points="792.2596,-1130.3019 782.4482,-1126.3037 787.6249,-1135.5477 792.2596,-1130.3019"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.06s)">
<text text-anchor="middle" x="905.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.(*mcache).refill (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1867.4009,-486.5 1744.5991,-486.5 1744.5991,-445.5 1867.4009,-445.5 1867.4009,-486.5"/>
<text text-anchor="middle" x="1806" y="-473.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="1806" y="-462.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1806" y="-451.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.08s(2.19%)</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.(*mcentral).cacheSpan (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1864.3991,-390.5 1747.6009,-390.5 1747.6009,-354.5 1864.3991,-354.5 1864.3991,-390.5"/>
<text text-anchor="middle" x="1806" y="-374.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="1806" y="-366.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.92%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N75 -->
<g id="edge59" class="edge">
<title>N35&#45;&gt;N75</title>
<g id="a_edge59"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.07s)">
<path fill="none" stroke="#000000" d="M1806,-445.2493C1806,-432.2161 1806,-415.23 1806,-400.9493"/>
<polygon fill="#000000" stroke="#000000" points="1809.5001,-400.6663 1806,-390.6664 1802.5001,-400.6664 1809.5001,-400.6663"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.07s)">
<text text-anchor="middle" x="1822.7241" y="-413.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.getitab (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1237.0974,-1226 1130.9026,-1226 1130.9026,-1176 1237.0974,-1176 1237.0974,-1226"/>
<text text-anchor="middle" x="1184" y="-1210.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="1184" y="-1196.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.64%)</text>
<text text-anchor="middle" x="1184" y="-1182.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.08s(2.19%)</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime/internal/atomic.Loadp (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1252.4531,-1116 1089.5469,-1116 1089.5469,-1080 1252.4531,-1080 1252.4531,-1116"/>
<text text-anchor="middle" x="1171" y="-1100.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime/internal/atomic.Loadp</text>
<text text-anchor="middle" x="1171" y="-1088.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.55%)</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N57 -->
<g id="edge93" class="edge">
<title>N36&#45;&gt;N57</title>
<g id="a_edge93"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.02s)">
<path fill="none" stroke="#000000" d="M1180.8198,-1175.8034C1178.9265,-1160.8025 1176.5195,-1141.7318 1174.5625,-1126.2257"/>
<polygon fill="#000000" stroke="#000000" points="1178.016,-1125.6371 1173.2913,-1116.1541 1171.0711,-1126.5137 1178.016,-1125.6371"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.02s)">
<text text-anchor="middle" x="1195.7241" y="-1146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.memeqbody (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2385.6451,-1219 2270.3549,-1219 2270.3549,-1183 2385.6451,-1183 2385.6451,-1219"/>
<text text-anchor="middle" x="2328" y="-1203.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2328" y="-1191.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.55%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N54 -->
<g id="edge97" class="edge">
<title>N37&#45;&gt;N54</title>
<g id="a_edge97"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.02s)">
<path fill="none" stroke="#000000" d="M2328,-1275.7658C2328,-1261.6118 2328,-1243.9156 2328,-1229.2931"/>
<polygon fill="#000000" stroke="#000000" points="2331.5001,-1229.2833 2328,-1219.2834 2324.5001,-1229.2834 2331.5001,-1229.2833"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.02s)">
<text text-anchor="middle" x="2344.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.schedule (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2150.9489,-393 2059.0511,-393 2059.0511,-352 2150.9489,-352 2150.9489,-393"/>
<text text-anchor="middle" x="2105" y="-380.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="2105" y="-369.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="2105" y="-358.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.08s(2.19%)</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N20 -->
<g id="edge81" class="edge">
<title>N38&#45;&gt;N20</title>
<g id="a_edge81"><a xlink:title="runtime.schedule ... runtime.notewakeup (0.03s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2059.2637,-367.8043C1911.5982,-352.6438 1448.1972,-305.0672 1293.6965,-289.2049"/>
<polygon fill="#000000" stroke="#000000" points="1293.8486,-285.7022 1283.5434,-288.1625 1293.1336,-292.6656 1293.8486,-285.7022"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.schedule ... runtime.notewakeup (0.03s)">
<text text-anchor="middle" x="1742.7241" y="-322.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.findrunnable (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2146.8209,-302 2063.1791,-302 2063.1791,-266 2146.8209,-266 2146.8209,-302"/>
<text text-anchor="middle" x="2105" y="-285.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="2105" y="-277.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.55%)</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N50 -->
<g id="edge99" class="edge">
<title>N38&#45;&gt;N50</title>
<g id="a_edge99"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.02s)">
<path fill="none" stroke="#000000" d="M2105,-351.9739C2105,-340.1658 2105,-325.1577 2105,-312.2491"/>
<polygon fill="#000000" stroke="#000000" points="2108.5001,-312.0159 2105,-302.016 2101.5001,-312.016 2108.5001,-312.0159"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.02s)">
<text text-anchor="middle" x="2121.7241" y="-322.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.memclr (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1858.8039,-130 1753.1961,-130 1753.1961,-94 1858.8039,-94 1858.8039,-130"/>
<text text-anchor="middle" x="1806" y="-114.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="1806" y="-100.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.07s(1.92%)</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.morestack (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2142.7582,-787 2067.2418,-787 2067.2418,-751 2142.7582,-751 2142.7582,-787"/>
<text text-anchor="middle" x="2105" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="2105" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.92%)</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.newstack (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2141.7699,-688 2068.2301,-688 2068.2301,-652 2141.7699,-652 2141.7699,-688"/>
<text text-anchor="middle" x="2105" y="-671.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="2105" y="-663.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.92%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N80 -->
<g id="edge66" class="edge">
<title>N40&#45;&gt;N80</title>
<g id="a_edge66"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.07s)">
<path fill="none" stroke="#000000" d="M2105,-750.8419C2105,-736.1888 2105,-715.311 2105,-698.443"/>
<polygon fill="#000000" stroke="#000000" points="2108.5001,-698.043 2105,-688.043 2101.5001,-698.043 2108.5001,-698.043"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.07s)">
<text text-anchor="middle" x="2121.7241" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N36 -->
<g id="edge71" class="edge">
<title>N41&#45;&gt;N36</title>
<g id="a_edge71"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.05s)">
<path fill="none" stroke="#000000" d="M1191.1352,-1280.2799C1190,-1267.6664 1188.5193,-1251.2144 1187.2012,-1236.569"/>
<polygon fill="#000000" stroke="#000000" points="1190.6598,-1235.9509 1186.2774,-1226.3049 1183.688,-1236.5784 1190.6598,-1235.9509"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.05s)">
<text text-anchor="middle" x="1206.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="886.8128,-1319 741.1872,-1319 741.1872,-1283 886.8128,-1283 886.8128,-1319"/>
<text text-anchor="middle" x="814" y="-1302.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="814" y="-1294.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.55%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N47 -->
<g id="edge87" class="edge">
<title>N43&#45;&gt;N47</title>
<g id="a_edge87"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.02s)">
<path fill="none" stroke="#000000" d="M836.0619,-1383.3382C831.8345,-1367.5607 826.1193,-1346.2308 821.5651,-1329.2341"/>
<polygon fill="#000000" stroke="#000000" points="824.8722,-1328.0531 818.9033,-1319.2996 818.1107,-1329.8648 824.8722,-1328.0531"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.02s)">
<text text-anchor="middle" x="845.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N36 -->
<g id="edge79" class="edge">
<title>N44&#45;&gt;N36</title>
<g id="a_edge79"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.03s)">
<path fill="none" stroke="#000000" d="M1106.3057,-1280.2799C1119.507,-1266.8092 1136.9987,-1248.9605 1152.0423,-1233.6099"/>
<polygon fill="#000000" stroke="#000000" points="1154.7016,-1235.8968 1159.2012,-1226.3049 1149.7021,-1230.9973 1154.7016,-1235.8968"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.03s)">
<text text-anchor="middle" x="1157.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.makemap (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="823.9805,-1219 750.0195,-1219 750.0195,-1183 823.9805,-1183 823.9805,-1219"/>
<text text-anchor="middle" x="787" y="-1202.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="787" y="-1194.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.55%)</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N53 -->
<g id="edge85" class="edge">
<title>N47&#45;&gt;N53</title>
<g id="a_edge85"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.02s)">
<path fill="none" stroke="#000000" d="M809.0478,-1282.6585C805.0134,-1267.7164 799.2489,-1246.3665 794.626,-1229.2446"/>
<polygon fill="#000000" stroke="#000000" points="797.9066,-1227.9672 791.9208,-1219.2253 791.1485,-1229.7919 797.9066,-1227.9672"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.02s)">
<text text-anchor="middle" x="819.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.assertI2T2 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1377.4727,-1116 1270.5273,-1116 1270.5273,-1080 1377.4727,-1080 1377.4727,-1116"/>
<text text-anchor="middle" x="1324" y="-1100.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2T2</text>
<text text-anchor="middle" x="1324" y="-1088.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.55%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N7 -->
<g id="edge95" class="edge">
<title>N52&#45;&gt;N7</title>
<g id="a_edge95"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.02s)">
<path fill="none" stroke="#000000" d="M283.9721,-1387.3009C323.5144,-1361.0972 391,-1314.4116 391,-1301 391,-1301 391,-1301 391,-995 391,-941.1449 540.0504,-908.8732 645.5338,-892.7776"/>
<polygon fill="#000000" stroke="#000000" points="646.228,-896.2128 655.5994,-891.2703 645.1913,-889.29 646.228,-896.2128"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.02s)">
<text text-anchor="middle" x="407.7241" y="-1146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N6 -->
<g id="edge96" class="edge">
<title>N53&#45;&gt;N6</title>
<g id="a_edge96"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.02s)">
<path fill="none" stroke="#000000" d="M749.9754,-1193.3826C715.1585,-1184.04 664.9874,-1164.4523 641.5518,-1126 628.5988,-1104.7473 630.0916,-1092.0935 641.5518,-1070 650.9479,-1051.8856 666.9523,-1037.221 683.7365,-1025.8255"/>
<polygon fill="#000000" stroke="#000000" points="686.0306,-1028.5119 692.5538,-1020.1634 682.2482,-1022.6218 686.0306,-1028.5119"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.02s)">
<text text-anchor="middle" x="658.7241" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.semasleep1 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1557.7582,-484 1478.2418,-484 1478.2418,-448 1557.7582,-448 1557.7582,-484"/>
<text text-anchor="middle" x="1518" y="-467.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="1518" y="-459.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.55%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N56 -->
<g id="edge100" class="edge">
<title>N55&#45;&gt;N56</title>
<g id="a_edge100"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.02s)">
<path fill="none" stroke="#000000" d="M1518,-547.2502C1518,-532.5231 1518,-511.5399 1518,-494.5866"/>
<polygon fill="#000000" stroke="#000000" points="1521.5001,-494.1341 1518,-484.1341 1514.5001,-494.1342 1521.5001,-494.1341"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.02s)">
<text text-anchor="middle" x="1534.7241" y="-509.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run (3.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="772.7502,-1903 633.2498,-1903 633.2498,-1867 772.7502,-1867 772.7502,-1903"/>
<text text-anchor="middle" x="703" y="-1886.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.(*App).Run</text>
<text text-anchor="middle" x="703" y="-1878.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.43s(93.97%)</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction (3.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="776.1837,-1817 629.8163,-1817 629.8163,-1781 776.1837,-1781 776.1837,-1817"/>
<text text-anchor="middle" x="703" y="-1800.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.HandleAction</text>
<text text-anchor="middle" x="703" y="-1792.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.43s(93.97%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N59 -->
<g id="edge1" class="edge">
<title>N58&#45;&gt;N59</title>
<g id="a_edge1"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (3.43s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-1866.7616C703,-1855.3597 703,-1840.4342 703,-1827.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1827.2121 703,-1817.2121 698.6251,-1827.2121 707.3751,-1827.2121"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (3.43s)">
<text text-anchor="middle" x="719.7241" y="-1837.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.43s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="main.handleFlags (3.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="741.7699,-1731 664.2301,-1731 664.2301,-1695 741.7699,-1695 741.7699,-1731"/>
<text text-anchor="middle" x="703" y="-1714.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.handleFlags</text>
<text text-anchor="middle" x="703" y="-1706.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.43s(93.97%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N61 -->
<g id="edge2" class="edge">
<title>N59&#45;&gt;N61</title>
<g id="a_edge2"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (3.43s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-1780.7616C703,-1769.3597 703,-1754.4342 703,-1741.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1741.2121 703,-1731.2121 698.6251,-1741.2121 707.3751,-1741.2121"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (3.43s)">
<text text-anchor="middle" x="719.7241" y="-1751.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.43s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="main.(*machine).executeString (3.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="761.407,-1645 644.593,-1645 644.593,-1609 761.407,-1609 761.407,-1645"/>
<text text-anchor="middle" x="703" y="-1628.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeString</text>
<text text-anchor="middle" x="703" y="-1620.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.43s(93.97%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N2 -->
<g id="edge3" class="edge">
<title>N60&#45;&gt;N2</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (3.43s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-1608.7104C703,-1597.7413 703,-1583.2432 703,-1569.248"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1569.2038 703,-1559.2038 698.6251,-1569.2038 707.3751,-1569.2038"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (3.43s)">
<text text-anchor="middle" x="719.7241" y="-1579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.43s</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N60 -->
<g id="edge4" class="edge">
<title>N61&#45;&gt;N60</title>
<g id="a_edge4"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (3.43s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-1694.7616C703,-1683.3597 703,-1668.4342 703,-1655.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1655.2121 703,-1645.2121 698.6251,-1655.2121 707.3751,-1655.2121"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (3.43s)">
<text text-anchor="middle" x="719.7241" y="-1665.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.43s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="main.main (3.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="741.7699,-1989 664.2301,-1989 664.2301,-1953 741.7699,-1953 741.7699,-1989"/>
<text text-anchor="middle" x="703" y="-1972.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.main</text>
<text text-anchor="middle" x="703" y="-1964.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.43s(93.97%)</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N58 -->
<g id="edge5" class="edge">
<title>N62&#45;&gt;N58</title>
<g id="a_edge5"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (3.43s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-1952.7616C703,-1941.3597 703,-1926.4342 703,-1913.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1913.2121 703,-1903.2121 698.6251,-1913.2121 707.3751,-1913.2121"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (3.43s)">
<text text-anchor="middle" x="719.7241" y="-1923.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.43s</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N62 -->
<g id="edge7" class="edge">
<title>N63&#45;&gt;N62</title>
<g id="a_edge7"><a xlink:title="runtime.main &#45;&gt; main.main (3.43s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-2038.7616C703,-2027.3597 703,-2012.4342 703,-1999.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1999.2121 703,-1989.2121 698.6251,-1999.2121 707.3751,-1999.2121"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="runtime.main &#45;&gt; main.main (3.43s)">
<text text-anchor="middle" x="719.7241" y="-2009.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.43s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.mach_semrelease (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1292.7973,-130 1193.2027,-130 1193.2027,-94 1292.7973,-94 1292.7973,-130"/>
<text text-anchor="middle" x="1243" y="-113.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mach_semrelease</text>
<text text-anchor="middle" x="1243" y="-105.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.17s(4.66%)</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N19 -->
<g id="edge24" class="edge">
<title>N64&#45;&gt;N19</title>
<g id="a_edge24"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.17s)">
<path fill="none" stroke="#000000" d="M1243,-93.7872C1243,-82.439 1243,-67.5173 1243,-54.2194"/>
<polygon fill="#000000" stroke="#000000" points="1246.5001,-54.002 1243,-44.0021 1239.5001,-54.0021 1246.5001,-54.002"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.17s)">
<text text-anchor="middle" x="1259.7241" y="-64.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N64 -->
<g id="edge26" class="edge">
<title>N65&#45;&gt;N64</title>
<g id="a_edge26"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (0.17s)">
<path fill="none" stroke="#000000" d="M1243,-179.7616C1243,-168.3597 1243,-153.4342 1243,-140.494"/>
<polygon fill="#000000" stroke="#000000" points="1246.5001,-140.2121 1243,-130.2121 1239.5001,-140.2121 1246.5001,-140.2121"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (0.17s)">
<text text-anchor="middle" x="1259.7241" y="-150.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N9 -->
<g id="edge32" class="edge">
<title>N66&#45;&gt;N9</title>
<g id="a_edge32"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.13s)">
<path fill="none" stroke="#000000" d="M784.7578,-750.921C787.8392,-749.8054 790.9448,-748.8088 794,-748 941.2658,-709.015 1392.895,-683.219 1581.1979,-673.8911"/>
<polygon fill="#000000" stroke="#000000" points="1581.5047,-677.3804 1591.3206,-673.393 1581.1606,-670.3888 1581.5047,-677.3804"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.13s)">
<text text-anchor="middle" x="994.7241" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.wakep (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1279.7699,-484 1206.2301,-484 1206.2301,-448 1279.7699,-448 1279.7699,-484"/>
<text text-anchor="middle" x="1243" y="-467.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.wakep</text>
<text text-anchor="middle" x="1243" y="-459.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(3.56%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N69 -->
<g id="edge34" class="edge">
<title>N67&#45;&gt;N69</title>
<g id="a_edge34"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.wakep (0.13s)">
<path fill="none" stroke="#000000" d="M1243,-547.2502C1243,-532.5231 1243,-511.5399 1243,-494.5866"/>
<polygon fill="#000000" stroke="#000000" points="1246.5001,-494.1341 1243,-484.1341 1239.5001,-494.1342 1246.5001,-494.1341"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.wakep (0.13s)">
<text text-anchor="middle" x="1259.7241" y="-509.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.startm (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1279.7699,-390.5 1206.2301,-390.5 1206.2301,-354.5 1279.7699,-354.5 1279.7699,-390.5"/>
<text text-anchor="middle" x="1243" y="-374.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.startm</text>
<text text-anchor="middle" x="1243" y="-366.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(3.56%)</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N20 -->
<g id="edge35" class="edge">
<title>N68&#45;&gt;N20</title>
<g id="a_edge35"><a xlink:title="runtime.startm &#45;&gt; runtime.notewakeup (0.13s)">
<path fill="none" stroke="#000000" d="M1243,-354.1627C1243,-342.0979 1243,-326.065 1243,-312.3712"/>
<polygon fill="#000000" stroke="#000000" points="1246.5001,-312.0109 1243,-302.011 1239.5001,-312.011 1246.5001,-312.0109"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.startm &#45;&gt; runtime.notewakeup (0.13s)">
<text text-anchor="middle" x="1259.7241" y="-322.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N68 -->
<g id="edge39" class="edge">
<title>N69&#45;&gt;N68</title>
<g id="a_edge39"><a xlink:title="runtime.wakep &#45;&gt; runtime.startm (0.13s)">
<path fill="none" stroke="#000000" d="M1243,-447.9723C1243,-434.6062 1243,-416.1259 1243,-400.7979"/>
<polygon fill="#000000" stroke="#000000" points="1246.5001,-400.7914 1243,-390.7914 1239.5001,-400.7915 1246.5001,-400.7914"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.wakep &#45;&gt; runtime.startm (0.13s)">
<text text-anchor="middle" x="1259.7241" y="-413.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N9 -->
<g id="edge47" class="edge">
<title>N70&#45;&gt;N9</title>
<g id="a_edge47"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.09s)">
<path fill="none" stroke="#000000" d="M1665,-750.8419C1665,-738.9834 1665,-723.048 1665,-708.4605"/>
<polygon fill="#000000" stroke="#000000" points="1668.5001,-708.1542 1665,-698.1542 1661.5001,-708.1543 1668.5001,-708.1542"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.09s)">
<text text-anchor="middle" x="1681.7241" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="main.Integer.Add (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1018.7699,-1219 945.2301,-1219 945.2301,-1183 1018.7699,-1183 1018.7699,-1219"/>
<text text-anchor="middle" x="982" y="-1202.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="982" y="-1194.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(2.19%)</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N72 -->
<g id="edge50" class="edge">
<title>N71&#45;&gt;N72</title>
<g id="a_edge50"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.08s)">
<path fill="none" stroke="#000000" d="M983.6332,-1282.6585C983.3343,-1267.7164 982.9073,-1246.3665 982.5649,-1229.2446"/>
<polygon fill="#000000" stroke="#000000" points="986.0639,-1229.1532 982.3645,-1219.2253 979.0653,-1229.2933 986.0639,-1229.1532"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.08s)">
<text text-anchor="middle" x="1000.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N8 -->
<g id="edge53" class="edge">
<title>N72&#45;&gt;N8</title>
<g id="a_edge53"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.08s)">
<path fill="none" stroke="#000000" d="M969.6486,-1182.9801C960.0057,-1170.2551 945.5038,-1153.788 929,-1144 896.5117,-1124.7321 856.1084,-1113.4745 821.7222,-1106.927"/>
<polygon fill="#000000" stroke="#000000" points="822.1913,-1103.4552 811.7285,-1105.1226 820.9475,-1110.3438 822.1913,-1103.4552"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.08s)">
<text text-anchor="middle" x="962.7241" y="-1146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N35 -->
<g id="edge56" class="edge">
<title>N73&#45;&gt;N35</title>
<g id="a_edge56"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.08s)">
<path fill="none" stroke="#000000" d="M1820.1328,-547.103C1817.4062,-539.1702 1814.4689,-529.7269 1812.5518,-521 1810.8302,-513.1634 1809.5348,-504.5926 1808.5707,-496.5986"/>
<polygon fill="#000000" stroke="#000000" points="1812.0373,-496.0997 1807.4862,-486.5322 1805.0776,-496.8496 1812.0373,-496.0997"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.08s)">
<text text-anchor="middle" x="1828.7241" y="-509.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N8 -->
<g id="edge74" class="edge">
<title>N74&#45;&gt;N8</title>
<g id="a_edge74"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.04s)">
<path fill="none" stroke="#000000" d="M1275.7517,-1184.8005C1266.0567,-1181.5595 1255.7528,-1178.4141 1246,-1176 1225.6125,-1170.9534 955.6867,-1129.6025 821.9939,-1109.2419"/>
<polygon fill="#000000" stroke="#000000" points="822.2421,-1105.7394 811.8292,-1107.6943 821.1884,-1112.6597 822.2421,-1105.7394"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.04s)">
<text text-anchor="middle" x="1143.7241" y="-1146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N23 -->
<g id="edge105" class="edge">
<title>N74&#45;&gt;N23</title>
<g id="a_edge105"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.01s)">
<path fill="none" stroke="#000000" d="M1362.2361,-1184.6806C1370.7321,-1181.6595 1379.6114,-1178.6307 1388,-1176 1465.9873,-1151.5427 1557.1566,-1128.0598 1616.8294,-1113.3661"/>
<polygon fill="#000000" stroke="#000000" points="1617.9825,-1116.6871 1626.8609,-1110.9057 1616.315,-1109.8886 1617.9825,-1116.6871"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.01s)">
<text text-anchor="middle" x="1509.7241" y="-1146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N49 -->
<g id="edge86" class="edge">
<title>N74&#45;&gt;N49</title>
<g id="a_edge86"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T2 (0.02s)">
<path fill="none" stroke="#000000" d="M1319.8939,-1182.5857C1320.6511,-1166.9868 1321.7493,-1144.365 1322.6194,-1126.4401"/>
<polygon fill="#000000" stroke="#000000" points="1326.1248,-1126.4129 1323.1138,-1116.2549 1319.133,-1126.0734 1326.1248,-1126.4129"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T2 (0.02s)">
<text text-anchor="middle" x="1338.7241" y="-1146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.(*mcentral).grow (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1855.1374,-302 1756.8626,-302 1756.8626,-266 1855.1374,-266 1855.1374,-302"/>
<text text-anchor="middle" x="1806" y="-285.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="1806" y="-277.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.92%)</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N76 -->
<g id="edge60" class="edge">
<title>N75&#45;&gt;N76</title>
<g id="a_edge60"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.07s)">
<path fill="none" stroke="#000000" d="M1806,-354.1627C1806,-342.0979 1806,-326.065 1806,-312.3712"/>
<polygon fill="#000000" stroke="#000000" points="1809.5001,-312.0109 1806,-302.011 1802.5001,-312.011 1809.5001,-312.0109"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.07s)">
<text text-anchor="middle" x="1822.7241" y="-322.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.(*mheap).alloc (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1851.5821,-216 1760.4179,-216 1760.4179,-180 1851.5821,-180 1851.5821,-216"/>
<text text-anchor="middle" x="1806" y="-199.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="1806" y="-191.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.92%)</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N77 -->
<g id="edge61" class="edge">
<title>N76&#45;&gt;N77</title>
<g id="a_edge61"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.07s)">
<path fill="none" stroke="#000000" d="M1806,-265.7616C1806,-254.3597 1806,-239.4342 1806,-226.494"/>
<polygon fill="#000000" stroke="#000000" points="1809.5001,-226.2121 1806,-216.2121 1802.5001,-226.2121 1809.5001,-226.2121"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.07s)">
<text text-anchor="middle" x="1822.7241" y="-236.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N39 -->
<g id="edge62" class="edge">
<title>N77&#45;&gt;N39</title>
<g id="a_edge62"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.07s)">
<path fill="none" stroke="#000000" d="M1806,-179.7616C1806,-168.3597 1806,-153.4342 1806,-140.494"/>
<polygon fill="#000000" stroke="#000000" points="1809.5001,-140.2121 1806,-130.2121 1802.5001,-140.2121 1809.5001,-140.2121"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.07s)">
<text text-anchor="middle" x="1822.7241" y="-150.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.gopreempt_m (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2148.817,-583.5 2061.183,-583.5 2061.183,-547.5 2148.817,-547.5 2148.817,-583.5"/>
<text text-anchor="middle" x="2105" y="-567.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="2105" y="-559.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.92%)</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.goschedImpl (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2147.2073,-484 2062.7927,-484 2062.7927,-448 2147.2073,-448 2147.2073,-484"/>
<text text-anchor="middle" x="2105" y="-467.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="2105" y="-459.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.92%)</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N79 -->
<g id="edge63" class="edge">
<title>N78&#45;&gt;N79</title>
<g id="a_edge63"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.07s)">
<path fill="none" stroke="#000000" d="M2105,-547.2502C2105,-532.5231 2105,-511.5399 2105,-494.5866"/>
<polygon fill="#000000" stroke="#000000" points="2108.5001,-494.1341 2105,-484.1341 2101.5001,-494.1342 2108.5001,-494.1341"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.07s)">
<text text-anchor="middle" x="2121.7241" y="-509.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N38 -->
<g id="edge64" class="edge">
<title>N79&#45;&gt;N38</title>
<g id="a_edge64"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.07s)">
<path fill="none" stroke="#000000" d="M2105,-447.9723C2105,-435.3325 2105,-418.1193 2105,-403.3234"/>
<polygon fill="#000000" stroke="#000000" points="2108.5001,-403.0768 2105,-393.0768 2101.5001,-403.0769 2108.5001,-403.0768"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.07s)">
<text text-anchor="middle" x="2121.7241" y="-413.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N78 -->
<g id="edge67" class="edge">
<title>N80&#45;&gt;N78</title>
<g id="a_edge67"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.07s)">
<path fill="none" stroke="#000000" d="M2105,-651.7975C2105,-635.8617 2105,-612.442 2105,-594.0195"/>
<polygon fill="#000000" stroke="#000000" points="2108.5001,-593.8445 2105,-583.8445 2101.5001,-593.8446 2108.5001,-593.8445"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.07s)">
<text text-anchor="middle" x="2121.7241" y="-612.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration2.svg.







































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2424)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2424 2507.4478,-2424 2507.4478,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="8,-2196 8,-2412 654,-2412 654,-2196 8,-2196"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="645.8438,-2404 16.1562,-2404 16.1562,-2204 645.8438,-2204 645.8438,-2404"/>
<text text-anchor="start" x="24.0781" y="-2374.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="24.0781" y="-2342.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="24.0781" y="-2310.4" font-family="Times,serif" font-size="32.00" fill="#000000">11.26s of 12.23s total (92.07%)</text>
<text text-anchor="start" x="24.0781" y="-2278.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 87 nodes (cum &lt;= 0.06s)</text>
<text text-anchor="start" x="24.0781" y="-2246.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 6 edges (freq &lt;= 0.01s)</text>
<text text-anchor="start" x="24.0781" y="-2214.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 93 (cum &gt;= 1.02s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (11.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="745.978,-2322 664.022,-2322 664.022,-2286 745.978,-2286 745.978,-2322"/>
<text text-anchor="middle" x="705" y="-2305.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="705" y="-2297.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 11.70s(95.67%)</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.gcMarkDone (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1777.5899,-2154 1692.4101,-2154 1692.4101,-2118 1777.5899,-2118 1777.5899,-2154"/>
<text text-anchor="middle" x="1735" y="-2137.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkDone</text>
<text text-anchor="middle" x="1735" y="-2129.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.74%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N61 -->
<g id="edge80" class="edge">
<title>N1&#45;&gt;N61</title>
<g id="a_edge80"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.07s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M746.0128,-2297.3105C907.7815,-2270.925 1501.5775,-2174.0728 1682.3968,-2144.5799"/>
<polygon fill="#000000" stroke="#000000" points="1683.1482,-2148.0037 1692.4543,-2142.9395 1682.0213,-2141.095 1683.1482,-2148.0037"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.07s)">
<text text-anchor="middle" x="1528.7241" y="-2174.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.gcFlushBgCredit (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2286.5518,-2154 2189.4482,-2154 2189.4482,-2118 2286.5518,-2118 2286.5518,-2154"/>
<text text-anchor="middle" x="2238" y="-2137.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="2238" y="-2129.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(0.57%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N67 -->
<g id="edge83" class="edge">
<title>N1&#45;&gt;N67</title>
<g id="a_edge83"><a xlink:title="runtime.goexit ... runtime.gcFlushBgCredit (0.06s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M746.004,-2299.5064C958.0478,-2276.2687 1929.9485,-2169.7591 2179.4754,-2142.4137"/>
<polygon fill="#000000" stroke="#000000" points="2179.8723,-2145.8912 2189.4314,-2141.3226 2179.1097,-2138.9329 2179.8723,-2145.8912"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.goexit ... runtime.gcFlushBgCredit (0.06s)">
<text text-anchor="middle" x="1922.7241" y="-2174.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.main (11.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="745.978,-2154 664.022,-2154 664.022,-2118 745.978,-2118 745.978,-2154"/>
<text text-anchor="middle" x="705" y="-2137.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.main</text>
<text text-anchor="middle" x="705" y="-2129.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 11.42s(93.38%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N74 -->
<g id="edge6" class="edge">
<title>N1&#45;&gt;N74</title>
<g id="a_edge6"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (11.42s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M705,-2285.7012C705,-2256.4641 705,-2198.9945 705,-2164.3892"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="709.3751,-2164.0219 705,-2154.0219 700.6251,-2164.022 709.3751,-2164.0219"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (11.42s)">
<text text-anchor="middle" x="724.9678" y="-2174.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 11.42s</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (11.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="814.1192,-1634 595.8808,-1634 595.8808,-1566 814.1192,-1566 814.1192,-1634"/>
<text text-anchor="middle" x="705" y="-1614" font-family="Times,serif" font-size="20.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="705" y="-1594" font-family="Times,serif" font-size="20.00" fill="#000000">0.93s(7.60%)</text>
<text text-anchor="middle" x="705" y="-1574" font-family="Times,serif" font-size="20.00" fill="#000000">of 11.42s(93.38%)</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="main.tryParseFloat (2.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="754.9032,-1511.5 655.0968,-1511.5 655.0968,-1470.5 754.9032,-1470.5 754.9032,-1511.5"/>
<text text-anchor="middle" x="705" y="-1498.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="705" y="-1487.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.41%)</text>
<text text-anchor="middle" x="705" y="-1476.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 2.41s(19.71%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge10" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (2.41s)">
<path fill="none" stroke="#000000" d="M705,-1565.8108C705,-1551.8197 705,-1535.7448 705,-1522.0902"/>
<polygon fill="#000000" stroke="#000000" points="708.5001,-1521.7445 705,-1511.7446 701.5001,-1521.7446 708.5001,-1521.7445"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (2.41s)">
<text text-anchor="middle" x="721.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.41s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.tryParseInt (2.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="636.7124,-1510 551.2876,-1510 551.2876,-1472 636.7124,-1472 636.7124,-1510"/>
<text text-anchor="middle" x="594" y="-1498" font-family="Times,serif" font-size="10.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="594" y="-1488" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="594" y="-1478" font-family="Times,serif" font-size="10.00" fill="#000000">of 2.04s(16.68%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N10 -->
<g id="edge13" class="edge">
<title>N2&#45;&gt;N10</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (2.04s)">
<path fill="none" stroke="#000000" d="M670.1835,-1565.8108C654.2658,-1550.1799 635.6992,-1531.9479 620.8803,-1517.396"/>
<polygon fill="#000000" stroke="#000000" points="623.0938,-1514.6642 613.5065,-1510.155 618.1893,-1519.6588 623.0938,-1514.6642"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (2.04s)">
<text text-anchor="middle" x="666.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.04s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="runtime.mapaccess2_faststr (1.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1676.0127,-1416 1449.9873,-1416 1449.9873,-1351 1676.0127,-1351 1676.0127,-1416"/>
<text text-anchor="middle" x="1563" y="-1396.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="1563" y="-1377.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.71s(5.81%)</text>
<text text-anchor="middle" x="1563" y="-1358.8" font-family="Times,serif" font-size="19.00" fill="#000000">of 1.28s(10.47%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge27" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge27"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.92s)">
<path fill="none" stroke="#000000" d="M814.2458,-1597.4207C981.0317,-1591.6769 1289.5587,-1573.4011 1382,-1516 1405.1645,-1501.6161 1397.312,-1484.2714 1417.5518,-1466 1436.7656,-1448.6547 1460.2396,-1433.3839 1482.6754,-1420.8467"/>
<polygon fill="#000000" stroke="#000000" points="1484.4465,-1423.8674 1491.5427,-1416 1481.0892,-1417.725 1484.4465,-1423.8674"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.92s)">
<text text-anchor="middle" x="1433.7241" y="-1486.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.92s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="main.(*CodeQuotation).cloneCode (1.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="532.7784,-1514.5 337.2216,-1514.5 337.2216,-1467.5 532.7784,-1467.5 532.7784,-1514.5"/>
<text text-anchor="middle" x="435" y="-1500.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="435" y="-1487.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.16s(1.31%)</text>
<text text-anchor="middle" x="435" y="-1474.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.04s(8.50%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N16 -->
<g id="edge24" class="edge">
<title>N2&#45;&gt;N16</title>
<g id="a_edge24"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.04s)">
<path fill="none" stroke="#000000" d="M620.6809,-1565.9601C582.7573,-1550.6502 538.5916,-1532.8203 502.8507,-1518.3916"/>
<polygon fill="#000000" stroke="#000000" points="504.0645,-1515.1072 493.4814,-1514.6092 501.444,-1521.5982 504.0645,-1515.1072"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.04s)">
<text text-anchor="middle" x="586.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.04s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.convT2I (0.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1283.4766,-1092 1186.5234,-1092 1186.5234,-1048 1283.4766,-1048 1283.4766,-1092"/>
<text text-anchor="middle" x="1235" y="-1078.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1235" y="-1066.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.65%)</text>
<text text-anchor="middle" x="1235" y="-1054.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.64s(5.23%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N18 -->
<g id="edge31" class="edge">
<title>N2&#45;&gt;N18</title>
<g id="a_edge31"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.55s)">
<path fill="none" stroke="#000000" d="M814.3712,-1585.1491C871.6821,-1573.3704 940.8112,-1552.5365 994,-1516 1017.0066,-1500.1963 1010.1292,-1483.3416 1032,-1466 1074.7147,-1432.1311 1103.619,-1452.6201 1144,-1416 1168.6239,-1393.6695 1160.4893,-1377.1591 1181,-1351 1188.1773,-1341.8461 1193.5709,-1342.6941 1200,-1333 1247.2778,-1261.712 1244.3815,-1155.4533 1239.2263,-1102.4739"/>
<polygon fill="#000000" stroke="#000000" points="1242.6835,-1101.8848 1238.1444,-1092.3116 1235.7228,-1102.626 1242.6835,-1101.8848"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.55s)">
<text text-anchor="middle" x="1223.7241" y="-1321.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.55s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="main.(*machine).hasPrefixWord (0.59s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1372.6663,-1513 1201.3337,-1513 1201.3337,-1469 1372.6663,-1469 1372.6663,-1513"/>
<text text-anchor="middle" x="1287" y="-1499.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="1287" y="-1487.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.11s(0.9%)</text>
<text text-anchor="middle" x="1287" y="-1475.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.59s(4.82%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N19 -->
<g id="edge30" class="edge">
<title>N2&#45;&gt;N19</title>
<g id="a_edge30"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.59s)">
<path fill="none" stroke="#000000" d="M814.3063,-1589.6682C892.0047,-1581.2577 998.5479,-1567.5566 1091,-1548 1130.9305,-1539.5534 1174.6029,-1527.17 1210.5684,-1516.1017"/>
<polygon fill="#000000" stroke="#000000" points="1211.9859,-1519.3265 1220.4986,-1513.0191 1209.9105,-1512.6412 1211.9859,-1519.3265"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.59s)">
<text text-anchor="middle" x="1161.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.59s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="main.(*machine).executeMathWord (0.53s)">
<polygon fill="#f8f8f8" stroke="#000000" points="985.0553,-1511.5 810.9447,-1511.5 810.9447,-1470.5 985.0553,-1470.5 985.0553,-1511.5"/>
<text text-anchor="middle" x="898" y="-1498.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="898" y="-1487.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="898" y="-1476.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.53s(4.33%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N20 -->
<g id="edge32" class="edge">
<title>N2&#45;&gt;N20</title>
<g id="a_edge32"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.53s)">
<path fill="none" stroke="#000000" d="M765.2725,-1565.9601C793.4696,-1550.0353 826.4943,-1531.3841 852.5477,-1516.6699"/>
<polygon fill="#000000" stroke="#000000" points="854.4669,-1519.6057 861.4531,-1511.6405 851.0246,-1513.5106 854.4669,-1519.6057"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.53s)">
<text text-anchor="middle" x="834.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.53s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.deferreturn (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1794.7248,-1516 1669.2752,-1516 1669.2752,-1466 1794.7248,-1466 1794.7248,-1516"/>
<text text-anchor="middle" x="1732" y="-1500.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="1732" y="-1486.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.19s(1.55%)</text>
<text text-anchor="middle" x="1732" y="-1472.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.43s(3.52%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N21 -->
<g id="edge34" class="edge">
<title>N2&#45;&gt;N21</title>
<g id="a_edge34"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.43s)">
<path fill="none" stroke="#000000" d="M814.2435,-1597.4293C968.055,-1592.7738 1256.9551,-1580.2322 1501,-1548 1569.8058,-1538.9125 1589.4079,-1535.4969 1659.3156,-1516.3605"/>
<polygon fill="#000000" stroke="#000000" points="1660.3304,-1519.7115 1669.045,-1513.686 1658.4749,-1512.9619 1660.3304,-1519.7115"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.43s)">
<text text-anchor="middle" x="1603.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.deferproc (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1915.2914,-1513 1812.7086,-1513 1812.7086,-1469 1915.2914,-1469 1915.2914,-1513"/>
<text text-anchor="middle" x="1864" y="-1499.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="1864" y="-1487.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.74%)</text>
<text text-anchor="middle" x="1864" y="-1475.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.41s(3.35%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N23 -->
<g id="edge35" class="edge">
<title>N2&#45;&gt;N23</title>
<g id="a_edge35"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.41s)">
<path fill="none" stroke="#000000" d="M814.2931,-1598.0329C986.8476,-1593.9792 1332.7386,-1582.007 1624,-1548 1701.5535,-1538.945 1724.275,-1538.8654 1803.2889,-1515.9602"/>
<polygon fill="#000000" stroke="#000000" points="1804.5996,-1519.2233 1813.2112,-1513.0515 1802.6305,-1512.5059 1804.5996,-1519.2233"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.41s)">
<text text-anchor="middle" x="1746.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.memeqbody (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1203.3594,-1293 1054.6406,-1293 1054.6406,-1253 1203.3594,-1253 1203.3594,-1293"/>
<text text-anchor="middle" x="1129" y="-1276.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="1129" y="-1260.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.40s(3.27%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N24 -->
<g id="edge46" class="edge">
<title>N2&#45;&gt;N24</title>
<g id="a_edge46"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.24s)">
<path fill="none" stroke="#000000" d="M729.3602,-1565.9307C733.591,-1559.9662 737.9357,-1553.8108 742,-1548 751.8922,-1533.8571 755.0487,-1530.7564 764,-1516 785.4021,-1480.7181 773.048,-1456.6353 807.5518,-1434 850.1308,-1406.0672 993.6805,-1444.3244 1036,-1416 1062.9246,-1397.9794 1051.7151,-1378.4028 1069,-1351 1079.8957,-1333.7265 1093.6984,-1315.5774 1105.3175,-1301.1368"/>
<polygon fill="#000000" stroke="#000000" points="1108.2646,-1303.0609 1111.8679,-1293.0976 1102.8379,-1298.6392 1108.2646,-1303.0609"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.24s)">
<text text-anchor="middle" x="823.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2354.8048,-1511.5 2161.1952,-1511.5 2161.1952,-1470.5 2354.8048,-1470.5 2354.8048,-1511.5"/>
<text text-anchor="middle" x="2258" y="-1498.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="2258" y="-1487.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="2258" y="-1476.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.31s(2.53%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N28 -->
<g id="edge41" class="edge">
<title>N2&#45;&gt;N28</title>
<g id="a_edge41"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.31s)">
<path fill="none" stroke="#000000" d="M814.2638,-1597.9521C1022.8855,-1593.4294 1492.2488,-1580.3061 1886,-1548 2004.6758,-1538.263 2034.758,-1536.8105 2152,-1516 2156.1888,-1515.2565 2160.46,-1514.4506 2164.767,-1513.5989"/>
<polygon fill="#000000" stroke="#000000" points="2165.7623,-1516.9679 2174.8591,-1511.5367 2164.3608,-1510.1097 2165.7623,-1516.9679"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.31s)">
<text text-anchor="middle" x="2053.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="main.wordIsWhitespace (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1182.9819,-1514.5 1041.0181,-1514.5 1041.0181,-1467.5 1182.9819,-1467.5 1182.9819,-1514.5"/>
<text text-anchor="middle" x="1112" y="-1500.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="1112" y="-1487.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.17s(1.39%)</text>
<text text-anchor="middle" x="1112" y="-1474.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.31s(2.53%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N29 -->
<g id="edge42" class="edge">
<title>N2&#45;&gt;N29</title>
<g id="a_edge42"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.31s)">
<path fill="none" stroke="#000000" d="M814.1884,-1587.4336C891.9267,-1577.5335 989.068,-1562.949 1027,-1548 1043.9966,-1541.3016 1061.052,-1530.7889 1075.3771,-1520.6064"/>
<polygon fill="#000000" stroke="#000000" points="1077.4718,-1523.4107 1083.475,-1514.6806 1073.338,-1517.7616 1077.4718,-1523.4107"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.31s)">
<text text-anchor="middle" x="1070.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2142.9688,-1513 1933.0312,-1513 1933.0312,-1469 2142.9688,-1469 2142.9688,-1513"/>
<text text-anchor="middle" x="2038" y="-1499.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2038" y="-1487.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.82%)</text>
<text text-anchor="middle" x="2038" y="-1475.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.23s(1.88%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N33 -->
<g id="edge48" class="edge">
<title>N2&#45;&gt;N33</title>
<g id="a_edge48"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.23s)">
<path fill="none" stroke="#000000" d="M814.1514,-1596.7653C1046.8332,-1589.5247 1585.218,-1570.8412 1767,-1548 1825.4832,-1540.6515 1890.1038,-1527.2687 1941.5706,-1515.3166"/>
<polygon fill="#000000" stroke="#000000" points="1942.4142,-1518.7138 1951.3525,-1513.0255 1940.8178,-1511.8982 1942.4142,-1518.7138"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.23s)">
<text text-anchor="middle" x="1865.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="main.(*CodeQuotation).nextWord (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1651.6319,-1509 1460.3681,-1509 1460.3681,-1473 1651.6319,-1473 1651.6319,-1509"/>
<text text-anchor="middle" x="1556" y="-1493.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="1556" y="-1480.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.17s(1.39%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N44 -->
<g id="edge56" class="edge">
<title>N2&#45;&gt;N44</title>
<g id="a_edge56"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.17s)">
<path fill="none" stroke="#000000" d="M814.129,-1596.524C985.7289,-1590.3112 1310.6692,-1575.3219 1423,-1548 1454.523,-1540.3327 1488.0873,-1525.896 1513.6116,-1513.4706"/>
<polygon fill="#000000" stroke="#000000" points="1515.2268,-1516.5765 1522.6329,-1509.0002 1512.1186,-1510.3044 1515.2268,-1516.5765"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.17s)">
<text text-anchor="middle" x="1480.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.ifaceeq (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="388.1256,-1192 287.8744,-1192 287.8744,-1145 388.1256,-1145 388.1256,-1192"/>
<text text-anchor="middle" x="338" y="-1177.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="338" y="-1164.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.14s(1.14%)</text>
<text text-anchor="middle" x="338" y="-1151.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.15s(1.23%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N46 -->
<g id="edge92" class="edge">
<title>N2&#45;&gt;N46</title>
<g id="a_edge92"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.04s)">
<path fill="none" stroke="#000000" d="M595.743,-1591.3381C478.5293,-1578.9538 309,-1550.7195 309,-1491 309,-1491 309,-1491 309,-1273 309,-1248.4059 316.5504,-1221.7028 323.946,-1201.4462"/>
<polygon fill="#000000" stroke="#000000" points="327.2335,-1202.648 327.5303,-1192.0574 320.6938,-1200.1514 327.2335,-1202.648"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.04s)">
<text text-anchor="middle" x="325.7241" y="-1379.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.growslice (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="280.7289,-1511.5 185.2711,-1511.5 185.2711,-1470.5 280.7289,-1470.5 280.7289,-1511.5"/>
<text text-anchor="middle" x="233" y="-1498.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="233" y="-1487.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.33%)</text>
<text text-anchor="middle" x="233" y="-1476.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.10s(0.82%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N59 -->
<g id="edge69" class="edge">
<title>N2&#45;&gt;N59</title>
<g id="a_edge69"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.10s)">
<path fill="none" stroke="#000000" d="M595.7261,-1592.6004C473.3077,-1583.4672 288.3855,-1566.8177 261.5518,-1548 252.3498,-1541.547 245.9556,-1531.2447 241.5896,-1521.1622"/>
<polygon fill="#000000" stroke="#000000" points="244.8181,-1519.8049 237.9995,-1511.6958 238.2729,-1522.2871 244.8181,-1519.8049"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.10s)">
<text text-anchor="middle" x="278.7241" y="-1536.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (11.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="956.9854,-1722 781.0146,-1722 781.0146,-1684 956.9854,-1684 956.9854,-1722"/>
<text text-anchor="middle" x="869" y="-1710" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="869" y="-1700" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.082%)</text>
<text text-anchor="middle" x="869" y="-1690" font-family="Times,serif" font-size="10.00" fill="#000000">of 11.42s(93.38%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge8" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge8"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (11.41s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M838.5372,-1683.8679C818.6503,-1671.3779 791.9622,-1654.6165 767.6731,-1639.3618"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="769.9922,-1635.652 759.1969,-1634.0383 765.3384,-1643.0618 769.9922,-1635.652"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (11.41s)">
<text text-anchor="middle" x="825.9678" y="-1654.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 11.41s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="runtime.newobject (4.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="650.6065,-998 537.3935,-998 537.3935,-951 650.6065,-951 650.6065,-998"/>
<text text-anchor="middle" x="594" y="-983.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="594" y="-970.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(1.23%)</text>
<text text-anchor="middle" x="594" y="-957.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 4.09s(33.44%)</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.mallocgc (3.99s)">
<polygon fill="#f8f8f8" stroke="#000000" points="686.1098,-901 501.8902,-901 501.8902,-821 686.1098,-821 686.1098,-901"/>
<text text-anchor="middle" x="594" y="-877.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="594" y="-853.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.77s(14.47%)</text>
<text text-anchor="middle" x="594" y="-829.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 3.99s(32.62%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N5 -->
<g id="edge9" class="edge">
<title>N4&#45;&gt;N5</title>
<g id="a_edge9"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.94s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M594,-950.9827C594,-939.496 594,-925.2045 594,-911.4179"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="597.5001,-911.0283 594,-901.0283 590.5001,-911.0284 597.5001,-911.0283"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.94s)">
<text text-anchor="middle" x="610.7241" y="-921.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.94s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.heapBitsSetType (0.75s)">
<polygon fill="#f8f8f8" stroke="#000000" points="698.3289,-771 489.6711,-771 489.6711,-725 698.3289,-725 698.3289,-771"/>
<text text-anchor="middle" x="594" y="-751.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="594" y="-732.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.75s(6.13%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N17 -->
<g id="edge29" class="edge">
<title>N5&#45;&gt;N17</title>
<g id="a_edge29"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.75s)">
<path fill="none" stroke="#000000" d="M594,-820.8423C594,-807.9875 594,-793.8978 594,-781.5643"/>
<polygon fill="#000000" stroke="#000000" points="597.5001,-781.2531 594,-771.2531 590.5001,-781.2532 597.5001,-781.2531"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.75s)">
<text text-anchor="middle" x="610.7241" y="-791.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.75s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.(*mcache).nextFree (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1159.7816,-767 1030.2184,-767 1030.2184,-729 1159.7816,-729 1159.7816,-767"/>
<text text-anchor="middle" x="1095" y="-755" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="1095" y="-745" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.082%)</text>
<text text-anchor="middle" x="1095" y="-735" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.37s(3.03%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N25 -->
<g id="edge37" class="edge">
<title>N5&#45;&gt;N25</title>
<g id="a_edge37"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.37s)">
<path fill="none" stroke="#000000" d="M686.2043,-844.1528C773.0804,-827.6699 906.6213,-800.7593 1021,-771 1022.4647,-770.6189 1023.9437,-770.2269 1025.4327,-769.8256"/>
<polygon fill="#000000" stroke="#000000" points="1026.6682,-773.1149 1035.3634,-767.0615 1024.7911,-766.3712 1026.6682,-773.1149"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.37s)">
<text text-anchor="middle" x="955.7241" y="-791.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.memclr (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1011.8039,-308 906.1961,-308 906.1961,-272 1011.8039,-272 1011.8039,-308"/>
<text text-anchor="middle" x="959" y="-292.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="959" y="-278.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.23s(1.88%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N35 -->
<g id="edge90" class="edge">
<title>N5&#45;&gt;N35</title>
<g id="a_edge90"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.05s)">
<path fill="none" stroke="#000000" d="M501.5974,-850.7938C439.894,-838.2464 370,-810.2865 370,-748 370,-748 370,-748 370,-377 370,-324.2989 743.7974,-300.3522 895.8305,-292.792"/>
<polygon fill="#000000" stroke="#000000" points="896.1349,-296.2814 905.9519,-292.2967 895.7927,-289.2898 896.1349,-296.2814"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.05s)">
<text text-anchor="middle" x="386.7241" y="-550.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="strconv.ParseFloat (2.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="688.3566,-1404 591.6434,-1404 591.6434,-1363 688.3566,-1363 688.3566,-1404"/>
<text text-anchor="middle" x="640" y="-1391.2" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.ParseFloat</text>
<text text-anchor="middle" x="640" y="-1380.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="640" y="-1369.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 2.36s(19.30%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N7 -->
<g id="edge11" class="edge">
<title>N6&#45;&gt;N7</title>
<g id="a_edge11"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (2.36s)">
<path fill="none" stroke="#000000" d="M692.4673,-1470.2729C682.6658,-1454.0627 668.9084,-1431.31 657.94,-1413.17"/>
<polygon fill="#000000" stroke="#000000" points="660.6635,-1410.9098 652.4942,-1404.1635 654.6734,-1414.5318 660.6635,-1410.9098"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (2.36s)">
<text text-anchor="middle" x="695.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.36s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="strconv.atof64 (2.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="703.5399,-1301 576.4601,-1301 576.4601,-1245 703.5399,-1245 703.5399,-1301"/>
<text text-anchor="middle" x="640" y="-1284.2" font-family="Times,serif" font-size="16.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="640" y="-1268.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.34s(2.78%)</text>
<text text-anchor="middle" x="640" y="-1252.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 2.33s(19.05%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N8 -->
<g id="edge12" class="edge">
<title>N7&#45;&gt;N8</title>
<g id="a_edge12"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (2.33s)">
<path fill="none" stroke="#000000" d="M640,-1362.9748C640,-1348.606 640,-1328.9677 640,-1311.7038"/>
<polygon fill="#000000" stroke="#000000" points="643.5001,-1311.3298 640,-1301.3298 636.5001,-1311.3298 643.5001,-1311.3298"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (2.33s)">
<text text-anchor="middle" x="656.7241" y="-1321.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.33s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N4 -->
<g id="edge18" class="edge">
<title>N8&#45;&gt;N4</title>
<g id="a_edge18"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (1.36s)">
<path fill="none" stroke="#000000" d="M628.4035,-1244.9531C622.837,-1230.3128 616.6078,-1211.9598 613,-1195 599.1519,-1129.901 595.3451,-1051.9464 594.3312,-1008.3376"/>
<polygon fill="#000000" stroke="#000000" points="597.8294,-1008.2068 594.1333,-998.2776 590.8308,-1008.3445 597.8294,-1008.2068"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (1.36s)">
<text text-anchor="middle" x="618.7241" y="-1112.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.36s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.duffzero (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="738.4424,-1187.5 621.5576,-1187.5 621.5576,-1149.5 738.4424,-1149.5 738.4424,-1187.5"/>
<text text-anchor="middle" x="680" y="-1171.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="680" y="-1156.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.33s(2.70%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N26 -->
<g id="edge39" class="edge">
<title>N8&#45;&gt;N26</title>
<g id="a_edge39"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.33s)">
<path fill="none" stroke="#000000" d="M650.7193,-1244.9959C656.36,-1230.2594 663.2663,-1212.2167 668.9547,-1197.3558"/>
<polygon fill="#000000" stroke="#000000" points="672.3616,-1198.2459 672.6677,-1187.6555 665.8241,-1195.7435 672.3616,-1198.2459"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.33s)">
<text text-anchor="middle" x="679.7241" y="-1215.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="strconv.special (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="857.1256,-1192 756.8744,-1192 756.8744,-1145 857.1256,-1145 857.1256,-1192"/>
<text text-anchor="middle" x="807" y="-1177.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.special</text>
<text text-anchor="middle" x="807" y="-1164.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.14s(1.14%)</text>
<text text-anchor="middle" x="807" y="-1151.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.15s(1.23%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N48 -->
<g id="edge61" class="edge">
<title>N8&#45;&gt;N48</title>
<g id="a_edge61"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.15s)">
<path fill="none" stroke="#000000" d="M684.7529,-1244.9959C708.2442,-1230.2963 736.9928,-1212.3069 760.7078,-1197.4673"/>
<polygon fill="#000000" stroke="#000000" points="762.5775,-1200.4261 769.1981,-1192.1545 758.8643,-1194.4921 762.5775,-1200.4261"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.15s)">
<text text-anchor="middle" x="750.7241" y="-1215.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="strconv.readFloat (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="973.3634,-1186.5 874.6366,-1186.5 874.6366,-1150.5 973.3634,-1150.5 973.3634,-1186.5"/>
<text text-anchor="middle" x="924" y="-1170.9" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.readFloat</text>
<text text-anchor="middle" x="924" y="-1158.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.11s(0.9%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N56 -->
<g id="edge68" class="edge">
<title>N8&#45;&gt;N56</title>
<g id="a_edge68"><a xlink:title="strconv.atof64 &#45;&gt; strconv.readFloat (0.11s)">
<path fill="none" stroke="#000000" d="M703.6941,-1248.6413C707.1736,-1247.3914 710.6257,-1246.1701 714,-1245 739.1001,-1236.2958 745.7439,-1235.2406 771,-1227 813.3556,-1213.1801 824.5714,-1211.3907 866,-1195 869.4454,-1193.6369 872.9812,-1192.1772 876.525,-1190.6696"/>
<polygon fill="#000000" stroke="#000000" points="878.0971,-1193.8025 885.8674,-1186.6001 875.3016,-1187.3849 878.0971,-1193.8025"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.readFloat (0.11s)">
<text text-anchor="middle" x="830.4678" y="-1215.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.systemstack (2.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1160.2005,-675 1029.7995,-675 1029.7995,-625 1160.2005,-625 1160.2005,-675"/>
<text text-anchor="middle" x="1095" y="-659.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="1095" y="-645.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.19s(1.55%)</text>
<text text-anchor="middle" x="1095" y="-631.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 2.29s(18.72%)</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.(*mcache).refill (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1015.6828,-573.5 902.3172,-573.5 902.3172,-535.5 1015.6828,-535.5 1015.6828,-573.5"/>
<text text-anchor="middle" x="959" y="-561.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="959" y="-551.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="959" y="-541.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.32s(2.62%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N27 -->
<g id="edge40" class="edge">
<title>N9&#45;&gt;N27</title>
<g id="a_edge40"><a xlink:title="runtime.systemstack ... runtime.(*mcache).refill (0.32s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1059.2676,-624.9085C1039.2974,-610.8853 1014.4937,-593.468 994.5527,-579.4653"/>
<polygon fill="#000000" stroke="#000000" points="996.5277,-576.5755 986.3325,-573.693 992.505,-582.3042 996.5277,-576.5755"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcache).refill (0.32s)">
<text text-anchor="middle" x="1047.7241" y="-595.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.deferproc.func1 (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1297.3956,-575 1174.6044,-575 1174.6044,-534 1297.3956,-534 1297.3956,-575"/>
<text text-anchor="middle" x="1236" y="-562.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="1236" y="-551.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.49%)</text>
<text text-anchor="middle" x="1236" y="-540.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.31s(2.53%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N30 -->
<g id="edge44" class="edge">
<title>N9&#45;&gt;N30</title>
<g id="a_edge44"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.31s)">
<path fill="none" stroke="#000000" d="M1132.0461,-624.9085C1152.0365,-611.3689 1176.6985,-594.6652 1196.984,-580.9258"/>
<polygon fill="#000000" stroke="#000000" points="1199.0665,-583.7425 1205.3834,-575.2368 1195.141,-577.9468 1199.0665,-583.7425"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.31s)">
<text text-anchor="middle" x="1194.7241" y="-595.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.deferreturn.func1 (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1642.6153,-575 1513.3847,-575 1513.3847,-534 1642.6153,-534 1642.6153,-575"/>
<text text-anchor="middle" x="1578" y="-562.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="1578" y="-551.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="1578" y="-540.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.17s(1.39%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N45 -->
<g id="edge59" class="edge">
<title>N9&#45;&gt;N45</title>
<g id="a_edge59"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.17s)">
<path fill="none" stroke="#000000" d="M1160.5361,-639.8266C1239.5576,-627.1477 1376.5121,-603.8591 1503.2293,-575.0871"/>
<polygon fill="#000000" stroke="#000000" points="1504.143,-578.4686 1513.111,-572.8273 1502.5824,-571.6447 1504.143,-578.4686"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.17s)">
<text text-anchor="middle" x="1430.7241" y="-595.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.mach_semaphore_wait (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1494.5289,-572.5 1315.4711,-572.5 1315.4711,-536.5 1494.5289,-536.5 1494.5289,-572.5"/>
<text text-anchor="middle" x="1405" y="-557.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="1405" y="-544.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(1.23%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N47 -->
<g id="edge60" class="edge">
<title>N9&#45;&gt;N47</title>
<g id="a_edge60"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.15s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1160.3642,-629.8636C1212.2053,-613.8932 1284.4283,-591.6439 1336.9555,-575.4621"/>
<polygon fill="#000000" stroke="#000000" points="1337.9986,-578.8032 1346.5249,-572.5141 1335.9376,-572.1134 1337.9986,-578.8032"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.15s)">
<text text-anchor="middle" x="1293.7241" y="-595.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.startTheWorldWithSema (1.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1156.3482,-572.5 1033.6518,-572.5 1033.6518,-536.5 1156.3482,-536.5 1156.3482,-572.5"/>
<text text-anchor="middle" x="1095" y="-556.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.startTheWorldWithSema</text>
<text text-anchor="middle" x="1095" y="-548.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.02s(8.34%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N80 -->
<g id="edge26" class="edge">
<title>N9&#45;&gt;N80</title>
<g id="a_edge26"><a xlink:title="runtime.systemstack &#45;&gt; runtime.startTheWorldWithSema (1.02s)">
<path fill="none" stroke="#000000" d="M1095,-624.9085C1095,-612.001 1095,-596.2179 1095,-582.8687"/>
<polygon fill="#000000" stroke="#000000" points="1098.5001,-582.7862 1095,-572.7863 1091.5001,-582.7863 1098.5001,-582.7862"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.startTheWorldWithSema (1.02s)">
<text text-anchor="middle" x="1111.7241" y="-595.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.02s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="strconv.Atoi (2.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="560.7124,-1402.5 475.2876,-1402.5 475.2876,-1364.5 560.7124,-1364.5 560.7124,-1402.5"/>
<text text-anchor="middle" x="518" y="-1390.5" font-family="Times,serif" font-size="10.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="518" y="-1380.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="518" y="-1370.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 2.02s(16.52%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N11 -->
<g id="edge14" class="edge">
<title>N10&#45;&gt;N11</title>
<g id="a_edge14"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (2.02s)">
<path fill="none" stroke="#000000" d="M580.4127,-1471.7812C568.4165,-1454.8128 550.7913,-1429.8824 537.3276,-1410.8384"/>
<polygon fill="#000000" stroke="#000000" points="540.1004,-1408.6975 531.4696,-1402.5525 534.3846,-1412.7384 540.1004,-1408.6975"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (2.02s)">
<text text-anchor="middle" x="579.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.02s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="strconv.ParseInt (2s)">
<polygon fill="#f8f8f8" stroke="#000000" points="557.6811,-1298 452.3189,-1298 452.3189,-1248 557.6811,-1248 557.6811,-1298"/>
<text text-anchor="middle" x="505" y="-1282.8" font-family="Times,serif" font-size="14.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="505" y="-1268.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.23s(1.88%)</text>
<text text-anchor="middle" x="505" y="-1254.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 2s(16.35%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N12 -->
<g id="edge15" class="edge">
<title>N11&#45;&gt;N12</title>
<g id="a_edge15"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (2s)">
<path fill="none" stroke="#000000" d="M515.7356,-1364.2524C513.9272,-1348.8808 511.344,-1326.9239 509.1647,-1308.4003"/>
<polygon fill="#000000" stroke="#000000" points="512.6148,-1307.7696 507.9702,-1298.247 505.6627,-1308.5875 512.6148,-1307.7696"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (2s)">
<text text-anchor="middle" x="519.9741" y="-1321.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="strconv.ParseUint (1.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="566.0913,-1195 443.9087,-1195 443.9087,-1142 566.0913,-1142 566.0913,-1195"/>
<text text-anchor="middle" x="505" y="-1179" font-family="Times,serif" font-size="15.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="505" y="-1164" font-family="Times,serif" font-size="15.00" fill="#000000">0.26s(2.13%)</text>
<text text-anchor="middle" x="505" y="-1149" font-family="Times,serif" font-size="15.00" fill="#000000">of 1.66s(13.57%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N13 -->
<g id="edge16" class="edge">
<title>N12&#45;&gt;N13</title>
<g id="a_edge16"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (1.66s)">
<path fill="none" stroke="#000000" d="M505,-1247.9696C505,-1235.2669 505,-1219.5861 505,-1205.5192"/>
<polygon fill="#000000" stroke="#000000" points="508.5001,-1205.1528 505,-1195.1528 501.5001,-1205.1529 508.5001,-1205.1528"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (1.66s)">
<text text-anchor="middle" x="521.7241" y="-1215.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.66s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N46 -->
<g id="edge67" class="edge">
<title>N12&#45;&gt;N46</title>
<g id="a_edge67"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.11s)">
<path fill="none" stroke="#000000" d="M452.1188,-1267.3429C422.1286,-1261.6241 385.7733,-1250.1244 361.0645,-1227 353.8645,-1220.2617 348.874,-1210.9954 345.4301,-1201.8239"/>
<polygon fill="#000000" stroke="#000000" points="348.6722,-1200.474 342.2688,-1192.0332 342.0108,-1202.6249 348.6722,-1200.474"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.11s)">
<text text-anchor="middle" x="378.4678" y="-1215.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N4 -->
<g id="edge17" class="edge">
<title>N13&#45;&gt;N4</title>
<g id="a_edge17"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (1.40s)">
<path fill="none" stroke="#000000" d="M512.1563,-1141.9153C519.3268,-1116.9998 531.4538,-1079.0446 546.5518,-1048 553.4601,-1033.7949 562.5862,-1019.0011 570.988,-1006.4413"/>
<polygon fill="#000000" stroke="#000000" points="573.9085,-1008.3709 576.6528,-998.1376 568.126,-1004.426 573.9085,-1008.3709"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (1.40s)">
<text text-anchor="middle" x="563.7241" y="-1065.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.40s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.aeshashbody (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1878.5242,-1293 1727.4758,-1293 1727.4758,-1253 1878.5242,-1253 1878.5242,-1293"/>
<text text-anchor="middle" x="1803" y="-1276.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="1803" y="-1260.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.42s(3.43%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N22 -->
<g id="edge36" class="edge">
<title>N14&#45;&gt;N22</title>
<g id="a_edge36"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.38s)">
<path fill="none" stroke="#000000" d="M1633.7098,-1350.944C1670.994,-1333.7777 1715.9619,-1313.0738 1750.1786,-1297.3198"/>
<polygon fill="#000000" stroke="#000000" points="1751.9094,-1300.3762 1759.5291,-1293.0147 1748.9819,-1294.0177 1751.9094,-1300.3762"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.38s)">
<text text-anchor="middle" x="1713.7241" y="-1321.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N24 -->
<g id="edge63" class="edge">
<title>N14&#45;&gt;N24</title>
<g id="a_edge63"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.12s)">
<path fill="none" stroke="#000000" d="M1449.8422,-1352.5536C1446.8711,-1351.9997 1443.9199,-1351.48 1441,-1351 1380.6898,-1341.0864 1219.0205,-1364.3469 1166.5518,-1333 1154.8149,-1325.9879 1146.187,-1313.7381 1140.1826,-1302.1276"/>
<polygon fill="#000000" stroke="#000000" points="1143.3438,-1300.6249 1135.9204,-1293.0655 1137.0094,-1303.6042 1143.3438,-1300.6249"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.12s)">
<text text-anchor="middle" x="1182.7241" y="-1321.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="runtime.mach_semaphore_signal (1.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1242.168,-50 947.832,-50 947.832,0 1242.168,0 1242.168,-50"/>
<text text-anchor="middle" x="1095" y="-29.2" font-family="Times,serif" font-size="21.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="1095" y="-8.2" font-family="Times,serif" font-size="21.00" fill="#000000">1.15s(9.40%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N4 -->
<g id="edge28" class="edge">
<title>N16&#45;&gt;N4</title>
<g id="a_edge28"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.84s)">
<path fill="none" stroke="#000000" d="M428.3547,-1467.3021C422.8757,-1445.66 416,-1412.6868 416,-1383.5 416,-1383.5 416,-1383.5 416,-1070 416,-1017.5601 476.7301,-993.7984 527.2446,-983.1042"/>
<polygon fill="#000000" stroke="#000000" points="528.0606,-986.5107 537.1903,-981.1349 526.7009,-979.644 528.0606,-986.5107"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.84s)">
<text text-anchor="middle" x="432.7241" y="-1215.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.84s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N4 -->
<g id="edge33" class="edge">
<title>N18&#45;&gt;N4</title>
<g id="a_edge33"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.47s)">
<path fill="none" stroke="#000000" d="M1186.2947,-1062.7436C1072.7958,-1045.8339 790.5472,-1003.7828 660.9675,-984.4772"/>
<polygon fill="#000000" stroke="#000000" points="661.1889,-980.9716 650.7823,-982.9598 660.1573,-987.8952 661.1889,-980.9716"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.47s)">
<text text-anchor="middle" x="968.7241" y="-1018.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.47s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.typedmemmove (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2254.6392,-996.5 2121.3608,-996.5 2121.3608,-952.5 2254.6392,-952.5 2254.6392,-996.5"/>
<text text-anchor="middle" x="2188" y="-982.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="2188" y="-970.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.74%)</text>
<text text-anchor="middle" x="2188" y="-958.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.22s(1.80%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N37 -->
<g id="edge71" class="edge">
<title>N18&#45;&gt;N37</title>
<g id="a_edge71"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.09s)">
<path fill="none" stroke="#000000" d="M1283.5696,-1065.1328C1438.5087,-1049.6064 1921.9071,-1001.1651 2111.0397,-982.2122"/>
<polygon fill="#000000" stroke="#000000" points="2111.5752,-985.6761 2121.1764,-981.1964 2110.8772,-978.711 2111.5752,-985.6761"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.09s)">
<text text-anchor="middle" x="1784.7241" y="-1018.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N14 -->
<g id="edge45" class="edge">
<title>N19&#45;&gt;N14</title>
<g id="a_edge45"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.28s)">
<path fill="none" stroke="#000000" d="M1313.4268,-1468.8707C1330.5016,-1454.957 1351.37,-1438.7658 1361.5518,-1434 1391.6528,-1419.9105 1403.8155,-1423.8192 1439.544,-1416.1788"/>
<polygon fill="#000000" stroke="#000000" points="1440.7588,-1419.4906 1449.7164,-1413.8327 1439.1856,-1412.6696 1440.7588,-1419.4906"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.28s)">
<text text-anchor="middle" x="1377.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="main.isPrefixChar (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1431.9942,-1401.5 1314.0058,-1401.5 1314.0058,-1365.5 1431.9942,-1365.5 1431.9942,-1401.5"/>
<text text-anchor="middle" x="1373" y="-1386.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.isPrefixChar</text>
<text text-anchor="middle" x="1373" y="-1372.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.19s(1.55%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N39 -->
<g id="edge52" class="edge">
<title>N19&#45;&gt;N39</title>
<g id="a_edge52"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.19s)">
<path fill="none" stroke="#000000" d="M1290.8523,-1468.9827C1293.6007,-1457.7523 1298.1605,-1444.323 1305.5518,-1434 1312.8037,-1423.8717 1322.6942,-1414.8937 1332.6654,-1407.4215"/>
<polygon fill="#000000" stroke="#000000" points="1334.8726,-1410.1471 1341.0042,-1401.5068 1330.8227,-1404.4375 1334.8726,-1410.1471"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.19s)">
<text text-anchor="middle" x="1321.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N24 -->
<g id="edge93" class="edge">
<title>N20&#45;&gt;N24</title>
<g id="a_edge93"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.04s)">
<path fill="none" stroke="#000000" d="M977.0108,-1470.4426C1008.8992,-1458.838 1043.9884,-1441.4165 1069,-1416 1099.8784,-1384.6217 1115.7895,-1334.987 1123.2557,-1303.2195"/>
<polygon fill="#000000" stroke="#000000" points="1126.7333,-1303.703 1125.4734,-1293.1834 1119.8981,-1302.1926 1126.7333,-1303.703"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.04s)">
<text text-anchor="middle" x="1123.7241" y="-1379.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="main.(*machine).executeMultiply (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1027.0645,-1402.5 874.9355,-1402.5 874.9355,-1364.5 1027.0645,-1364.5 1027.0645,-1402.5"/>
<text text-anchor="middle" x="951" y="-1390.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="951" y="-1380.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="951" y="-1370.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.23s(1.88%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N32 -->
<g id="edge49" class="edge">
<title>N20&#45;&gt;N32</title>
<g id="a_edge49"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.23s)">
<path fill="none" stroke="#000000" d="M908.2189,-1470.2729C916.4159,-1453.6471 928.0059,-1430.1389 937.0554,-1411.7839"/>
<polygon fill="#000000" stroke="#000000" points="940.2418,-1413.2357 941.5247,-1402.7188 933.9634,-1410.1403 940.2418,-1413.2357"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.23s)">
<text text-anchor="middle" x="942.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="main.(*machine).executeSubtract (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="857.3853,-1402.5 706.6147,-1402.5 706.6147,-1364.5 857.3853,-1364.5 857.3853,-1402.5"/>
<text text-anchor="middle" x="782" y="-1390.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="782" y="-1380.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="782" y="-1370.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(1.47%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N41 -->
<g id="edge54" class="edge">
<title>N20&#45;&gt;N41</title>
<g id="a_edge54"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.18s)">
<path fill="none" stroke="#000000" d="M880.0485,-1470.2618C870.0929,-1459.1355 857.2745,-1445.4058 845,-1434 835.7742,-1425.4272 825.2645,-1416.6517 815.5083,-1408.8717"/>
<polygon fill="#000000" stroke="#000000" points="817.5581,-1406.0309 807.5351,-1402.5969 813.229,-1411.5318 817.5581,-1406.0309"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.18s)">
<text text-anchor="middle" x="874.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N9 -->
<g id="edge58" class="edge">
<title>N21&#45;&gt;N9</title>
<g id="a_edge58"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.17s)">
<path fill="none" stroke="#000000" d="M1725.101,-1465.9508C1716.9295,-1437.53 1702.2309,-1390.0563 1685,-1351 1681.306,-1342.627 1678.2937,-1341.5384 1675,-1333 1665.1448,-1307.452 1661,-1300.383 1661,-1273 1661,-1273 1661,-1273 1661,-748 1661,-698.8 1324.6667,-667.2185 1170.5333,-655.3286"/>
<polygon fill="#000000" stroke="#000000" points="1170.441,-651.8115 1160.2036,-654.5402 1169.9083,-658.7912 1170.441,-651.8115"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.17s)">
<text text-anchor="middle" x="1677.7241" y="-1065.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.memmove (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1993.1417,-483 1870.8583,-483 1870.8583,-447 1993.1417,-447 1993.1417,-483"/>
<text text-anchor="middle" x="1932" y="-467.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="1932" y="-453.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.18s(1.47%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N43 -->
<g id="edge85" class="edge">
<title>N21&#45;&gt;N43</title>
<g id="a_edge85"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.06s)">
<path fill="none" stroke="#000000" d="M1735.1086,-1465.9704C1738.5015,-1432.0045 1741.7774,-1369.7323 1728,-1319 1725.6015,-1310.1682 1720.2956,-1309.8591 1718,-1301 1711.7568,-1276.9069 1714.6777,-1269.6662 1718,-1245 1758.6875,-942.919 1884.2354,-592.3221 1921.4804,-492.6726"/>
<polygon fill="#000000" stroke="#000000" points="1924.8553,-493.6412 1925.0952,-483.0491 1918.3023,-491.1798 1924.8553,-493.6412"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.06s)">
<text text-anchor="middle" x="1792.7241" y="-970.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N9 -->
<g id="edge43" class="edge">
<title>N23&#45;&gt;N9</title>
<g id="a_edge43"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.31s)">
<path fill="none" stroke="#000000" d="M1878.5578,-1468.9597C1891.0325,-1447.9168 1907,-1414.8574 1907,-1383.5 1907,-1383.5 1907,-1383.5 1907,-748 1907,-674.2468 1372.1759,-655.658 1170.625,-651.2714"/>
<polygon fill="#000000" stroke="#000000" points="1170.4907,-647.7678 1160.4188,-651.0552 1170.3424,-654.7663 1170.4907,-647.7678"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.31s)">
<text text-anchor="middle" x="1923.7241" y="-1065.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N9 -->
<g id="edge38" class="edge">
<title>N25&#45;&gt;N9</title>
<g id="a_edge38"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.35s)">
<path fill="none" stroke="#000000" d="M1095,-728.6384C1095,-716.3394 1095,-700.05 1095,-685.4878"/>
<polygon fill="#000000" stroke="#000000" points="1098.5001,-685.2712 1095,-675.2713 1091.5001,-685.2713 1098.5001,-685.2712"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.35s)">
<text text-anchor="middle" x="1111.7241" y="-695.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.(*mcentral).grow (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1018.7963,-484 899.2037,-484 899.2037,-446 1018.7963,-446 1018.7963,-484"/>
<text text-anchor="middle" x="959" y="-472" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="959" y="-462" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.082%)</text>
<text text-anchor="middle" x="959" y="-452" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.23s(1.88%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N34 -->
<g id="edge50" class="edge">
<title>N27&#45;&gt;N34</title>
<g id="a_edge50"><a xlink:title="runtime.(*mcache).refill ... runtime.(*mcentral).grow (0.23s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M959,-535.0798C959,-523.1532 959,-507.6473 959,-494.2542"/>
<polygon fill="#000000" stroke="#000000" points="962.5001,-494.0748 959,-484.0748 955.5001,-494.0748 962.5001,-494.0748"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.(*mcache).refill ... runtime.(*mcentral).grow (0.23s)">
<text text-anchor="middle" x="975.7241" y="-504.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.mapassign1 (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2193.4844,-1405.5 2080.5156,-1405.5 2080.5156,-1361.5 2193.4844,-1361.5 2193.4844,-1405.5"/>
<text text-anchor="middle" x="2137" y="-1391.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="2137" y="-1379.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.74%)</text>
<text text-anchor="middle" x="2137" y="-1367.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.24s(1.96%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N31 -->
<g id="edge47" class="edge">
<title>N28&#45;&gt;N31</title>
<g id="a_edge47"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.24s)">
<path fill="none" stroke="#000000" d="M2184.2038,-1470.4211C2165.2719,-1463.6725 2148.5387,-1455.8746 2142.5518,-1448 2135.6957,-1438.9824 2133.3776,-1427.0675 2133.087,-1415.9345"/>
<polygon fill="#000000" stroke="#000000" points="2136.5938,-1415.7055 2133.3477,-1405.6203 2129.5961,-1415.5286 2136.5938,-1415.7055"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.24s)">
<text text-anchor="middle" x="2158.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.assertI2T (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2304.8917,-1404 2211.1083,-1404 2211.1083,-1363 2304.8917,-1363 2304.8917,-1404"/>
<text text-anchor="middle" x="2258" y="-1391.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="2258" y="-1380.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.33%)</text>
<text text-anchor="middle" x="2258" y="-1369.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.10s(0.82%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N58 -->
<g id="edge98" class="edge">
<title>N28&#45;&gt;N58</title>
<g id="a_edge98"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M2258,-1470.2729C2258,-1454.3602 2258,-1432.1428 2258,-1414.1731"/>
<polygon fill="#000000" stroke="#000000" points="2261.5001,-1414.1634 2258,-1404.1635 2254.5001,-1414.1635 2261.5001,-1414.1634"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="2274.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.stringiter2 (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1295.649,-1401.5 1190.351,-1401.5 1190.351,-1365.5 1295.649,-1365.5 1295.649,-1401.5"/>
<text text-anchor="middle" x="1243" y="-1385.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.stringiter2</text>
<text text-anchor="middle" x="1243" y="-1373.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.74%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N63 -->
<g id="edge76" class="edge">
<title>N29&#45;&gt;N63</title>
<g id="a_edge76"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.08s)">
<path fill="none" stroke="#000000" d="M1140.7485,-1467.4087C1162.1195,-1449.8714 1191.2081,-1426.001 1212.8963,-1408.2034"/>
<polygon fill="#000000" stroke="#000000" points="1215.3046,-1410.7548 1220.8147,-1401.7055 1210.864,-1405.3435 1215.3046,-1410.7548"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.08s)">
<text text-anchor="middle" x="1197.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.newdefer (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1293.6212,-483 1178.3788,-483 1178.3788,-447 1293.6212,-447 1293.6212,-483"/>
<text text-anchor="middle" x="1236" y="-467.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="1236" y="-453.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.22s(1.80%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N36 -->
<g id="edge51" class="edge">
<title>N30&#45;&gt;N36</title>
<g id="a_edge51"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.22s)">
<path fill="none" stroke="#000000" d="M1236,-533.7419C1236,-521.8004 1236,-506.6228 1236,-493.5683"/>
<polygon fill="#000000" stroke="#000000" points="1239.5001,-493.2195 1236,-483.2195 1232.5001,-493.2196 1239.5001,-493.2195"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.22s)">
<text text-anchor="middle" x="1252.7241" y="-504.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N43 -->
<g id="edge99" class="edge">
<title>N30&#45;&gt;N43</title>
<g id="a_edge99"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.03s)">
<path fill="none" stroke="#000000" d="M1297.6575,-535.6202C1300.4648,-535.0208 1303.255,-534.4756 1306,-534 1441.5471,-510.5176 1478.248,-530.9447 1615,-516 1699.9467,-506.7167 1796.8302,-490.2635 1860.8933,-478.5562"/>
<polygon fill="#000000" stroke="#000000" points="1861.6837,-481.9697 1870.8864,-476.7199 1860.4185,-475.0849 1861.6837,-481.9697"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.03s)">
<text text-anchor="middle" x="1736.7241" y="-504.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N22 -->
<g id="edge96" class="edge">
<title>N31&#45;&gt;N22</title>
<g id="a_edge96"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.04s)">
<path fill="none" stroke="#000000" d="M2080.3415,-1364.7552C2023.1902,-1345.8474 1934.832,-1316.6151 1873.257,-1296.2437"/>
<polygon fill="#000000" stroke="#000000" points="1874.2067,-1292.8714 1863.6134,-1293.0533 1872.008,-1299.5171 1874.2067,-1292.8714"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.04s)">
<text text-anchor="middle" x="1996.7241" y="-1321.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N37 -->
<g id="edge81" class="edge">
<title>N31&#45;&gt;N37</title>
<g id="a_edge81"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.07s)">
<path fill="none" stroke="#000000" d="M2141.1848,-1361.1572C2144.9852,-1338.9009 2150,-1303.713 2150,-1273 2150,-1273 2150,-1273 2150,-1070 2150,-1047.3588 2159.3349,-1023.7011 2168.7513,-1005.5965"/>
<polygon fill="#000000" stroke="#000000" points="2171.9057,-1007.1229 2173.6338,-996.6699 2165.7643,-1003.7637 2171.9057,-1007.1229"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.07s)">
<text text-anchor="middle" x="2166.7241" y="-1164.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.assertI2I (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="923.0322,-1292 838.9678,-1292 838.9678,-1254 923.0322,-1254 923.0322,-1292"/>
<text text-anchor="middle" x="881" y="-1280" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="881" y="-1270" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="881" y="-1260" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.10s(0.82%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N57 -->
<g id="edge78" class="edge">
<title>N32&#45;&gt;N57</title>
<g id="a_edge78"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.07s)">
<path fill="none" stroke="#000000" d="M938.8069,-1364.2524C927.6653,-1346.6645 911.0622,-1320.4553 898.5043,-1300.6319"/>
<polygon fill="#000000" stroke="#000000" points="901.3615,-1298.6017 893.0533,-1292.0271 895.4481,-1302.3477 901.3615,-1298.6017"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.07s)">
<text text-anchor="middle" x="934.7241" y="-1321.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="main.(*Integer).Multiply (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1036.9805,-1291 941.0195,-1291 941.0195,-1255 1036.9805,-1255 1036.9805,-1291"/>
<text text-anchor="middle" x="989" y="-1274.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="989" y="-1266.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(0.65%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N64 -->
<g id="edge74" class="edge">
<title>N32&#45;&gt;N64</title>
<g id="a_edge74"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*Integer).Multiply (0.08s)">
<path fill="none" stroke="#000000" d="M957.6191,-1364.2524C963.6309,-1346.7708 972.5717,-1320.7717 979.3738,-1300.9919"/>
<polygon fill="#000000" stroke="#000000" points="982.7668,-1301.888 982.7091,-1291.2933 976.1473,-1299.6115 982.7668,-1301.888"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*Integer).Multiply (0.08s)">
<text text-anchor="middle" x="988.7241" y="-1321.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N14 -->
<g id="edge75" class="edge">
<title>N33&#45;&gt;N14</title>
<g id="a_edge75"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.08s)">
<path fill="none" stroke="#000000" d="M1940.7304,-1468.9864C1867.199,-1452.345 1765.7272,-1429.3804 1686.4701,-1411.4432"/>
<polygon fill="#000000" stroke="#000000" points="1686.9524,-1407.9639 1676.4265,-1409.1702 1685.4073,-1414.7913 1686.9524,-1407.9639"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.08s)">
<text text-anchor="middle" x="1859.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N58 -->
<g id="edge94" class="edge">
<title>N33&#45;&gt;N58</title>
<g id="a_edge94"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M2125.7038,-1468.9615C2142.8433,-1463.198 2160.3428,-1456.2368 2176,-1448 2194.7998,-1438.11 2213.5845,-1423.7444 2228.4222,-1411.0797"/>
<polygon fill="#000000" stroke="#000000" points="2231.004,-1413.4718 2236.2343,-1404.258 2226.3998,-1408.1991 2231.004,-1413.4718"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="2213.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.(*mheap).alloc (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1013.8526,-396 904.1474,-396 904.1474,-358 1013.8526,-358 1013.8526,-396"/>
<text text-anchor="middle" x="959" y="-384" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="959" y="-374" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.082%)</text>
<text text-anchor="middle" x="959" y="-364" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(1.47%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N42 -->
<g id="edge55" class="edge">
<title>N34&#45;&gt;N42</title>
<g id="a_edge55"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.18s)">
<path fill="none" stroke="#000000" d="M959,-445.9053C959,-434.3736 959,-419.4389 959,-406.4228"/>
<polygon fill="#000000" stroke="#000000" points="962.5001,-406.0574 959,-396.0574 955.5001,-406.0575 962.5001,-406.0574"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.18s)">
<text text-anchor="middle" x="975.7241" y="-416.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N43 -->
<g id="edge86" class="edge">
<title>N37&#45;&gt;N43</title>
<g id="a_edge86"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.06s)">
<path fill="none" stroke="#000000" d="M2255.0375,-954.8939C2297.7097,-937.8281 2345,-908.2553 2345,-861 2345,-861 2345,-861 2345,-554.5 2345,-519.9699 2121.6429,-487.8238 2003.4432,-473.2297"/>
<polygon fill="#000000" stroke="#000000" points="2003.7354,-469.7394 1993.3843,-471.9987 2002.8851,-476.6876 2003.7354,-469.7394"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.06s)">
<text text-anchor="middle" x="2361.7241" y="-695.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.heapBitsBulkBarrier (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2265.6352,-879 2110.3648,-879 2110.3648,-843 2265.6352,-843 2265.6352,-879"/>
<text text-anchor="middle" x="2188" y="-863.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.heapBitsBulkBarrier</text>
<text text-anchor="middle" x="2188" y="-851.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.57%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N68 -->
<g id="edge82" class="edge">
<title>N37&#45;&gt;N68</title>
<g id="a_edge82"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.07s)">
<path fill="none" stroke="#000000" d="M2188,-952.3466C2188,-934.3838 2188,-908.943 2188,-889.47"/>
<polygon fill="#000000" stroke="#000000" points="2191.5001,-889.351 2188,-879.351 2184.5001,-889.3511 2191.5001,-889.351"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.07s)">
<text text-anchor="middle" x="2204.7241" y="-921.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.mcall (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="471.7699,-766 398.2301,-766 398.2301,-730 471.7699,-730 471.7699,-766"/>
<text text-anchor="middle" x="435" y="-749.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="435" y="-741.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.21s(1.72%)</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N9 -->
<g id="edge72" class="edge">
<title>N38&#45;&gt;N9</title>
<g id="a_edge72"><a xlink:title="runtime.mcall ... runtime.systemstack (0.08s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M467.8627,-729.9015C472.1913,-728.0164 476.6399,-726.3135 481,-725 580.1236,-695.1396 878.2019,-667.7166 1019.3364,-655.9964"/>
<polygon fill="#000000" stroke="#000000" points="1019.9536,-659.4575 1029.6316,-655.1462 1019.3774,-652.4812 1019.9536,-659.4575"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.mcall ... runtime.systemstack (0.08s)">
<text text-anchor="middle" x="672.7241" y="-695.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime._System (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1011.7699,-766 938.2301,-766 938.2301,-730 1011.7699,-730 1011.7699,-766"/>
<text text-anchor="middle" x="975" y="-749.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="975" y="-741.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.19s(1.55%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N9 -->
<g id="edge53" class="edge">
<title>N40&#45;&gt;N9</title>
<g id="a_edge53"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.19s)">
<path fill="none" stroke="#000000" d="M997.2898,-729.7966C1013.8508,-716.2718 1036.8577,-697.4829 1056.3866,-681.5343"/>
<polygon fill="#000000" stroke="#000000" points="1058.7031,-684.1613 1064.2346,-675.1251 1054.2754,-678.7396 1058.7031,-684.1613"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.19s)">
<text text-anchor="middle" x="1058.7241" y="-695.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N57 -->
<g id="edge97" class="edge">
<title>N41&#45;&gt;N57</title>
<g id="a_edge97"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.03s)">
<path fill="none" stroke="#000000" d="M799.2445,-1364.2524C815.2859,-1346.3476 839.3322,-1319.508 857.1982,-1299.5666"/>
<polygon fill="#000000" stroke="#000000" points="859.887,-1301.8106 863.9531,-1292.0271 854.6734,-1297.1396 859.887,-1301.8106"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.03s)">
<text text-anchor="middle" x="853.7241" y="-1321.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="main.(*Integer).Add (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="821.1926,-1292 722.8074,-1292 722.8074,-1254 821.1926,-1254 821.1926,-1292"/>
<text text-anchor="middle" x="772" y="-1280" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="772" y="-1270" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.082%)</text>
<text text-anchor="middle" x="772" y="-1260" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.07s(0.57%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N66 -->
<g id="edge79" class="edge">
<title>N41&#45;&gt;N66</title>
<g id="a_edge79"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.07s)">
<path fill="none" stroke="#000000" d="M780.2581,-1364.2524C778.7095,-1347.1398 776.4222,-1321.8657 774.6473,-1302.2529"/>
<polygon fill="#000000" stroke="#000000" points="778.109,-1301.6709 773.7219,-1292.0271 771.1375,-1302.3018 778.109,-1301.6709"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.07s)">
<text text-anchor="middle" x="794.7241" y="-1321.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N35 -->
<g id="edge57" class="edge">
<title>N42&#45;&gt;N35</title>
<g id="a_edge57"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.17s)">
<path fill="none" stroke="#000000" d="M959,-357.6919C959,-346.1154 959,-331.1873 959,-318.2967"/>
<polygon fill="#000000" stroke="#000000" points="962.5001,-318.066 959,-308.0661 955.5001,-318.0661 962.5001,-318.066"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.17s)">
<text text-anchor="middle" x="975.7241" y="-328.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.freedefer (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1631.0819,-483 1524.9181,-483 1524.9181,-447 1631.0819,-447 1631.0819,-483"/>
<text text-anchor="middle" x="1578" y="-467.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="1578" y="-454.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.14s(1.14%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N49 -->
<g id="edge62" class="edge">
<title>N45&#45;&gt;N49</title>
<g id="a_edge62"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.14s)">
<path fill="none" stroke="#000000" d="M1578,-533.7419C1578,-521.8004 1578,-506.6228 1578,-493.5683"/>
<polygon fill="#000000" stroke="#000000" points="1581.5001,-493.2195 1578,-483.2195 1574.5001,-493.2196 1581.5001,-493.2195"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.14s)">
<text text-anchor="middle" x="1594.7241" y="-504.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.getitab (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1084.6549,-1190.5 991.3451,-1190.5 991.3451,-1146.5 1084.6549,-1146.5 1084.6549,-1190.5"/>
<text text-anchor="middle" x="1038" y="-1176.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="1038" y="-1164.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.65%)</text>
<text text-anchor="middle" x="1038" y="-1152.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.13s(1.06%)</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.goschedImpl (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="327.2073,-766 242.7927,-766 242.7927,-730 327.2073,-730 327.2073,-766"/>
<text text-anchor="middle" x="285" y="-749.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="285" y="-741.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(0.98%)</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N9 -->
<g id="edge91" class="edge">
<title>N51&#45;&gt;N9</title>
<g id="a_edge91"><a xlink:title="runtime.goschedImpl ... runtime.systemstack (0.05s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M327.236,-736.5853C375.8847,-723.8953 458.3944,-703.772 530.5518,-693 704.2839,-667.0643 910.5672,-656.3836 1019.2615,-652.2989"/>
<polygon fill="#000000" stroke="#000000" points="1019.6066,-655.7887 1029.4713,-651.9239 1019.3496,-648.7934 1019.6066,-655.7887"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.goschedImpl ... runtime.systemstack (0.05s)">
<text text-anchor="middle" x="547.7241" y="-695.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.usleep (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2503.3956,-1894 2410.6044,-1894 2410.6044,-1858 2503.3956,-1858 2503.3956,-1894"/>
<text text-anchor="middle" x="2457" y="-1878.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="2457" y="-1865.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.12s(0.98%)</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.gopreempt_m (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="238.817,-879 151.183,-879 151.183,-843 238.817,-843 238.817,-879"/>
<text text-anchor="middle" x="195" y="-862.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="195" y="-854.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.9%)</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N51 -->
<g id="edge64" class="edge">
<title>N53&#45;&gt;N51</title>
<g id="a_edge64"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.11s)">
<path fill="none" stroke="#000000" d="M209.4601,-842.8446C224.2869,-824.2287 247.4888,-795.0974 264.268,-774.0302"/>
<polygon fill="#000000" stroke="#000000" points="267.0835,-776.1131 270.5758,-766.1103 261.608,-771.752 267.0835,-776.1131"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.11s)">
<text text-anchor="middle" x="267.4678" y="-791.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.morestack (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="207.7582,-1088 132.2418,-1088 132.2418,-1052 207.7582,-1052 207.7582,-1088"/>
<text text-anchor="middle" x="170" y="-1071.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="170" y="-1063.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.9%)</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.newstack (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="207.1493,-992.5 134.8507,-992.5 134.8507,-956.5 207.1493,-956.5 207.1493,-992.5"/>
<text text-anchor="middle" x="171" y="-976.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="171" y="-968.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.9%)</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N55 -->
<g id="edge65" class="edge">
<title>N54&#45;&gt;N55</title>
<g id="a_edge65"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.11s)">
<path fill="none" stroke="#000000" d="M170.1928,-1051.5866C170.3376,-1037.7585 170.5385,-1018.5711 170.7037,-1002.7988"/>
<polygon fill="#000000" stroke="#000000" points="174.2062,-1002.5691 170.8112,-992.533 167.2066,-1002.4957 174.2062,-1002.5691"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.11s)">
<text text-anchor="middle" x="187.4678" y="-1018.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N53 -->
<g id="edge66" class="edge">
<title>N55&#45;&gt;N53</title>
<g id="a_edge66"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.11s)">
<path fill="none" stroke="#000000" d="M174.856,-956.2643C178.6874,-938.1451 184.6159,-910.1082 189.0509,-889.1344"/>
<polygon fill="#000000" stroke="#000000" points="192.509,-889.6983 191.1536,-879.1905 185.6604,-888.25 192.509,-889.6983"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.11s)">
<text text-anchor="middle" x="199.4678" y="-921.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N50 -->
<g id="edge77" class="edge">
<title>N57&#45;&gt;N50</title>
<g id="a_edge77"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.08s)">
<path fill="none" stroke="#000000" d="M916.6356,-1253.7987C930.7007,-1245.8889 946.8487,-1236.3886 961,-1227 974.8858,-1217.7875 989.5794,-1206.9245 1002.3668,-1197.0757"/>
<polygon fill="#000000" stroke="#000000" points="1004.7209,-1199.6789 1010.4671,-1190.7777 1000.4242,-1194.1527 1004.7209,-1199.6789"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.08s)">
<text text-anchor="middle" x="996.7241" y="-1215.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N37 -->
<g id="edge84" class="edge">
<title>N58&#45;&gt;N37</title>
<g id="a_edge84"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.06s)">
<path fill="none" stroke="#000000" d="M2250.0579,-1362.6597C2242.4117,-1340.6962 2232,-1304.9268 2232,-1273 2232,-1273 2232,-1273 2232,-1070 2232,-1046.993 2221.3358,-1023.4929 2210.5075,-1005.5614"/>
<polygon fill="#000000" stroke="#000000" points="2213.2063,-1003.283 2204.8857,-996.7241 2207.3001,-1007.0402 2213.2063,-1003.283"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.06s)">
<text text-anchor="middle" x="2248.7241" y="-1164.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N5 -->
<g id="edge88" class="edge">
<title>N59&#45;&gt;N5</title>
<g id="a_edge88"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.05s)">
<path fill="none" stroke="#000000" d="M233.9164,-1470.3963C234.7986,-1448.7606 236,-1413.7461 236,-1383.5 236,-1383.5 236,-1383.5 236,-974.5 236,-920.4947 385.9059,-888.8565 491.7111,-873.2518"/>
<polygon fill="#000000" stroke="#000000" points="492.4102,-876.6872 501.8061,-871.7915 491.408,-869.7593 492.4102,-876.6872"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.05s)">
<text text-anchor="middle" x="252.7241" y="-1164.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.osyield (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2492.7699,-1980 2419.2301,-1980 2419.2301,-1944 2492.7699,-1944 2492.7699,-1980"/>
<text text-anchor="middle" x="2456" y="-1963.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="2456" y="-1955.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(0.82%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N52 -->
<g id="edge70" class="edge">
<title>N60&#45;&gt;N52</title>
<g id="a_edge70"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.10s)">
<path fill="none" stroke="#000000" d="M2456.2121,-1943.7616C2456.3447,-1932.3597 2456.5182,-1917.4342 2456.6687,-1904.494"/>
<polygon fill="#000000" stroke="#000000" points="2460.1716,-1904.2522 2456.7882,-1894.2121 2453.1721,-1904.1707 2460.1716,-1904.2522"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.10s)">
<text text-anchor="middle" x="2472.7241" y="-1914.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N9 -->
<g id="edge100" class="edge">
<title>N61&#45;&gt;N9</title>
<g id="a_edge100"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.03s)">
<path fill="none" stroke="#000000" d="M1777.7677,-2134.7729C1922.2135,-2130.0683 2383,-2110.2596 2383,-2049 2383,-2049 2383,-2049 2383,-796 2383,-673.2422 1447.3296,-653.6806 1170.9731,-650.5802"/>
<polygon fill="#000000" stroke="#000000" points="1170.6801,-647.0769 1160.6429,-650.4686 1170.6044,-654.0765 1170.6801,-647.0769"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.03s)">
<text text-anchor="middle" x="2399.7241" y="-1436.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.lock (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2494.2124,-2068 2413.7876,-2068 2413.7876,-2030 2494.2124,-2030 2494.2124,-2068"/>
<text text-anchor="middle" x="2454" y="-2056" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="2454" y="-2046" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="2454" y="-2036" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(0.74%)</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N60 -->
<g id="edge89" class="edge">
<title>N62&#45;&gt;N60</title>
<g id="a_edge89"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.05s)">
<path fill="none" stroke="#000000" d="M2454.4439,-2029.6919C2454.71,-2018.1154 2455.0532,-2003.1873 2455.3495,-1990.2967"/>
<polygon fill="#000000" stroke="#000000" points="2458.8538,-1990.1439 2455.5847,-1980.0661 2451.8557,-1989.983 2458.8538,-1990.1439"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.05s)">
<text text-anchor="middle" x="2471.7241" y="-2000.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="main.Integer.Multiply (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1206.7688,-1187.5 1103.2312,-1187.5 1103.2312,-1149.5 1206.7688,-1149.5 1206.7688,-1187.5"/>
<text text-anchor="middle" x="1155" y="-1175.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="1155" y="-1165.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="1155" y="-1155.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.08s(0.65%)</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N65 -->
<g id="edge73" class="edge">
<title>N64&#45;&gt;N65</title>
<g id="a_edge73"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.08s)">
<path fill="none" stroke="#000000" d="M1017.915,-1254.7975C1045.1385,-1237.6598 1086.1116,-1211.8665 1116.1741,-1192.9416"/>
<polygon fill="#000000" stroke="#000000" points="1118.1359,-1195.8425 1124.734,-1187.553 1114.4066,-1189.9185 1118.1359,-1195.8425"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.08s)">
<text text-anchor="middle" x="1097.7241" y="-1215.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N18 -->
<g id="edge87" class="edge">
<title>N65&#45;&gt;N18</title>
<g id="a_edge87"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.05s)">
<path fill="none" stroke="#000000" d="M1163.3854,-1149.4954C1169.1947,-1137.4857 1177.6492,-1122.0209 1187.5518,-1110 1190.643,-1106.2475 1194.1187,-1102.575 1197.7473,-1099.071"/>
<polygon fill="#000000" stroke="#000000" points="1200.3103,-1101.4704 1205.3361,-1092.1434 1195.5909,-1096.3005 1200.3103,-1101.4704"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.05s)">
<text text-anchor="middle" x="1203.7241" y="-1112.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N62 -->
<g id="edge95" class="edge">
<title>N67&#45;&gt;N62</title>
<g id="a_edge95"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.04s)">
<path fill="none" stroke="#000000" d="M2286.791,-2131.4193C2319.427,-2126.8375 2362.5405,-2117.7774 2397,-2100 2409.1051,-2093.7551 2420.661,-2084.3264 2430.1643,-2075.268"/>
<polygon fill="#000000" stroke="#000000" points="2432.6972,-2077.6852 2437.317,-2068.1507 2427.7597,-2072.7232 2432.6972,-2077.6852"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.04s)">
<text text-anchor="middle" x="2433.7241" y="-2088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run (11.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="774.7502,-1980 635.2498,-1980 635.2498,-1944 774.7502,-1944 774.7502,-1980"/>
<text text-anchor="middle" x="705" y="-1963.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.(*App).Run</text>
<text text-anchor="middle" x="705" y="-1955.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 11.42s(93.38%)</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction (11.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="778.1837,-1894 631.8163,-1894 631.8163,-1858 778.1837,-1858 778.1837,-1894"/>
<text text-anchor="middle" x="705" y="-1877.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.HandleAction</text>
<text text-anchor="middle" x="705" y="-1869.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 11.42s(93.38%)</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N70 -->
<g id="edge1" class="edge">
<title>N69&#45;&gt;N70</title>
<g id="a_edge1"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (11.42s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M705,-1943.7616C705,-1932.3597 705,-1917.4342 705,-1904.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="709.3751,-1904.2121 705,-1894.2121 700.6251,-1904.2121 709.3751,-1904.2121"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (11.42s)">
<text text-anchor="middle" x="724.9678" y="-1914.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 11.42s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="main.handleFlags (11.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="745.978,-1808 664.022,-1808 664.022,-1772 745.978,-1772 745.978,-1808"/>
<text text-anchor="middle" x="705" y="-1791.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.handleFlags</text>
<text text-anchor="middle" x="705" y="-1783.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 11.42s(93.38%)</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N72 -->
<g id="edge2" class="edge">
<title>N70&#45;&gt;N72</title>
<g id="a_edge2"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (11.42s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M705,-1857.7616C705,-1846.3597 705,-1831.4342 705,-1818.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="709.3751,-1818.2121 705,-1808.2121 700.6251,-1818.2121 709.3751,-1818.2121"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (11.42s)">
<text text-anchor="middle" x="724.9678" y="-1828.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 11.42s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="main.(*machine).executeString (11.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="763.407,-1721 646.593,-1721 646.593,-1685 763.407,-1685 763.407,-1721"/>
<text text-anchor="middle" x="705" y="-1704.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeString</text>
<text text-anchor="middle" x="705" y="-1696.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 11.42s(93.38%)</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N2 -->
<g id="edge3" class="edge">
<title>N71&#45;&gt;N2</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (11.42s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M705,-1684.5857C705,-1673.3175 705,-1658.3848 705,-1644.205"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="709.3751,-1644.0762 705,-1634.0763 700.6251,-1644.0763 709.3751,-1644.0762"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (11.42s)">
<text text-anchor="middle" x="724.9678" y="-1654.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 11.42s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N71 -->
<g id="edge4" class="edge">
<title>N72&#45;&gt;N71</title>
<g id="a_edge4"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (11.42s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M705,-1771.9735C705,-1760.1918 705,-1744.5607 705,-1731.1581"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="709.3751,-1731.0033 705,-1721.0034 700.6251,-1731.0034 709.3751,-1731.0033"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (11.42s)">
<text text-anchor="middle" x="724.9678" y="-1742.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 11.42s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="main.main (11.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="745.978,-2067 664.022,-2067 664.022,-2031 745.978,-2031 745.978,-2067"/>
<text text-anchor="middle" x="705" y="-2050.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.main</text>
<text text-anchor="middle" x="705" y="-2042.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 11.42s(93.38%)</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N69 -->
<g id="edge5" class="edge">
<title>N73&#45;&gt;N69</title>
<g id="a_edge5"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (11.42s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M705,-2030.9735C705,-2019.1918 705,-2003.5607 705,-1990.1581"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="709.3751,-1990.0033 705,-1980.0034 700.6251,-1990.0034 709.3751,-1990.0033"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (11.42s)">
<text text-anchor="middle" x="724.9678" y="-2000.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 11.42s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N73 -->
<g id="edge7" class="edge">
<title>N74&#45;&gt;N73</title>
<g id="a_edge7"><a xlink:title="runtime.main &#45;&gt; main.main (11.42s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M705,-2117.9735C705,-2106.1918 705,-2090.5607 705,-2077.1581"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="709.3751,-2077.0033 705,-2067.0034 700.6251,-2077.0034 709.3751,-2077.0033"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="runtime.main &#45;&gt; main.main (11.42s)">
<text text-anchor="middle" x="724.9678" y="-2088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 11.42s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.mach_semrelease (1.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1144.7973,-136 1045.2027,-136 1045.2027,-100 1144.7973,-100 1144.7973,-136"/>
<text text-anchor="middle" x="1095" y="-119.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mach_semrelease</text>
<text text-anchor="middle" x="1095" y="-111.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.15s(9.40%)</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N15 -->
<g id="edge19" class="edge">
<title>N75&#45;&gt;N15</title>
<g id="a_edge19"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (1.15s)">
<path fill="none" stroke="#000000" d="M1095,-99.6262C1095,-88.432 1095,-73.7543 1095,-60.3803"/>
<polygon fill="#000000" stroke="#000000" points="1098.5001,-60.0255 1095,-50.0255 1091.5001,-60.0255 1098.5001,-60.0255"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (1.15s)">
<text text-anchor="middle" x="1111.7241" y="-70.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.15s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.notewakeup (1.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1135.5365,-308 1054.4635,-308 1054.4635,-272 1135.5365,-272 1135.5365,-308"/>
<text text-anchor="middle" x="1095" y="-291.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notewakeup</text>
<text text-anchor="middle" x="1095" y="-283.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.15s(9.40%)</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.semawakeup (1.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1137.1995,-222 1052.8005,-222 1052.8005,-186 1137.1995,-186 1137.1995,-222"/>
<text text-anchor="middle" x="1095" y="-205.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semawakeup</text>
<text text-anchor="middle" x="1095" y="-197.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.15s(9.40%)</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N77 -->
<g id="edge20" class="edge">
<title>N76&#45;&gt;N77</title>
<g id="a_edge20"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (1.15s)">
<path fill="none" stroke="#000000" d="M1095,-271.7616C1095,-260.3597 1095,-245.4342 1095,-232.494"/>
<polygon fill="#000000" stroke="#000000" points="1098.5001,-232.2121 1095,-222.2121 1091.5001,-232.2121 1098.5001,-232.2121"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (1.15s)">
<text text-anchor="middle" x="1111.7241" y="-242.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.15s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N75 -->
<g id="edge21" class="edge">
<title>N77&#45;&gt;N75</title>
<g id="a_edge21"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (1.15s)">
<path fill="none" stroke="#000000" d="M1095,-185.7616C1095,-174.3597 1095,-159.4342 1095,-146.494"/>
<polygon fill="#000000" stroke="#000000" points="1098.5001,-146.2121 1095,-136.2121 1091.5001,-146.2121 1098.5001,-146.2121"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (1.15s)">
<text text-anchor="middle" x="1111.7241" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.15s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.startm (1.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1131.7699,-395 1058.2301,-395 1058.2301,-359 1131.7699,-359 1131.7699,-395"/>
<text text-anchor="middle" x="1095" y="-378.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.startm</text>
<text text-anchor="middle" x="1095" y="-370.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.06s(8.67%)</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N76 -->
<g id="edge22" class="edge">
<title>N78&#45;&gt;N76</title>
<g id="a_edge22"><a xlink:title="runtime.startm &#45;&gt; runtime.notewakeup (1.06s)">
<path fill="none" stroke="#000000" d="M1095,-358.9735C1095,-347.1918 1095,-331.5607 1095,-318.1581"/>
<polygon fill="#000000" stroke="#000000" points="1098.5001,-318.0033 1095,-308.0034 1091.5001,-318.0034 1098.5001,-318.0033"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.startm &#45;&gt; runtime.notewakeup (1.06s)">
<text text-anchor="middle" x="1111.7241" y="-328.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.06s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.wakep (1.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1131.7699,-483 1058.2301,-483 1058.2301,-447 1131.7699,-447 1131.7699,-483"/>
<text text-anchor="middle" x="1095" y="-466.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.wakep</text>
<text text-anchor="middle" x="1095" y="-458.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.06s(8.67%)</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N78 -->
<g id="edge23" class="edge">
<title>N79&#45;&gt;N78</title>
<g id="a_edge23"><a xlink:title="runtime.wakep &#45;&gt; runtime.startm (1.06s)">
<path fill="none" stroke="#000000" d="M1095,-446.7663C1095,-434.8492 1095,-419.0384 1095,-405.4817"/>
<polygon fill="#000000" stroke="#000000" points="1098.5001,-405.2103 1095,-395.2103 1091.5001,-405.2103 1098.5001,-405.2103"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.wakep &#45;&gt; runtime.startm (1.06s)">
<text text-anchor="middle" x="1111.7241" y="-416.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.06s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N79 -->
<g id="edge25" class="edge">
<title>N80&#45;&gt;N79</title>
<g id="a_edge25"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.wakep (1.02s)">
<path fill="none" stroke="#000000" d="M1095,-536.3883C1095,-524.0146 1095,-507.3686 1095,-493.2632"/>
<polygon fill="#000000" stroke="#000000" points="1098.5001,-493.0847 1095,-483.0847 1091.5001,-493.0848 1098.5001,-493.0847"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.wakep (1.02s)">
<text text-anchor="middle" x="1111.7241" y="-504.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.02s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration3.svg.













































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1349)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1349 3757.9893,-1349 3757.9893,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="2091.2402,-1153 2091.2402,-1337 2751.2402,-1337 2751.2402,-1153 2091.2402,-1153"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="2743.4122,-1329 2099.0683,-1329 2099.0683,-1161 2743.4122,-1161 2743.4122,-1329"/>
<text text-anchor="start" x="2106.9043" y="-1299.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="2106.9043" y="-1267.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="2106.9043" y="-1235.4" font-family="Times,serif" font-size="32.00" fill="#000000">7.12s of 7.69s total (92.59%)</text>
<text text-anchor="start" x="2106.9043" y="-1203.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 62 nodes (cum &lt;= 0.04s)</text>
<text text-anchor="start" x="2106.9043" y="-1171.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 110 (cum &gt;= 0.04s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (7.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="629.0101,-1111 551.4704,-1111 551.4704,-1075 629.0101,-1075 629.0101,-1111"/>
<text text-anchor="middle" x="590.2402" y="-1094.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="590.2402" y="-1086.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7.42s(96.49%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (7.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="719.2836,-1025 461.1969,-1025 461.1969,-945 719.2836,-945 719.2836,-1025"/>
<text text-anchor="middle" x="590.2402" y="-1001.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="590.2402" y="-977.8" font-family="Times,serif" font-size="24.00" fill="#000000">0.87s(11.31%)</text>
<text text-anchor="middle" x="590.2402" y="-953.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 7.25s(94.28%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge1" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge1"><a xlink:title="runtime.goexit ... main.(*machine).execute (7.25s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M590.2402,-1074.6793C590.2402,-1063.8316 590.2402,-1049.5069 590.2402,-1035.4979"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="594.6153,-1035.4072 590.2402,-1025.4072 585.8653,-1035.4073 594.6153,-1035.4072"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (7.25s)">
<text text-anchor="middle" x="606.9644" y="-1045.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.25s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.gcBgMarkWorker (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="838.6309,-1003 737.8496,-1003 737.8496,-967 838.6309,-967 838.6309,-1003"/>
<text text-anchor="middle" x="788.2402" y="-986.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="788.2402" y="-978.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.16s(2.08%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N38 -->
<g id="edge38" class="edge">
<title>N1&#45;&gt;N38</title>
<g id="a_edge38"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.16s)">
<path fill="none" stroke="#000000" d="M629.0125,-1075.5479C657.0631,-1062.526 695.6131,-1043.8077 728.2402,-1025 736.8537,-1020.0348 745.897,-1014.3009 754.2747,-1008.753"/>
<polygon fill="#000000" stroke="#000000" points="756.3704,-1011.5616 762.7181,-1003.0789 752.4659,-1005.7516 756.3704,-1011.5616"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.16s)">
<text text-anchor="middle" x="711.9644" y="-1045.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (7.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="702.2212,-889 478.2593,-889 478.2593,-842 702.2212,-842 702.2212,-889"/>
<text text-anchor="middle" x="590.2402" y="-874.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="590.2402" y="-861.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.06s(0.78%)</text>
<text text-anchor="middle" x="590.2402" y="-848.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 7.25s(94.28%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N3 -->
<g id="edge58" class="edge">
<title>N2&#45;&gt;N3</title>
<g id="a_edge58"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.08s)">
<path fill="none" stroke="#000000" d="M556.2408,-944.7999C551.371,-934.6744 549.0989,-923.6495 552.792,-913 554.6413,-907.6672 557.3649,-902.4798 560.5142,-897.6118"/>
<polygon fill="#000000" stroke="#000000" points="563.5445,-899.3929 566.5456,-889.232 557.8631,-895.3037 563.5445,-899.3929"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.08s)">
<text text-anchor="middle" x="569.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.mapaccess2_faststr (0.96s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1636.9913,-786 1377.4891,-786 1377.4891,-712 1636.9913,-712 1636.9913,-786"/>
<text text-anchor="middle" x="1507.2402" y="-764.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="1507.2402" y="-742.4" font-family="Times,serif" font-size="22.00" fill="#000000">0.58s(7.54%)</text>
<text text-anchor="middle" x="1507.2402" y="-720.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 0.96s(12.48%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N7 -->
<g id="edge7" class="edge">
<title>N2&#45;&gt;N7</title>
<g id="a_edge7"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.66s)">
<path fill="none" stroke="#000000" d="M719.5128,-946.8394C722.7796,-946.1851 726.0259,-945.5699 729.2402,-945 840.6744,-925.2431 871.2756,-943.4867 983.2402,-927 1047.2439,-917.5755 1072.7786,-932.8557 1125.2402,-895 1150.0665,-877.0856 1136.0995,-854.0984 1160.792,-836 1234.7451,-781.796 1273.6773,-807.454 1367.5453,-786.0396"/>
<polygon fill="#000000" stroke="#000000" points="1368.5127,-789.4067 1377.4146,-783.6615 1366.8729,-782.6015 1368.5127,-789.4067"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.66s)">
<text text-anchor="middle" x="1177.9644" y="-861.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.66s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="main.(*CodeQuotation).cloneCode (0.83s)">
<polygon fill="#f8f8f8" stroke="#000000" points="302.0187,-889 106.4618,-889 106.4618,-842 302.0187,-842 302.0187,-889"/>
<text text-anchor="middle" x="204.2402" y="-874.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="204.2402" y="-861.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.08s(1.04%)</text>
<text text-anchor="middle" x="204.2402" y="-848.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.83s(10.79%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N8 -->
<g id="edge4" class="edge">
<title>N2&#45;&gt;N8</title>
<g id="a_edge4"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.83s)">
<path fill="none" stroke="#000000" d="M460.8221,-974.4734C404.2753,-966.4064 338.3309,-952.1594 282.792,-927 265.7791,-919.2931 249.161,-907.1666 235.6237,-895.7113"/>
<polygon fill="#000000" stroke="#000000" points="237.8649,-893.0218 228.0295,-889.0827 233.2617,-898.2954 237.8649,-893.0218"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.83s)">
<text text-anchor="middle" x="299.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.83s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="main.(*machine).executeMathWord (0.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1116.709,-887.5 927.7715,-887.5 927.7715,-843.5 1116.709,-843.5 1116.709,-887.5"/>
<text text-anchor="middle" x="1022.2402" y="-873.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="1022.2402" y="-861.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.52%)</text>
<text text-anchor="middle" x="1022.2402" y="-849.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.66s(8.58%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N9 -->
<g id="edge6" class="edge">
<title>N2&#45;&gt;N9</title>
<g id="a_edge6"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.66s)">
<path fill="none" stroke="#000000" d="M719.5338,-946.9533C722.7943,-946.265 726.0337,-945.612 729.2402,-945 810.3859,-929.5122 835.5002,-951.9902 914.2402,-927 938.6045,-919.2674 963.5474,-905.5211 983.3157,-892.9829"/>
<polygon fill="#000000" stroke="#000000" points="985.2507,-895.8997 991.7332,-887.5195 981.4396,-890.0281 985.2507,-895.8997"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.66s)">
<text text-anchor="middle" x="962.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.66s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.convT2I (0.62s)">
<polygon fill="#f8f8f8" stroke="#000000" points="913.9652,-456 810.5153,-456 810.5153,-409 913.9652,-409 913.9652,-456"/>
<text text-anchor="middle" x="862.2402" y="-441.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="862.2402" y="-428.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.91%)</text>
<text text-anchor="middle" x="862.2402" y="-415.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.62s(8.06%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N10 -->
<g id="edge10" class="edge">
<title>N2&#45;&gt;N10</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.50s)">
<path fill="none" stroke="#000000" d="M719.5512,-947.4411C770.8837,-930.8137 822.5972,-911.3608 843.2402,-895 855.4623,-885.3133 862.2402,-881.0952 862.2402,-865.5 862.2402,-865.5 862.2402,-865.5 862.2402,-532.5 862.2402,-510.5273 862.2402,-485.839 862.2402,-466.4905"/>
<polygon fill="#000000" stroke="#000000" points="865.7403,-466.3419 862.2402,-456.342 858.7403,-466.342 865.7403,-466.3419"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.50s)">
<text text-anchor="middle" x="878.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.tryParseInt (0.58s)">
<polygon fill="#f8f8f8" stroke="#000000" points="460.5243,-889 357.9561,-889 357.9561,-842 460.5243,-842 460.5243,-889"/>
<text text-anchor="middle" x="409.2402" y="-874.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="409.2402" y="-861.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.91%)</text>
<text text-anchor="middle" x="409.2402" y="-848.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.58s(7.54%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N11 -->
<g id="edge8" class="edge">
<title>N2&#45;&gt;N11</title>
<g id="a_edge8"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.58s)">
<path fill="none" stroke="#000000" d="M529.4663,-944.8758C504.6053,-928.462 476.3775,-909.8254 453.5239,-894.737"/>
<polygon fill="#000000" stroke="#000000" points="455.3201,-891.7289 445.0465,-889.14 451.4633,-897.5706 455.3201,-891.7289"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.58s)">
<text text-anchor="middle" x="516.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.tryParseFloat (0.56s)">
<polygon fill="#f8f8f8" stroke="#000000" points="834.3075,-889 720.173,-889 720.173,-842 834.3075,-842 834.3075,-889"/>
<text text-anchor="middle" x="777.2402" y="-874.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="777.2402" y="-861.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.06s(0.78%)</text>
<text text-anchor="middle" x="777.2402" y="-848.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.56s(7.28%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N12 -->
<g id="edge9" class="edge">
<title>N2&#45;&gt;N12</title>
<g id="a_edge9"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.56s)">
<path fill="none" stroke="#000000" d="M653.0287,-944.8758C678.827,-928.3897 708.1345,-909.6612 731.8003,-894.5378"/>
<polygon fill="#000000" stroke="#000000" points="733.7053,-897.4741 740.2471,-889.14 729.936,-891.5756 733.7053,-897.4741"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.56s)">
<text text-anchor="middle" x="717.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.56s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="main.(*machine).hasPrefixWord (0.47s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1400.851,-890.5 1203.6295,-890.5 1203.6295,-840.5 1400.851,-840.5 1400.851,-890.5"/>
<text text-anchor="middle" x="1302.2402" y="-875.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="1302.2402" y="-861.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.11s(1.43%)</text>
<text text-anchor="middle" x="1302.2402" y="-847.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.47s(6.11%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N13 -->
<g id="edge11" class="edge">
<title>N2&#45;&gt;N13</title>
<g id="a_edge11"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.47s)">
<path fill="none" stroke="#000000" d="M719.491,-946.7107C722.7642,-946.0947 726.0178,-945.5223 729.2402,-945 921.1231,-913.8996 977.1027,-971.8696 1166.2402,-927 1194.8573,-920.2111 1224.8322,-907.3531 1249.3358,-895.1422"/>
<polygon fill="#000000" stroke="#000000" points="1251.1192,-898.1619 1258.4449,-890.5079 1247.945,-891.9229 1251.1192,-898.1619"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.47s)">
<text text-anchor="middle" x="1225.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.47s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="runtime.deferreturn (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2790.3706,-895 2642.1099,-895 2642.1099,-836 2790.3706,-836 2790.3706,-895"/>
<text text-anchor="middle" x="2716.2402" y="-877.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="2716.2402" y="-860.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.25s(3.25%)</text>
<text text-anchor="middle" x="2716.2402" y="-843.4" font-family="Times,serif" font-size="17.00" fill="#000000">of 0.42s(5.46%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge13" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.42s)">
<path fill="none" stroke="#000000" d="M719.4702,-946.5761C722.7497,-946.0001 726.0101,-945.4725 729.2402,-945 921.6475,-916.8562 2285.9233,-948.0051 2479.2402,-927 2545.2026,-919.8328 2563.6882,-914.1887 2631.7973,-895.0278"/>
<polygon fill="#000000" stroke="#000000" points="2633.0664,-898.3069 2641.7472,-892.2329 2631.1733,-891.5677 2633.0664,-898.3069"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.42s)">
<text text-anchor="middle" x="2580.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.deferproc (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2623.4135,-890.5 2507.0669,-890.5 2507.0669,-840.5 2623.4135,-840.5 2623.4135,-890.5"/>
<text text-anchor="middle" x="2565.2402" y="-875.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="2565.2402" y="-861.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.09s(1.17%)</text>
<text text-anchor="middle" x="2565.2402" y="-847.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.35s(4.55%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N20 -->
<g id="edge19" class="edge">
<title>N2&#45;&gt;N20</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.35s)">
<path fill="none" stroke="#000000" d="M719.4706,-946.579C722.75,-946.0022 726.0103,-945.4736 729.2402,-945 909.7656,-918.5318 2190.2984,-950.4527 2371.2402,-927 2428.966,-919.5179 2443.1874,-913.9058 2498.2402,-895 2499.108,-894.702 2499.98,-894.3974 2500.8555,-894.0867"/>
<polygon fill="#000000" stroke="#000000" points="2502.1772,-897.3293 2510.3232,-890.5548 2499.7305,-890.7708 2502.1772,-897.3293"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.35s)">
<text text-anchor="middle" x="2458.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.memeqbody (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1064.0109,-658.5 890.4696,-658.5 890.4696,-612.5 1064.0109,-612.5 1064.0109,-658.5"/>
<text text-anchor="middle" x="977.2402" y="-639.3" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="977.2402" y="-620.3" font-family="Times,serif" font-size="19.00" fill="#000000">0.35s(4.55%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N21 -->
<g id="edge33" class="edge">
<title>N2&#45;&gt;N21</title>
<g id="a_edge33"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.20s)">
<path fill="none" stroke="#000000" d="M719.555,-947.0609C722.8092,-946.3406 726.0415,-945.6518 729.2402,-945 761.4882,-938.4287 851.0068,-948.1278 876.2402,-927 920.2721,-890.1324 929.603,-732.7786 952.2402,-680 954.0173,-675.8568 956.0754,-671.6029 958.2326,-667.4459"/>
<polygon fill="#000000" stroke="#000000" points="961.3499,-669.0396 963.043,-658.5809 955.1973,-665.701 961.3499,-669.0396"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.20s)">
<text text-anchor="middle" x="940.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2177.5373,-890.5 1934.9432,-890.5 1934.9432,-840.5 2177.5373,-840.5 2177.5373,-890.5"/>
<text text-anchor="middle" x="2056.2402" y="-875.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2056.2402" y="-861.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.10s(1.30%)</text>
<text text-anchor="middle" x="2056.2402" y="-847.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.27s(3.51%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N27 -->
<g id="edge24" class="edge">
<title>N2&#45;&gt;N27</title>
<g id="a_edge24"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.27s)">
<path fill="none" stroke="#000000" d="M719.4748,-946.6074C722.7529,-946.0221 726.0119,-945.4841 729.2402,-945 955.8532,-911.0224 1532.331,-950.776 1760.2402,-927 1824.0141,-920.347 1894.3284,-906.0385 1950.4178,-892.8961"/>
<polygon fill="#000000" stroke="#000000" points="1951.437,-896.2517 1960.3625,-890.5434 1949.8253,-889.4397 1951.437,-896.2517"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.27s)">
<text text-anchor="middle" x="1867.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2389.045,-886 2195.4354,-886 2195.4354,-845 2389.045,-845 2389.045,-886"/>
<text text-anchor="middle" x="2292.2402" y="-873.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="2292.2402" y="-862.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.26%)</text>
<text text-anchor="middle" x="2292.2402" y="-851.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.26s(3.38%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N29 -->
<g id="edge25" class="edge">
<title>N2&#45;&gt;N29</title>
<g id="a_edge25"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.26s)">
<path fill="none" stroke="#000000" d="M719.4736,-946.599C722.752,-946.0162 726.0114,-945.4809 729.2402,-945 856.6281,-926.0254 1759.6884,-934.8838 1888.2402,-927 2021.1963,-918.8461 2055.4115,-920.0528 2186.2402,-895 2195.5696,-893.2135 2205.274,-891.008 2214.8559,-888.6136"/>
<polygon fill="#000000" stroke="#000000" points="2215.9644,-891.9424 2224.7759,-886.0597 2214.2191,-885.1635 2215.9644,-891.9424"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.26s)">
<text text-anchor="middle" x="2090.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="main.(*CodeQuotation).nextWord (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1790.7876,-885.5 1559.6929,-885.5 1559.6929,-845.5 1790.7876,-845.5 1790.7876,-885.5"/>
<text text-anchor="middle" x="1675.2402" y="-868.7" font-family="Times,serif" font-size="16.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="1675.2402" y="-852.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.18s(2.34%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N36 -->
<g id="edge35" class="edge">
<title>N2&#45;&gt;N36</title>
<g id="a_edge35"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.18s)">
<path fill="none" stroke="#000000" d="M719.4816,-946.6518C722.7577,-946.0533 726.0144,-945.5005 729.2402,-945 1015.2622,-900.6243 1092.447,-957.8684 1380.2402,-927 1451.6644,-919.3391 1531.3356,-902.2041 1589.8602,-887.9617"/>
<polygon fill="#000000" stroke="#000000" points="1590.9224,-891.305 1599.7994,-885.5213 1589.2532,-884.5069 1590.9224,-891.305"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.18s)">
<text text-anchor="middle" x="1487.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.eqstring (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1917.3888,-883.5 1809.0917,-883.5 1809.0917,-847.5 1917.3888,-847.5 1917.3888,-883.5"/>
<text text-anchor="middle" x="1863.2402" y="-868.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="1863.2402" y="-854.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.09s(1.17%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N52 -->
<g id="edge56" class="edge">
<title>N2&#45;&gt;N52</title>
<g id="a_edge56"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.09s)">
<path fill="none" stroke="#000000" d="M719.4786,-946.632C722.7555,-946.0394 726.0132,-945.4932 729.2402,-945 900.4102,-918.8411 1335.4614,-938.4422 1508.2402,-927 1638.5096,-918.373 1674.5395,-930.2685 1800.2402,-895 1806.9591,-893.1148 1813.8545,-890.5778 1820.5044,-887.7792"/>
<polygon fill="#000000" stroke="#000000" points="1822.3133,-890.805 1830.0224,-883.5373 1819.4637,-884.4112 1822.3133,-890.805"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.09s)">
<text text-anchor="middle" x="1739.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="main.wordIsWhitespace (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1541.341,-886 1419.1395,-886 1419.1395,-845 1541.341,-845 1541.341,-886"/>
<text text-anchor="middle" x="1480.2402" y="-873.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="1480.2402" y="-862.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.39%)</text>
<text text-anchor="middle" x="1480.2402" y="-851.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.07s(0.91%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N54 -->
<g id="edge59" class="edge">
<title>N2&#45;&gt;N54</title>
<g id="a_edge59"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.07s)">
<path fill="none" stroke="#000000" d="M719.4865,-946.683C722.7611,-946.0752 726.0162,-945.512 729.2402,-945 956.3114,-908.9375 1017.8091,-953.097 1246.2402,-927 1320.0238,-918.5706 1339.2015,-916.6461 1410.2402,-895 1415.3652,-893.4384 1420.6263,-891.6295 1425.8515,-889.6912"/>
<polygon fill="#000000" stroke="#000000" points="1427.1133,-892.9559 1435.1805,-886.0878 1424.5911,-886.426 1427.1133,-892.9559"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.07s)">
<text text-anchor="middle" x="1359.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="main.NilWord.func1 (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2489.252,-883.5 2407.2285,-883.5 2407.2285,-847.5 2489.252,-847.5 2489.252,-883.5"/>
<text text-anchor="middle" x="2448.2402" y="-867.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="2448.2402" y="-859.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(0.78%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N57 -->
<g id="edge63" class="edge">
<title>N2&#45;&gt;N57</title>
<g id="a_edge63"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.06s)">
<path fill="none" stroke="#000000" d="M719.472,-946.588C722.7509,-946.0085 726.0108,-945.4769 729.2402,-945 881.1613,-922.5657 1957.967,-936.52 2111.2402,-927 2239.3394,-919.0436 2276.4922,-935.6214 2398.2402,-895 2403.2506,-893.3283 2408.305,-891.1047 2413.1754,-888.6254"/>
<polygon fill="#000000" stroke="#000000" points="2415.187,-891.513 2422.2546,-883.62 2411.8074,-885.3829 2415.187,-891.513"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.06s)">
<text text-anchor="middle" x="2350.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.ifaceeq (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="532.6992,-550.5 441.7812,-550.5 441.7812,-514.5 532.6992,-514.5 532.6992,-550.5"/>
<text text-anchor="middle" x="487.2402" y="-534.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="487.2402" y="-522.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.65%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N63 -->
<g id="edge79" class="edge">
<title>N2&#45;&gt;N63</title>
<g id="a_edge79"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.04s)">
<path fill="none" stroke="#000000" d="M461.0032,-962.5592C419.9174,-949.3303 377.7851,-928.3277 349.2402,-895 322.5881,-863.8821 300.1663,-743.1406 326.792,-712 360.254,-672.8639 400.4741,-725.4558 441.2402,-694 481.8894,-662.6344 488.3801,-597.9908 488.4726,-560.7009"/>
<polygon fill="#000000" stroke="#000000" points="491.97,-560.4694 488.3397,-550.5159 484.9706,-560.5608 491.97,-560.4694"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.04s)">
<text text-anchor="middle" x="343.9644" y="-744.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.growslice (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="88.722,-884.5 -.2415,-884.5 -.2415,-846.5 88.722,-846.5 88.722,-884.5"/>
<text text-anchor="middle" x="44.2402" y="-872.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="44.2402" y="-862.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="44.2402" y="-852.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N77 -->
<g id="edge78" class="edge">
<title>N2&#45;&gt;N77</title>
<g id="a_edge78"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.04s)">
<path fill="none" stroke="#000000" d="M460.9574,-967.7273C390.045,-957.4815 300.7426,-943.3174 221.792,-927 165.8208,-915.432 150.3238,-916.1832 97.2402,-895 93.0559,-893.3302 88.79,-891.3947 84.5866,-889.3289"/>
<polygon fill="#000000" stroke="#000000" points="86.0307,-886.1354 75.5404,-884.6508 82.8152,-892.3532 86.0307,-886.1354"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.04s)">
<text text-anchor="middle" x="238.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge2" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge2"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.17s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M590.2402,-889.3148C590.2402,-902.3322 590.2402,-918.9702 590.2402,-934.7096"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="585.8653,-934.8758 590.2402,-944.8758 594.6153,-934.8758 585.8653,-934.8758"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.17s)">
<text text-anchor="middle" x="606.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.17s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="runtime.newobject (1.75s)">
<polygon fill="#f8f8f8" stroke="#000000" points="426.8467,-357.5 313.6337,-357.5 313.6337,-310.5 426.8467,-310.5 426.8467,-357.5"/>
<text text-anchor="middle" x="370.2402" y="-343.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="370.2402" y="-330.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.91%)</text>
<text text-anchor="middle" x="370.2402" y="-317.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.75s(22.76%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N4 -->
<g id="edge97" class="edge">
<title>N3&#45;&gt;N4</title>
<g id="a_edge97"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.02s)">
<path fill="none" stroke="#000000" d="M580.4171,-841.8612C571.6678,-818.6422 560.2402,-781.9991 560.2402,-749 560.2402,-749 560.2402,-749 560.2402,-432.5 560.2402,-375.398 491.7649,-351.3571 437.0299,-341.2615"/>
<polygon fill="#000000" stroke="#000000" points="437.4378,-337.7803 426.9891,-339.5338 436.2508,-344.6789 437.4378,-337.7803"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.02s)">
<text text-anchor="middle" x="576.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.mallocgc (1.72s)">
<polygon fill="#f8f8f8" stroke="#000000" points="458.8247,-259 281.6558,-259 281.6558,-182 458.8247,-182 458.8247,-259"/>
<text text-anchor="middle" x="370.2402" y="-236.6" font-family="Times,serif" font-size="23.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="370.2402" y="-213.6" font-family="Times,serif" font-size="23.00" fill="#000000">0.67s(8.71%)</text>
<text text-anchor="middle" x="370.2402" y="-190.6" font-family="Times,serif" font-size="23.00" fill="#000000">of 1.72s(22.37%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N5 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;N5</title>
<g id="a_edge3"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.68s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M370.2402,-310.4827C370.2402,-298.5699 370.2402,-283.6403 370.2402,-269.3858"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="373.7403,-269.1784 370.2402,-259.1784 366.7403,-269.1784 373.7403,-269.1784"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.68s)">
<text text-anchor="middle" x="386.9644" y="-279.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.68s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.heapBitsSetType (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="474.5691,-132 265.9114,-132 265.9114,-86 474.5691,-86 474.5691,-132"/>
<text text-anchor="middle" x="370.2402" y="-112.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="370.2402" y="-93.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.39s(5.07%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N18 -->
<g id="edge16" class="edge">
<title>N5&#45;&gt;N18</title>
<g id="a_edge16"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.39s)">
<path fill="none" stroke="#000000" d="M370.2402,-181.8156C370.2402,-168.9726 370.2402,-154.7924 370.2402,-142.3841"/>
<polygon fill="#000000" stroke="#000000" points="373.7403,-142.0141 370.2402,-132.0141 366.7403,-142.0142 373.7403,-142.0141"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.39s)">
<text text-anchor="middle" x="386.9644" y="-152.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.memclr (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="598.0441,-127 492.4363,-127 492.4363,-91 598.0441,-91 598.0441,-127"/>
<text text-anchor="middle" x="545.2402" y="-111.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="545.2402" y="-97.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.10s(1.30%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N50 -->
<g id="edge108" class="edge">
<title>N5&#45;&gt;N50</title>
<g id="a_edge108"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.01s)">
<path fill="none" stroke="#000000" d="M430.9556,-181.8156C456.7521,-165.3796 485.9861,-146.7534 508.4291,-132.4539"/>
<polygon fill="#000000" stroke="#000000" points="510.4308,-135.3287 516.9837,-127.0034 506.6693,-129.4251 510.4308,-135.3287"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.01s)">
<text text-anchor="middle" x="495.9644" y="-152.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.profilealloc (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="696.0573,-127 616.4232,-127 616.4232,-91 696.0573,-91 696.0573,-127"/>
<text text-anchor="middle" x="656.2402" y="-110.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.profilealloc</text>
<text text-anchor="middle" x="656.2402" y="-102.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.65%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N67 -->
<g id="edge70" class="edge">
<title>N5&#45;&gt;N67</title>
<g id="a_edge70"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.profilealloc (0.05s)">
<path fill="none" stroke="#000000" d="M458.9812,-189.3056C503.7751,-173.0696 558.7583,-152.3905 607.2402,-132 607.9386,-131.7063 608.6417,-131.4082 609.3483,-131.1064"/>
<polygon fill="#000000" stroke="#000000" points="610.9104,-134.2431 618.6591,-127.0177 608.0958,-127.8339 610.9104,-134.2431"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.profilealloc (0.05s)">
<text text-anchor="middle" x="579.9644" y="-152.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.systemstack (1.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2937.6333,-775.5 2798.8471,-775.5 2798.8471,-722.5 2937.6333,-722.5 2937.6333,-775.5"/>
<text text-anchor="middle" x="2868.2402" y="-759.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2868.2402" y="-744.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.16s(2.08%)</text>
<text text-anchor="middle" x="2868.2402" y="-729.5" font-family="Times,serif" font-size="15.00" fill="#000000">of 1.24s(16.12%)</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="runtime.mach_semaphore_signal (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2638.6621,-659.5 2357.8183,-659.5 2357.8183,-611.5 2638.6621,-611.5 2638.6621,-659.5"/>
<text text-anchor="middle" x="2498.2402" y="-639.5" font-family="Times,serif" font-size="20.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2498.2402" y="-619.5" font-family="Times,serif" font-size="20.00" fill="#000000">0.42s(5.46%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N15 -->
<g id="edge17" class="edge">
<title>N6&#45;&gt;N15</title>
<g id="a_edge17"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.36s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2798.6461,-727.6515C2738.5135,-709.2055 2651.2964,-682.451 2586.3138,-662.5171"/>
<polygon fill="#000000" stroke="#000000" points="2587.0754,-659.0899 2576.4886,-659.5032 2585.0225,-665.7821 2587.0754,-659.0899"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.36s)">
<text text-anchor="middle" x="2699.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.deferproc.func1 (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2934.3541,-657.5 2802.1264,-657.5 2802.1264,-613.5 2934.3541,-613.5 2934.3541,-657.5"/>
<text text-anchor="middle" x="2868.2402" y="-643.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2868.2402" y="-631.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.52%)</text>
<text text-anchor="middle" x="2868.2402" y="-619.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.21s(2.73%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N32 -->
<g id="edge32" class="edge">
<title>N6&#45;&gt;N32</title>
<g id="a_edge32"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.21s)">
<path fill="none" stroke="#000000" d="M2868.2402,-722.3893C2868.2402,-706.1112 2868.2402,-685.1725 2868.2402,-667.9287"/>
<polygon fill="#000000" stroke="#000000" points="2871.7403,-667.7441 2868.2402,-657.7441 2864.7403,-667.7442 2871.7403,-667.7441"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.21s)">
<text text-anchor="middle" x="2884.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.(*mcache).refill (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3739.923,-654.5 3626.5575,-654.5 3626.5575,-616.5 3739.923,-616.5 3739.923,-654.5"/>
<text text-anchor="middle" x="3683.2402" y="-642.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="3683.2402" y="-632.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="3683.2402" y="-622.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.15s(1.95%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N39 -->
<g id="edge39" class="edge">
<title>N6&#45;&gt;N39</title>
<g id="a_edge39"><a xlink:title="runtime.systemstack ... runtime.(*mcache).refill (0.15s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2937.863,-747.454C3071.6549,-743.0568 3373.0538,-726.2225 3617.2402,-662 3621.5895,-660.8561 3626.0371,-659.5013 3630.4671,-658.0188"/>
<polygon fill="#000000" stroke="#000000" points="3631.8394,-661.2457 3640.092,-654.6014 3629.4972,-654.6491 3631.8394,-661.2457"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcache).refill (0.15s)">
<text text-anchor="middle" x="3553.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.deferreturn.func1 (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3081.8556,-656 2952.6249,-656 2952.6249,-615 3081.8556,-615 3081.8556,-656"/>
<text text-anchor="middle" x="3017.2402" y="-643.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="3017.2402" y="-632.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.26%)</text>
<text text-anchor="middle" x="3017.2402" y="-621.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(1.56%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N45 -->
<g id="edge47" class="edge">
<title>N6&#45;&gt;N45</title>
<g id="a_edge47"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.12s)">
<path fill="none" stroke="#000000" d="M2903.1741,-722.3893C2926.8727,-704.337 2958.0962,-680.5527 2981.8836,-662.4328"/>
<polygon fill="#000000" stroke="#000000" points="2984.1287,-665.1223 2989.9628,-656.2784 2979.887,-659.5539 2984.1287,-665.1223"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.12s)">
<text text-anchor="middle" x="2971.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.(*mheap).alloc.func1 (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3211.0375,-653.5 3099.443,-653.5 3099.443,-617.5 3211.0375,-617.5 3211.0375,-653.5"/>
<text text-anchor="middle" x="3155.2402" y="-637.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="3155.2402" y="-629.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(0.78%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N58 -->
<g id="edge66" class="edge">
<title>N6&#45;&gt;N58</title>
<g id="a_edge66"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.06s)">
<path fill="none" stroke="#000000" d="M2937.6952,-722.3264C2981.7712,-705.2948 3039.9585,-682.6178 3091.2402,-662 3094.9014,-660.528 3098.6755,-658.998 3102.4734,-657.4491"/>
<polygon fill="#000000" stroke="#000000" points="3103.9856,-660.6119 3111.9122,-653.582 3101.3317,-654.1345 3103.9856,-660.6119"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.06s)">
<text text-anchor="middle" x="3058.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.gcMarkTermination.func1 (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2783.7012,-653.5 2656.7793,-653.5 2656.7793,-617.5 2783.7012,-617.5 2783.7012,-653.5"/>
<text text-anchor="middle" x="2720.2402" y="-637.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkTermination.func1</text>
<text text-anchor="middle" x="2720.2402" y="-629.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N74 -->
<g id="edge90" class="edge">
<title>N6&#45;&gt;N74</title>
<g id="a_edge90"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcMarkTermination.func1 (0.04s)">
<path fill="none" stroke="#000000" d="M2833.5408,-722.3893C2808.9313,-703.5164 2776.1525,-678.3787 2752.1848,-659.998"/>
<polygon fill="#000000" stroke="#000000" points="2754.1676,-657.1079 2744.1025,-653.7998 2749.9078,-662.6626 2754.1676,-657.1079"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcMarkTermination.func1 (0.04s)">
<text text-anchor="middle" x="2810.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.mach_semaphore_timedwait (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3423.5178,-653.5 3228.9627,-653.5 3228.9627,-617.5 3423.5178,-617.5 3423.5178,-653.5"/>
<text text-anchor="middle" x="3326.2402" y="-637.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mach_semaphore_timedwait</text>
<text text-anchor="middle" x="3326.2402" y="-625.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N79 -->
<g id="edge91" class="edge">
<title>N6&#45;&gt;N79</title>
<g id="a_edge91"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.04s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2937.714,-731.887C3008.7244,-714.3819 3122.1894,-686.3734 3220.2402,-662 3228.0273,-660.0643 3236.1352,-658.0447 3244.2451,-656.0219"/>
<polygon fill="#000000" stroke="#000000" points="3245.2621,-659.3755 3254.1171,-653.5583 3243.5672,-652.5838 3245.2621,-659.3755"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.04s)">
<text text-anchor="middle" x="3158.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.mach_semaphore_wait (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3608.6895,-653.5 3441.791,-653.5 3441.791,-617.5 3608.6895,-617.5 3608.6895,-653.5"/>
<text text-anchor="middle" x="3525.2402" y="-637.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="3525.2402" y="-625.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N80 -->
<g id="edge92" class="edge">
<title>N6&#45;&gt;N80</title>
<g id="a_edge92"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.04s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2937.7769,-741.1044C3044.7594,-728.3217 3255.846,-700.5791 3432.2402,-662 3440.0524,-660.2914 3448.1771,-658.3012 3456.2276,-656.1933"/>
<polygon fill="#000000" stroke="#000000" points="3457.2336,-659.5472 3465.9847,-653.5748 3455.4192,-652.7865 3457.2336,-659.5472"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.04s)">
<text text-anchor="middle" x="3356.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N21 -->
<g id="edge51" class="edge">
<title>N7&#45;&gt;N21</title>
<g id="a_edge51"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.11s)">
<path fill="none" stroke="#000000" d="M1503.8144,-711.8694C1500.7692,-699.8377 1495.2275,-687.6382 1485.2402,-680 1448.8432,-652.1637 1118.5017,-669.1417 1073.2402,-662 1070.5317,-661.5726 1067.7902,-661.0965 1065.0304,-660.5793"/>
<polygon fill="#000000" stroke="#000000" points="1065.4795,-657.0992 1054.9832,-658.5407 1064.0875,-663.9594 1065.4795,-657.0992"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.11s)">
<text text-anchor="middle" x="1513.708" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.aeshashbody (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1985.2339,-656.5 1825.2466,-656.5 1825.2466,-614.5 1985.2339,-614.5 1985.2339,-656.5"/>
<text text-anchor="middle" x="1905.2402" y="-638.9" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="1905.2402" y="-621.9" font-family="Times,serif" font-size="17.00" fill="#000000">0.27s(3.51%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N28 -->
<g id="edge26" class="edge">
<title>N7&#45;&gt;N28</title>
<g id="a_edge26"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.26s)">
<path fill="none" stroke="#000000" d="M1637.1799,-712.1632C1691.5904,-696.7105 1755.4952,-678.5253 1813.2402,-662 1816.1816,-661.1583 1819.1756,-660.3006 1822.1994,-659.4336"/>
<polygon fill="#000000" stroke="#000000" points="1823.2836,-662.7638 1831.9302,-656.6411 1821.3527,-656.0353 1823.2836,-662.7638"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.26s)">
<text text-anchor="middle" x="1762.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N4 -->
<g id="edge5" class="edge">
<title>N8&#45;&gt;N4</title>
<g id="a_edge5"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.74s)">
<path fill="none" stroke="#000000" d="M215.3731,-841.9889C225.2889,-818.8647 238.2402,-782.2897 238.2402,-749 238.2402,-749 238.2402,-749 238.2402,-432.5 238.2402,-395.9088 271.2241,-371.2869 304.2161,-355.8113"/>
<polygon fill="#000000" stroke="#000000" points="305.7784,-358.9471 313.4943,-351.6865 302.9347,-352.5506 305.7784,-358.9471"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.74s)">
<text text-anchor="middle" x="254.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.74s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="main.(*machine).executeSubtract (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1161.0636,-769.5 997.4169,-769.5 997.4169,-728.5 1161.0636,-728.5 1161.0636,-769.5"/>
<text text-anchor="middle" x="1079.2402" y="-756.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="1079.2402" y="-745.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.39%)</text>
<text text-anchor="middle" x="1079.2402" y="-734.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.36s(4.68%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N19 -->
<g id="edge18" class="edge">
<title>N9&#45;&gt;N19</title>
<g id="a_edge18"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.36s)">
<path fill="none" stroke="#000000" d="M1024.6548,-843.37C1026.5688,-831.301 1029.937,-816.3488 1035.792,-804 1040.2102,-794.6815 1046.4649,-785.505 1052.8559,-777.3978"/>
<polygon fill="#000000" stroke="#000000" points="1055.5596,-779.6204 1059.2293,-769.6813 1050.1625,-775.1626 1055.5596,-779.6204"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.36s)">
<text text-anchor="middle" x="1052.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N21 -->
<g id="edge96" class="edge">
<title>N9&#45;&gt;N21</title>
<g id="a_edge96"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.02s)">
<path fill="none" stroke="#000000" d="M995.891,-843.3995C980.6997,-828.8647 963.0246,-808.4291 954.792,-786 940.4999,-747.0625 952.1828,-699.2759 963.3551,-668.1411"/>
<polygon fill="#000000" stroke="#000000" points="966.6805,-669.2417 966.931,-658.6498 960.13,-666.7737 966.6805,-669.2417"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.02s)">
<text text-anchor="middle" x="971.9644" y="-744.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="main.(*machine).executeMultiply (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1359.0178,-771 1179.4627,-771 1179.4627,-727 1359.0178,-727 1359.0178,-771"/>
<text text-anchor="middle" x="1269.2402" y="-757.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="1269.2402" y="-745.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.52%)</text>
<text text-anchor="middle" x="1269.2402" y="-733.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.23s(2.99%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N31 -->
<g id="edge29" class="edge">
<title>N9&#45;&gt;N31</title>
<g id="a_edge29"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.23s)">
<path fill="none" stroke="#000000" d="M1046.6618,-843.4782C1062.3088,-830.3807 1083.5944,-814.3533 1104.792,-804 1131.8996,-790.7602 1141.5381,-795.29 1170.2402,-786 1181.0418,-782.5039 1192.4053,-778.5363 1203.4281,-774.5294"/>
<polygon fill="#000000" stroke="#000000" points="1204.8263,-777.7445 1213.0045,-771.0089 1202.4109,-771.1744 1204.8263,-777.7445"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.23s)">
<text text-anchor="middle" x="1121.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N4 -->
<g id="edge12" class="edge">
<title>N10&#45;&gt;N4</title>
<g id="a_edge12"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.43s)">
<path fill="none" stroke="#000000" d="M833.7876,-408.7188C818.3304,-397.1428 798.3121,-384.2005 778.2402,-377 717.1317,-355.0781 536.1609,-342.5726 437.0243,-337.189"/>
<polygon fill="#000000" stroke="#000000" points="436.9879,-333.6822 426.8156,-336.6441 436.6148,-340.6722 436.9879,-333.6822"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.43s)">
<text text-anchor="middle" x="822.9644" y="-379.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.typedmemmove (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2104.9855,-359 1951.4949,-359 1951.4949,-309 2104.9855,-309 2104.9855,-359"/>
<text text-anchor="middle" x="2028.2402" y="-343.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="2028.2402" y="-329.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.11s(1.43%)</text>
<text text-anchor="middle" x="2028.2402" y="-315.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.28s(3.64%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N25 -->
<g id="edge45" class="edge">
<title>N10&#45;&gt;N25</title>
<g id="a_edge45"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.12s)">
<path fill="none" stroke="#000000" d="M914.2255,-428.1084C1097.0286,-412.6658 1711.5723,-360.7511 1940.9392,-341.3749"/>
<polygon fill="#000000" stroke="#000000" points="1941.5691,-344.8343 1951.2389,-340.5048 1940.9798,-337.8591 1941.5691,-344.8343"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.12s)">
<text text-anchor="middle" x="1531.9644" y="-379.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="strconv.Atoi (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="449.4527,-768 369.0278,-768 369.0278,-730 449.4527,-730 449.4527,-768"/>
<text text-anchor="middle" x="409.2402" y="-756" font-family="Times,serif" font-size="10.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="409.2402" y="-746" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="409.2402" y="-736" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.41s(5.33%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N16 -->
<g id="edge14" class="edge">
<title>N11&#45;&gt;N16</title>
<g id="a_edge14"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.41s)">
<path fill="none" stroke="#000000" d="M409.2402,-841.9245C409.2402,-823.6362 409.2402,-798.1784 409.2402,-778.5327"/>
<polygon fill="#000000" stroke="#000000" points="412.7403,-778.2988 409.2402,-768.2989 405.7403,-778.2989 412.7403,-778.2988"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.41s)">
<text text-anchor="middle" x="425.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="strings.ContainsRune (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="710.7422,-771 591.7383,-771 591.7383,-727 710.7422,-727 710.7422,-771"/>
<text text-anchor="middle" x="651.2402" y="-757.4" font-family="Times,serif" font-size="12.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="651.2402" y="-745.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.52%)</text>
<text text-anchor="middle" x="651.2402" y="-733.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.28s(3.64%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N26 -->
<g id="edge54" class="edge">
<title>N11&#45;&gt;N26</title>
<g id="a_edge54"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.10s)">
<path fill="none" stroke="#000000" d="M457.0321,-841.9433C461.1585,-839.9273 465.2712,-837.9243 469.2402,-836 511.4755,-815.5233 559.371,-792.6417 595.4242,-775.4856"/>
<polygon fill="#000000" stroke="#000000" points="597.2662,-778.4853 604.7934,-771.0292 594.2595,-772.1639 597.2662,-778.4853"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.10s)">
<text text-anchor="middle" x="550.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="strconv.ParseFloat (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="825.5968,-769.5 728.8837,-769.5 728.8837,-728.5 825.5968,-728.5 825.5968,-769.5"/>
<text text-anchor="middle" x="777.2402" y="-756.7" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.ParseFloat</text>
<text text-anchor="middle" x="777.2402" y="-745.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.26%)</text>
<text text-anchor="middle" x="777.2402" y="-734.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.32s(4.16%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N23 -->
<g id="edge21" class="edge">
<title>N12&#45;&gt;N23</title>
<g id="a_edge21"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (0.32s)">
<path fill="none" stroke="#000000" d="M777.2402,-841.9245C777.2402,-824.085 777.2402,-799.4235 777.2402,-779.9893"/>
<polygon fill="#000000" stroke="#000000" points="780.7403,-779.8068 777.2402,-769.8069 773.7403,-779.8069 780.7403,-779.8068"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (0.32s)">
<text text-anchor="middle" x="793.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N26 -->
<g id="edge36" class="edge">
<title>N12&#45;&gt;N26</title>
<g id="a_edge36"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.18s)">
<path fill="none" stroke="#000000" d="M751.7423,-841.9245C731.8885,-823.5677 704.2223,-797.9874 682.9425,-778.312"/>
<polygon fill="#000000" stroke="#000000" points="685.1364,-775.5737 675.4178,-771.3547 680.3842,-780.7134 685.1364,-775.5737"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.18s)">
<text text-anchor="middle" x="742.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N7 -->
<g id="edge30" class="edge">
<title>N13&#45;&gt;N7</title>
<g id="a_edge30"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.21s)">
<path fill="none" stroke="#000000" d="M1346.4698,-840.3647C1371.7504,-825.9979 1404.1125,-807.6067 1433.1661,-791.0958"/>
<polygon fill="#000000" stroke="#000000" points="1435.1001,-794.0224 1442.065,-786.0386 1431.6415,-787.9365 1435.1001,-794.0224"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.21s)">
<text text-anchor="middle" x="1421.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="main.isPrefixChar (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1773.2344,-767 1655.246,-767 1655.246,-731 1773.2344,-731 1773.2344,-767"/>
<text text-anchor="middle" x="1714.2402" y="-751.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.isPrefixChar</text>
<text text-anchor="middle" x="1714.2402" y="-737.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.10s(1.30%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N48 -->
<g id="edge53" class="edge">
<title>N13&#45;&gt;N48</title>
<g id="a_edge53"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.10s)">
<path fill="none" stroke="#000000" d="M1392.3019,-840.4811C1398.3628,-838.9267 1404.3842,-837.4189 1410.2402,-836 1514.4424,-810.7527 1545.6544,-823.1215 1646.2402,-786 1656.3686,-782.2621 1666.836,-777.227 1676.4324,-772.0768"/>
<polygon fill="#000000" stroke="#000000" points="1678.2803,-775.0542 1685.3267,-767.1423 1674.8843,-768.9331 1678.2803,-775.0542"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.10s)">
<text text-anchor="middle" x="1605.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.stringiter2 (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1903.8594,-767 1790.621,-767 1790.621,-731 1903.8594,-731 1903.8594,-767"/>
<text text-anchor="middle" x="1847.2402" y="-751.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.stringiter2</text>
<text text-anchor="middle" x="1847.2402" y="-738.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.91%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N56 -->
<g id="edge68" class="edge">
<title>N13&#45;&gt;N56</title>
<g id="a_edge68"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.05s)">
<path fill="none" stroke="#000000" d="M1388.2804,-840.4853C1395.6703,-838.798 1403.0626,-837.2683 1410.2402,-836 1574.5155,-806.9729 1626.1083,-844.7515 1782.2402,-786 1791.993,-782.3301 1802.0186,-777.3252 1811.1877,-772.1828"/>
<polygon fill="#000000" stroke="#000000" points="1813.1457,-775.093 1820.0293,-767.039 1809.6256,-769.0424 1813.1457,-775.093"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.05s)">
<text text-anchor="middle" x="1738.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N6 -->
<g id="edge46" class="edge">
<title>N14&#45;&gt;N6</title>
<g id="a_edge46"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.12s)">
<path fill="none" stroke="#000000" d="M2754.9895,-835.8007C2776.4376,-819.3619 2803.1442,-798.8927 2825.2354,-781.961"/>
<polygon fill="#000000" stroke="#000000" points="2827.6477,-784.5219 2833.4555,-775.6607 2823.3894,-778.966 2827.6477,-784.5219"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.12s)">
<text text-anchor="middle" x="2808.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.memmove (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2351.0453,-240.5 2213.4352,-240.5 2213.4352,-200.5 2351.0453,-200.5 2351.0453,-240.5"/>
<text text-anchor="middle" x="2282.2402" y="-223.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="2282.2402" y="-207.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.21s(2.73%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N33 -->
<g id="edge85" class="edge">
<title>N14&#45;&gt;N33</title>
<g id="a_edge85"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M2694.4394,-835.8759C2664.4544,-795.9313 2611.1491,-727.9513 2584.2402,-712 2492.3842,-657.5487 2425.8447,-736.3924 2349.2402,-662 2323.6436,-637.1425 2330.2402,-619.6803 2330.2402,-584 2330.2402,-584 2330.2402,-584 2330.2402,-334 2330.2402,-303.3498 2315.2081,-271.4595 2301.9682,-249.3158"/>
<polygon fill="#000000" stroke="#000000" points="2304.8936,-247.3921 2296.6418,-240.7468 2298.9485,-251.0875 2304.8936,-247.3921"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="2346.9644" y="-528.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="strconv.ParseInt (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="445.8952,-657.5 352.5853,-657.5 352.5853,-613.5 445.8952,-613.5 445.8952,-657.5"/>
<text text-anchor="middle" x="399.2402" y="-643.9" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="399.2402" y="-631.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.52%)</text>
<text text-anchor="middle" x="399.2402" y="-619.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.40s(5.20%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N17 -->
<g id="edge15" class="edge">
<title>N16&#45;&gt;N17</title>
<g id="a_edge15"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.40s)">
<path fill="none" stroke="#000000" d="M407.5439,-729.7463C406.0513,-712.8052 403.8477,-687.7948 402.0856,-667.7951"/>
<polygon fill="#000000" stroke="#000000" points="405.5493,-667.2275 401.185,-657.5733 398.5763,-667.8419 405.5493,-667.2275"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.40s)">
<text text-anchor="middle" x="420.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="strconv.ParseUint (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="424.186,-556 316.2944,-556 316.2944,-509 424.186,-509 424.186,-556"/>
<text text-anchor="middle" x="370.2402" y="-541.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="370.2402" y="-528.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.06s(0.78%)</text>
<text text-anchor="middle" x="370.2402" y="-515.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.35s(4.55%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N22 -->
<g id="edge20" class="edge">
<title>N17&#45;&gt;N22</title>
<g id="a_edge20"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.35s)">
<path fill="none" stroke="#000000" d="M381.5379,-613.1524C377.1731,-606.4095 373.0926,-598.7342 370.792,-591 368.4505,-583.1282 367.5331,-574.3929 367.3738,-566.1248"/>
<polygon fill="#000000" stroke="#000000" points="370.8752,-566.054 367.5273,-556.002 363.876,-565.9477 370.8752,-566.054"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.35s)">
<text text-anchor="middle" x="387.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N63 -->
<g id="edge110" class="edge">
<title>N17&#45;&gt;N63</title>
<g id="a_edge110"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.01s)">
<path fill="none" stroke="#000000" d="M406.6097,-613.4555C411.2101,-601.8135 417.9506,-587.7523 426.792,-577 432.931,-569.5342 440.587,-562.659 448.3657,-556.6589"/>
<polygon fill="#000000" stroke="#000000" points="450.7787,-559.2305 456.7885,-550.505 446.6492,-553.5784 450.7787,-559.2305"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.01s)">
<text text-anchor="middle" x="443.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.assertI2I (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1397.5758,-656 1306.9046,-656 1306.9046,-615 1397.5758,-615 1397.5758,-656"/>
<text text-anchor="middle" x="1352.2402" y="-643.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="1352.2402" y="-632.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.39%)</text>
<text text-anchor="middle" x="1352.2402" y="-621.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.15s(1.95%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N40 -->
<g id="edge43" class="edge">
<title>N19&#45;&gt;N40</title>
<g id="a_edge43"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.12s)">
<path fill="none" stroke="#000000" d="M1105.3981,-728.4587C1130.0815,-709.2478 1164.382,-683.0596 1171.792,-680 1223.8545,-658.5037 1243.36,-678.4168 1297.2402,-662 1299.3821,-661.3474 1301.545,-660.622 1303.7108,-659.8404"/>
<polygon fill="#000000" stroke="#000000" points="1305.1553,-663.0331 1313.17,-656.1038 1302.5835,-656.5226 1305.1553,-663.0331"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.12s)">
<text text-anchor="middle" x="1188.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="main.(*Integer).Add (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1288.4328,-654.5 1190.0477,-654.5 1190.0477,-616.5 1288.4328,-616.5 1288.4328,-654.5"/>
<text text-anchor="middle" x="1239.2402" y="-642.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="1239.2402" y="-632.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="1239.2402" y="-622.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(1.43%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N46 -->
<g id="edge49" class="edge">
<title>N19&#45;&gt;N46</title>
<g id="a_edge49"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.11s)">
<path fill="none" stroke="#000000" d="M1085.4142,-728.2744C1091.0557,-712.8095 1100.9007,-692.3079 1116.3047,-680 1139.7019,-661.3055 1153.1022,-672.255 1181.2402,-662 1184.2566,-660.9007 1187.334,-659.7103 1190.4196,-658.4637"/>
<polygon fill="#000000" stroke="#000000" points="1191.7832,-661.6873 1199.6493,-654.5898 1189.074,-655.2328 1191.7832,-661.6873"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.11s)">
<text text-anchor="middle" x="1133.708" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.convI2I (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1496.4527,-654.5 1416.0278,-654.5 1416.0278,-616.5 1496.4527,-616.5 1496.4527,-654.5"/>
<text text-anchor="middle" x="1456.2402" y="-642.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="1456.2402" y="-632.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="1456.2402" y="-622.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.08s(1.04%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N53 -->
<g id="edge67" class="edge">
<title>N19&#45;&gt;N53</title>
<g id="a_edge67"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.convI2I (0.05s)">
<path fill="none" stroke="#000000" d="M1126.2995,-728.3706C1171.5216,-708.6094 1233.8682,-681.5556 1239.792,-680 1311.76,-661.1004 1335.1014,-683.8143 1406.2402,-662 1409.1975,-661.0932 1412.1836,-660.0086 1415.1467,-658.8037"/>
<polygon fill="#000000" stroke="#000000" points="1416.7815,-661.9063 1424.4692,-654.6159 1413.9131,-655.521 1416.7815,-661.9063"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.convI2I (0.05s)">
<text text-anchor="middle" x="1256.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="main.(*Integer).Negate (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1172.3699,-653.5 1082.1106,-653.5 1082.1106,-617.5 1172.3699,-617.5 1172.3699,-653.5"/>
<text text-anchor="middle" x="1127.2402" y="-637.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="1127.2402" y="-629.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N69 -->
<g id="edge80" class="edge">
<title>N19&#45;&gt;N69</title>
<g id="a_edge80"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.04s)">
<path fill="none" stroke="#000000" d="M1065.6284,-728.4819C1058.0307,-714.2663 1051.5924,-695.2332 1059.792,-680 1064.1379,-671.9262 1070.6611,-665.0745 1077.9667,-659.347"/>
<polygon fill="#000000" stroke="#000000" points="1079.9925,-662.2011 1086.1351,-653.5686 1075.9499,-656.4864 1079.9925,-662.2011"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.04s)">
<text text-anchor="middle" x="1076.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="main.(*machine).popValue (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1804.1953,-653.5 1658.2851,-653.5 1658.2851,-617.5 1804.1953,-617.5 1804.1953,-653.5"/>
<text text-anchor="middle" x="1731.2402" y="-637.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="1731.2402" y="-625.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N71 -->
<g id="edge102" class="edge">
<title>N19&#45;&gt;N71</title>
<g id="a_edge102"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M1122.3382,-728.4114C1137.2018,-722.143 1154.1609,-715.889 1170.2402,-712 1258.278,-690.7067 1288.7104,-726.5386 1373.2402,-694 1382.8802,-690.2892 1382.1245,-683.6387 1391.792,-680 1493.7471,-641.6255 1528.9242,-680.7274 1636.2402,-662 1645.221,-660.4328 1654.5754,-658.3712 1663.7595,-656.0887"/>
<polygon fill="#000000" stroke="#000000" points="1664.8259,-659.4282 1673.6327,-653.5382 1663.0751,-652.6507 1664.8259,-659.4282"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="1408.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N6 -->
<g id="edge31" class="edge">
<title>N20&#45;&gt;N6</title>
<g id="a_edge31"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.21s)">
<path fill="none" stroke="#000000" d="M2622.2817,-840.4847C2625.9812,-838.9457 2629.6578,-837.4389 2633.2402,-836 2684.78,-815.2981 2743.3598,-793.6069 2789.1394,-777.0619"/>
<polygon fill="#000000" stroke="#000000" points="2790.4872,-780.2966 2798.7069,-773.6117 2788.1125,-773.7117 2790.4872,-780.2966"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.21s)">
<text text-anchor="middle" x="2727.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.getcallerpc (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2575.6934,-767 2466.7871,-767 2466.7871,-731 2575.6934,-731 2575.6934,-767"/>
<text text-anchor="middle" x="2521.2402" y="-751.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.getcallerpc</text>
<text text-anchor="middle" x="2521.2402" y="-739.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N75 -->
<g id="edge83" class="edge">
<title>N20&#45;&gt;N75</title>
<g id="a_edge83"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallerpc (0.04s)">
<path fill="none" stroke="#000000" d="M2555.6929,-840.2212C2548.5902,-821.4154 2538.9056,-795.773 2531.6129,-776.4639"/>
<polygon fill="#000000" stroke="#000000" points="2534.8512,-775.1319 2528.0436,-767.0135 2528.3026,-777.6052 2534.8512,-775.1319"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallerpc (0.04s)">
<text text-anchor="middle" x="2563.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N4 -->
<g id="edge23" class="edge">
<title>N22&#45;&gt;N4</title>
<g id="a_edge23"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.29s)">
<path fill="none" stroke="#000000" d="M370.2402,-508.9499C370.2402,-473.8807 370.2402,-407.7668 370.2402,-367.6195"/>
<polygon fill="#000000" stroke="#000000" points="373.7403,-367.5194 370.2402,-357.5194 366.7403,-367.5194 373.7403,-367.5194"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.29s)">
<text text-anchor="middle" x="386.9644" y="-428.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="strconv.atof64 (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="814.4527,-654.5 734.0278,-654.5 734.0278,-616.5 814.4527,-616.5 814.4527,-654.5"/>
<text text-anchor="middle" x="774.2402" y="-642.5" font-family="Times,serif" font-size="10.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="774.2402" y="-632.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="774.2402" y="-622.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.30s(3.90%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N24 -->
<g id="edge22" class="edge">
<title>N23&#45;&gt;N24</title>
<g id="a_edge22"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (0.30s)">
<path fill="none" stroke="#000000" d="M776.697,-728.446C776.2275,-710.6848 775.5435,-684.8053 775.0163,-664.8619"/>
<polygon fill="#000000" stroke="#000000" points="778.5126,-664.6698 774.7495,-654.7658 771.515,-664.8548 778.5126,-664.6698"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (0.30s)">
<text text-anchor="middle" x="792.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N4 -->
<g id="edge27" class="edge">
<title>N24&#45;&gt;N4</title>
<g id="a_edge27"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.25s)">
<path fill="none" stroke="#000000" d="M771.7218,-616.4223C767.4612,-589.75 756.8695,-540.6946 733.2402,-506 682.0156,-430.7874 656.39,-416.1447 574.2402,-377 531.0742,-356.4312 478.1337,-345.6403 437.0021,-340.0131"/>
<polygon fill="#000000" stroke="#000000" points="437.4485,-336.5417 427.0809,-338.7239 436.5465,-343.4834 437.4485,-336.5417"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.25s)">
<text text-anchor="middle" x="736.9644" y="-476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N33 -->
<g id="edge48" class="edge">
<title>N25&#45;&gt;N33</title>
<g id="a_edge48"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.12s)">
<path fill="none" stroke="#000000" d="M2084.2961,-308.9514C2127.08,-289.8334 2185.6799,-263.648 2228.006,-244.7346"/>
<polygon fill="#000000" stroke="#000000" points="2229.6142,-247.8496 2237.3162,-240.5743 2226.7584,-241.4586 2229.6142,-247.8496"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.12s)">
<text text-anchor="middle" x="2171.9644" y="-279.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.heapBitsBulkBarrier (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2105.8754,-238.5 1950.605,-238.5 1950.605,-202.5 2105.8754,-202.5 2105.8754,-238.5"/>
<text text-anchor="middle" x="2028.2402" y="-222.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.heapBitsBulkBarrier</text>
<text text-anchor="middle" x="2028.2402" y="-210.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.65%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N62 -->
<g id="edge76" class="edge">
<title>N25&#45;&gt;N62</title>
<g id="a_edge76"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.05s)">
<path fill="none" stroke="#000000" d="M2028.2402,-308.8107C2028.2402,-291.013 2028.2402,-267.143 2028.2402,-248.7068"/>
<polygon fill="#000000" stroke="#000000" points="2031.7403,-248.5667 2028.2402,-238.5667 2024.7403,-248.5668 2031.7403,-248.5667"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.05s)">
<text text-anchor="middle" x="2044.9644" y="-279.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="strings.IndexRune (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="713.8113,-662 588.6692,-662 588.6692,-609 713.8113,-609 713.8113,-662"/>
<text text-anchor="middle" x="651.2402" y="-646" font-family="Times,serif" font-size="15.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="651.2402" y="-631" font-family="Times,serif" font-size="15.00" fill="#000000">0.15s(1.95%)</text>
<text text-anchor="middle" x="651.2402" y="-616" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.24s(3.12%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N30 -->
<g id="edge28" class="edge">
<title>N26&#45;&gt;N30</title>
<g id="a_edge28"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.24s)">
<path fill="none" stroke="#000000" d="M651.2402,-726.8466C651.2402,-711.423 651.2402,-690.4861 651.2402,-672.5478"/>
<polygon fill="#000000" stroke="#000000" points="654.7403,-672.3968 651.2402,-662.3968 647.7403,-672.3968 654.7403,-672.3968"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.24s)">
<text text-anchor="middle" x="667.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N7 -->
<g id="edge57" class="edge">
<title>N27&#45;&gt;N7</title>
<g id="a_edge57"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.09s)">
<path fill="none" stroke="#000000" d="M1948.899,-840.4717C1941.2443,-838.8931 1933.6332,-837.3846 1926.2402,-836 1872.6062,-825.955 1858.0116,-830.0497 1804.792,-818 1784.135,-813.323 1779.8716,-808.7888 1759.2402,-804 1712.6044,-793.1753 1697.7184,-796.133 1647.2223,-786.0996"/>
<polygon fill="#000000" stroke="#000000" points="1647.864,-782.6584 1637.3635,-784.0688 1646.4516,-789.5145 1647.864,-782.6584"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.09s)">
<text text-anchor="middle" x="1821.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.assertI2T (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2075.1319,-453 1981.3486,-453 1981.3486,-412 2075.1319,-412 2075.1319,-453"/>
<text text-anchor="middle" x="2028.2402" y="-440.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="2028.2402" y="-429.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.26%)</text>
<text text-anchor="middle" x="2028.2402" y="-418.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.13s(1.69%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N42 -->
<g id="edge60" class="edge">
<title>N27&#45;&gt;N42</title>
<g id="a_edge60"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.07s)">
<path fill="none" stroke="#000000" d="M2046.6042,-840.4635C2038.5048,-817.1494 2028.2402,-781.2426 2028.2402,-749 2028.2402,-749 2028.2402,-749 2028.2402,-532.5 2028.2402,-509.3555 2028.2402,-483.1978 2028.2402,-463.4416"/>
<polygon fill="#000000" stroke="#000000" points="2031.7403,-463.1842 2028.2402,-453.1843 2024.7403,-463.1843 2031.7403,-463.1842"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.07s)">
<text text-anchor="middle" x="2044.9644" y="-631.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N71 -->
<g id="edge104" class="edge">
<title>N27&#45;&gt;N71</title>
<g id="a_edge104"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M2031.9895,-840.1979C2017.1338,-824.6361 1997.7752,-804.2461 1980.792,-786 1950.4517,-753.4036 1949.6275,-737.6716 1913.2402,-712 1879.4487,-688.1597 1837.0811,-669.7985 1801.7279,-657.0474"/>
<polygon fill="#000000" stroke="#000000" points="1802.5502,-653.6261 1791.9554,-653.5998 1800.2213,-660.2274 1802.5502,-653.6261"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="1997.9644" y="-744.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.mapassign1 (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2246.8067,-772.5 2125.6738,-772.5 2125.6738,-725.5 2246.8067,-725.5 2246.8067,-772.5"/>
<text text-anchor="middle" x="2186.2402" y="-758.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="2186.2402" y="-745.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.91%)</text>
<text text-anchor="middle" x="2186.2402" y="-732.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.19s(2.47%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N35 -->
<g id="edge34" class="edge">
<title>N29&#45;&gt;N35</title>
<g id="a_edge34"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.19s)">
<path fill="none" stroke="#000000" d="M2259.0461,-844.8252C2248.3234,-837.2004 2236.8716,-827.967 2227.792,-818 2217.9615,-807.2088 2209.239,-793.745 2202.3555,-781.5826"/>
<polygon fill="#000000" stroke="#000000" points="2205.3201,-779.7081 2197.4623,-772.6014 2199.1732,-783.0572 2205.3201,-779.7081"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.19s)">
<text text-anchor="middle" x="2244.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N42 -->
<g id="edge81" class="edge">
<title>N29&#45;&gt;N42</title>
<g id="a_edge81"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M2290.8083,-844.8497C2285.6102,-772.3517 2266.9,-532.3987 2245.2402,-506 2224.7119,-480.9802 2142.5993,-458.0698 2085.4909,-444.6967"/>
<polygon fill="#000000" stroke="#000000" points="2086.024,-441.2279 2075.4934,-442.3927 2084.4519,-448.0491 2086.024,-441.2279"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="2291.9644" y="-631.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N71 -->
<g id="edge103" class="edge">
<title>N29&#45;&gt;N71</title>
<g id="a_edge103"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M2228.1195,-844.9882C2175.8865,-827.585 2106.9721,-802.8326 2082.792,-786 2046.9727,-761.0649 2055.4916,-734.74 2018.2402,-712 1939.2993,-663.8107 1905.3164,-686.8859 1816.2402,-662 1810.0852,-660.2804 1803.7013,-658.4251 1797.3229,-656.5227"/>
<polygon fill="#000000" stroke="#000000" points="1797.923,-653.0479 1787.3381,-653.5073 1795.8992,-659.7489 1797.923,-653.0479"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="2099.9644" y="-744.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.indexbytebody (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="724.6885,-550.5 587.792,-550.5 587.792,-514.5 724.6885,-514.5 724.6885,-550.5"/>
<text text-anchor="middle" x="656.2402" y="-535.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.indexbytebody</text>
<text text-anchor="middle" x="656.2402" y="-522.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.91%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N55 -->
<g id="edge62" class="edge">
<title>N30&#45;&gt;N55</title>
<g id="a_edge62"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.07s)">
<path fill="none" stroke="#000000" d="M652.5279,-608.9749C653.245,-594.202 654.1377,-575.8115 654.868,-560.7673"/>
<polygon fill="#000000" stroke="#000000" points="658.3772,-560.6618 655.3663,-550.5038 651.3854,-560.3223 658.3772,-560.6618"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.07s)">
<text text-anchor="middle" x="670.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N40 -->
<g id="edge93" class="edge">
<title>N31&#45;&gt;N40</title>
<g id="a_edge93"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.03s)">
<path fill="none" stroke="#000000" d="M1269.6279,-726.7818C1270.8573,-712.347 1274.3757,-693.7316 1283.792,-680 1288.3573,-673.3424 1294.2791,-667.4447 1300.7279,-662.2981"/>
<polygon fill="#000000" stroke="#000000" points="1303.0989,-664.9008 1309.1157,-656.1802 1298.9739,-659.2453 1303.0989,-664.9008"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.03s)">
<text text-anchor="middle" x="1300.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="main.Integer.Multiply (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1627.2866,-656 1515.1939,-656 1515.1939,-615 1627.2866,-615 1627.2866,-656"/>
<text text-anchor="middle" x="1571.2402" y="-643.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="1571.2402" y="-632.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.26%)</text>
<text text-anchor="middle" x="1571.2402" y="-621.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(1.56%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N44 -->
<g id="edge42" class="edge">
<title>N31&#45;&gt;N44</title>
<g id="a_edge42"><a xlink:title="main.(*machine).executeMultiply ... main.Integer.Multiply (0.12s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1326.0577,-726.9806C1339.8001,-721.8726 1354.4912,-716.5914 1368.2402,-712 1395.0516,-703.0465 1403.4446,-705.5584 1429.2402,-694 1440.0062,-689.176 1441.1194,-685.0271 1451.792,-680 1474.468,-669.3188 1481.7229,-670.6733 1505.2402,-662 1507.311,-661.2363 1509.4144,-660.45 1511.5357,-659.6481"/>
<polygon fill="#000000" stroke="#000000" points="1512.8235,-662.9029 1520.9061,-656.0529 1510.316,-656.3674 1512.8235,-662.9029"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.(*machine).executeMultiply ... main.Integer.Multiply (0.12s)">
<text text-anchor="middle" x="1468.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N53 -->
<g id="edge94" class="edge">
<title>N31&#45;&gt;N53</title>
<g id="a_edge94"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<path fill="none" stroke="#000000" d="M1286.4648,-726.9969C1299.5482,-711.7048 1318.821,-691.9908 1339.792,-680 1366.3536,-664.8127 1377.7802,-673.2338 1406.2402,-662 1408.7247,-661.0193 1411.2454,-659.9481 1413.7666,-658.8165"/>
<polygon fill="#000000" stroke="#000000" points="1415.3034,-661.9614 1422.8345,-654.5094 1412.3,-655.6384 1415.3034,-661.9614"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<text text-anchor="middle" x="1356.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N71 -->
<g id="edge101" class="edge">
<title>N31&#45;&gt;N71</title>
<g id="a_edge101"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M1320.6188,-726.9587C1335.7176,-721.262 1352.4285,-715.6987 1368.2402,-712 1444.8036,-694.0901 1467.2175,-709.8182 1544.2402,-694 1588.2869,-684.9541 1636.7048,-669.6525 1673.2358,-656.9674"/>
<polygon fill="#000000" stroke="#000000" points="1674.4552,-660.2488 1682.7328,-653.6357 1672.138,-653.6434 1674.4552,-660.2488"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="1613.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N33 -->
<g id="edge84" class="edge">
<title>N32&#45;&gt;N33</title>
<g id="a_edge84"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M2891.3267,-613.2494C2908.9542,-593.7887 2930.2402,-563.8075 2930.2402,-532.5 2930.2402,-532.5 2930.2402,-532.5 2930.2402,-334 2930.2402,-276.8192 2533.7005,-239.6442 2361.0221,-226.1667"/>
<polygon fill="#000000" stroke="#000000" points="2361.2143,-222.6712 2350.9741,-225.3895 2360.6744,-229.6503 2361.2143,-222.6712"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="2946.9644" y="-428.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.newdefer (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2902.4416,-551.5 2780.0389,-551.5 2780.0389,-513.5 2902.4416,-513.5 2902.4416,-551.5"/>
<text text-anchor="middle" x="2841.2402" y="-535.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2841.2402" y="-520.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.13s(1.69%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N43 -->
<g id="edge41" class="edge">
<title>N32&#45;&gt;N43</title>
<g id="a_edge41"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.13s)">
<path fill="none" stroke="#000000" d="M2862.4481,-613.4039C2858.4702,-598.229 2853.1496,-577.9319 2848.8328,-561.4643"/>
<polygon fill="#000000" stroke="#000000" points="2852.2171,-560.5714 2846.2957,-551.7857 2845.4459,-562.3464 2852.2171,-560.5714"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.13s)">
<text text-anchor="middle" x="2872.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.getitab (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1423.8081,-559 1310.6723,-559 1310.6723,-506 1423.8081,-506 1423.8081,-559"/>
<text text-anchor="middle" x="1367.2402" y="-543" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="1367.2402" y="-528" font-family="Times,serif" font-size="15.00" fill="#000000">0.15s(1.95%)</text>
<text text-anchor="middle" x="1367.2402" y="-513" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.19s(2.47%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N25 -->
<g id="edge71" class="edge">
<title>N35&#45;&gt;N25</title>
<g id="a_edge71"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.05s)">
<path fill="none" stroke="#000000" d="M2193.5659,-725.3443C2199.9657,-702.5618 2208.2402,-667.0124 2208.2402,-635.5 2208.2402,-635.5 2208.2402,-635.5 2208.2402,-432.5 2208.2402,-385.7734 2160.9838,-361.0708 2114.8976,-348.0902"/>
<polygon fill="#000000" stroke="#000000" points="2115.6614,-344.6718 2105.0986,-345.4945 2113.8689,-351.4385 2115.6614,-344.6718"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.05s)">
<text text-anchor="middle" x="2224.9644" y="-528.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N28 -->
<g id="edge109" class="edge">
<title>N35&#45;&gt;N28</title>
<g id="a_edge109"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.01s)">
<path fill="none" stroke="#000000" d="M2140.1787,-725.3517C2130.6916,-720.7431 2120.707,-716.0801 2111.2402,-712 2067.2222,-693.0285 2016.7919,-674.2523 1976.846,-660.0494"/>
<polygon fill="#000000" stroke="#000000" points="1977.7831,-656.6684 1967.1883,-656.6319 1975.4479,-663.2674 1977.7831,-656.6684"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.01s)">
<text text-anchor="middle" x="2083.9644" y="-682.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime._System (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2984.0101,-883.5 2910.4703,-883.5 2910.4703,-847.5 2984.0101,-847.5 2984.0101,-883.5"/>
<text text-anchor="middle" x="2947.2402" y="-867.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="2947.2402" y="-859.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.16s(2.08%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N6 -->
<g id="edge37" class="edge">
<title>N37&#45;&gt;N6</title>
<g id="a_edge37"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.16s)">
<path fill="none" stroke="#000000" d="M2934.8965,-847.2969C2923.4542,-830.4231 2906.1193,-804.8596 2891.9956,-784.0316"/>
<polygon fill="#000000" stroke="#000000" points="2894.8737,-782.0396 2886.3644,-775.7275 2889.0801,-785.9684 2894.8737,-782.0396"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.16s)">
<text text-anchor="middle" x="2930.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.(*mcentral).cacheSpan (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3754.2392,-551.5 3612.2413,-551.5 3612.2413,-513.5 3754.2392,-513.5 3754.2392,-551.5"/>
<text text-anchor="middle" x="3683.2402" y="-539.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="3683.2402" y="-529.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="3683.2402" y="-519.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.14s(1.82%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N41 -->
<g id="edge40" class="edge">
<title>N39&#45;&gt;N41</title>
<g id="a_edge40"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.14s)">
<path fill="none" stroke="#000000" d="M3683.2402,-616.1265C3683.2402,-600.8768 3683.2402,-579.3697 3683.2402,-561.9853"/>
<polygon fill="#000000" stroke="#000000" points="3686.7403,-561.7866 3683.2402,-551.7866 3679.7403,-561.7867 3686.7403,-561.7866"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.14s)">
<text text-anchor="middle" x="3699.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N34 -->
<g id="edge44" class="edge">
<title>N40&#45;&gt;N34</title>
<g id="a_edge44"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.12s)">
<path fill="none" stroke="#000000" d="M1355.2757,-614.6564C1357.1676,-601.6654 1359.6554,-584.5824 1361.8722,-569.3604"/>
<polygon fill="#000000" stroke="#000000" points="1365.3752,-569.5926 1363.353,-559.1925 1358.4483,-568.5837 1365.3752,-569.5926"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.12s)">
<text text-anchor="middle" x="1377.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.lock (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3720.0101,-450.5 3646.4703,-450.5 3646.4703,-414.5 3720.0101,-414.5 3720.0101,-450.5"/>
<text text-anchor="middle" x="3683.2402" y="-434.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="3683.2402" y="-426.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N78 -->
<g id="edge107" class="edge">
<title>N41&#45;&gt;N78</title>
<g id="a_edge107"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.01s)">
<path fill="none" stroke="#000000" d="M3683.2402,-513.219C3683.2402,-498.4138 3683.2402,-477.7417 3683.2402,-461.0241"/>
<polygon fill="#000000" stroke="#000000" points="3686.7403,-460.7107 3683.2402,-450.7107 3679.7403,-460.7108 3686.7403,-460.7107"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.01s)">
<text text-anchor="middle" x="3699.9644" y="-476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N25 -->
<g id="edge50" class="edge">
<title>N42&#45;&gt;N25</title>
<g id="a_edge50"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.11s)">
<path fill="none" stroke="#000000" d="M2028.2402,-411.6107C2028.2402,-399.3703 2028.2402,-383.5845 2028.2402,-369.4488"/>
<polygon fill="#000000" stroke="#000000" points="2031.7403,-369.0467 2028.2402,-359.0468 2024.7403,-369.0468 2031.7403,-369.0467"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.11s)">
<text text-anchor="middle" x="2044.708" y="-379.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N10 -->
<g id="edge64" class="edge">
<title>N44&#45;&gt;N10</title>
<g id="a_edge64"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.06s)">
<path fill="none" stroke="#000000" d="M1556.1159,-614.7084C1533.2225,-585.0055 1486.726,-531.234 1433.2402,-506 1344.0189,-463.9063 1052.8741,-443.0265 924.268,-435.6734"/>
<polygon fill="#000000" stroke="#000000" points="924.3654,-432.1735 914.1844,-435.1056 923.9718,-439.1624 924.3654,-432.1735"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.06s)">
<text text-anchor="middle" x="1521.9644" y="-528.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N42 -->
<g id="edge106" class="edge">
<title>N44&#45;&gt;N42</title>
<g id="a_edge106"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.01s)">
<path fill="none" stroke="#000000" d="M1617.5748,-614.9181C1702.1718,-577.34 1881.3008,-497.7707 1972.4451,-457.2843"/>
<polygon fill="#000000" stroke="#000000" points="1974.065,-460.3946 1981.7831,-453.1363 1971.2233,-453.9973 1974.065,-460.3946"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.01s)">
<text text-anchor="middle" x="1876.9644" y="-528.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.freedefer (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3073.79,-557.5 2960.6905,-557.5 2960.6905,-507.5 3073.79,-507.5 3073.79,-557.5"/>
<text text-anchor="middle" x="3017.2402" y="-542.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="3017.2402" y="-528.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.09s(1.17%)</text>
<text text-anchor="middle" x="3017.2402" y="-514.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.10s(1.30%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N49 -->
<g id="edge55" class="edge">
<title>N45&#45;&gt;N49</title>
<g id="a_edge55"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.10s)">
<path fill="none" stroke="#000000" d="M3017.2402,-614.6564C3017.2402,-601.2833 3017.2402,-583.574 3017.2402,-568.0222"/>
<polygon fill="#000000" stroke="#000000" points="3020.7403,-567.6801 3017.2402,-557.6802 3013.7403,-567.6802 3020.7403,-567.6801"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.10s)">
<text text-anchor="middle" x="3033.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="main.Integer.Add (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1292.7212,-556 1185.7593,-556 1185.7593,-509 1292.7212,-509 1292.7212,-556"/>
<text text-anchor="middle" x="1239.2402" y="-541.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="1239.2402" y="-528.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.91%)</text>
<text text-anchor="middle" x="1239.2402" y="-515.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.10s(1.30%)</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N47 -->
<g id="edge52" class="edge">
<title>N46&#45;&gt;N47</title>
<g id="a_edge52"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.10s)">
<path fill="none" stroke="#000000" d="M1239.2402,-616.1265C1239.2402,-602.1679 1239.2402,-582.9667 1239.2402,-566.4833"/>
<polygon fill="#000000" stroke="#000000" points="1242.7403,-566.1262 1239.2402,-556.1262 1235.7403,-566.1263 1242.7403,-566.1262"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.10s)">
<text text-anchor="middle" x="1255.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N10 -->
<g id="edge98" class="edge">
<title>N47&#45;&gt;N10</title>
<g id="a_edge98"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.02s)">
<path fill="none" stroke="#000000" d="M1185.6257,-518.2786C1116.6036,-499.9704 996.9124,-468.2221 924.1073,-448.9104"/>
<polygon fill="#000000" stroke="#000000" points="924.7186,-445.4515 914.1555,-446.2706 922.9238,-452.2176 924.7186,-445.4515"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.02s)">
<text text-anchor="middle" x="1078.9644" y="-476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N42 -->
<g id="edge105" class="edge">
<title>N47&#45;&gt;N42</title>
<g id="a_edge105"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.01s)">
<path fill="none" stroke="#000000" d="M1291.2797,-508.9424C1294.615,-507.8431 1297.953,-506.8476 1301.2402,-506 1427.9502,-473.3299 1822.5557,-445.5835 1971.0013,-436.0412"/>
<polygon fill="#000000" stroke="#000000" points="1971.5005,-439.5165 1981.2569,-435.3858 1971.054,-432.5308 1971.5005,-439.5165"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.01s)">
<text text-anchor="middle" x="1525.9644" y="-476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.schedule (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2887.0101,-1003 2813.4703,-1003 2813.4703,-967 2887.0101,-967 2887.0101,-1003"/>
<text text-anchor="middle" x="2850.2402" y="-986.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="2850.2402" y="-978.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(1.30%)</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.findrunnable (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2892.0612,-883.5 2808.4193,-883.5 2808.4193,-847.5 2892.0612,-847.5 2892.0612,-883.5"/>
<text text-anchor="middle" x="2850.2402" y="-867.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="2850.2402" y="-859.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N72 -->
<g id="edge89" class="edge">
<title>N51&#45;&gt;N72</title>
<g id="a_edge89"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.04s)">
<path fill="none" stroke="#000000" d="M2850.2402,-966.8505C2850.2402,-947.4607 2850.2402,-916.4674 2850.2402,-893.8542"/>
<polygon fill="#000000" stroke="#000000" points="2853.7403,-893.8202 2850.2402,-883.8203 2846.7403,-893.8203 2853.7403,-893.8202"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.04s)">
<text text-anchor="middle" x="2866.9644" y="-915.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N34 -->
<g id="edge61" class="edge">
<title>N53&#45;&gt;N34</title>
<g id="a_edge61"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.07s)">
<path fill="none" stroke="#000000" d="M1439.5,-616.1265C1427.5567,-602.3045 1411.1716,-583.3419 1397.0232,-566.9679"/>
<polygon fill="#000000" stroke="#000000" points="1399.473,-564.4498 1390.2865,-559.1716 1394.1764,-569.0265 1399.473,-564.4498"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.07s)">
<text text-anchor="middle" x="1433.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N56 -->
<g id="edge99" class="edge">
<title>N54&#45;&gt;N56</title>
<g id="a_edge99"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.02s)">
<path fill="none" stroke="#000000" d="M1522.7912,-844.896C1531.6798,-841.357 1541.1239,-838.1365 1550.2402,-836 1581.8888,-828.5829 1819.1315,-840.8611 1842.2402,-818 1852.6504,-807.7014 1854.2788,-791.5617 1853.129,-777.4806"/>
<polygon fill="#000000" stroke="#000000" points="1856.5592,-776.7143 1851.8076,-767.2448 1849.6168,-777.6106 1856.5592,-776.7143"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.02s)">
<text text-anchor="middle" x="1867.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2449.0531,-767 2303.4274,-767 2303.4274,-731 2449.0531,-731 2449.0531,-767"/>
<text text-anchor="middle" x="2376.2402" y="-750.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="2376.2402" y="-742.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N70 -->
<g id="edge82" class="edge">
<title>N57&#45;&gt;N70</title>
<g id="a_edge82"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.04s)">
<path fill="none" stroke="#000000" d="M2436.9902,-847.2969C2425.1018,-828.0608 2406.2339,-797.5315 2392.6792,-775.5991"/>
<polygon fill="#000000" stroke="#000000" points="2395.6458,-773.7418 2387.4112,-767.0753 2389.6912,-777.4219 2395.6458,-773.7418"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.04s)">
<text text-anchor="middle" x="2435.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.(*mheap).alloc_m (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3225.0345,-553 3091.446,-553 3091.446,-512 3225.0345,-512 3225.0345,-553"/>
<text text-anchor="middle" x="3158.2402" y="-540.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="3158.2402" y="-529.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.26%)</text>
<text text-anchor="middle" x="3158.2402" y="-518.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.06s(0.78%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N59 -->
<g id="edge65" class="edge">
<title>N58&#45;&gt;N59</title>
<g id="a_edge65"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.06s)">
<path fill="none" stroke="#000000" d="M3155.7766,-617.0857C3156.2092,-602.2308 3156.8274,-581.0072 3157.3363,-563.5361"/>
<polygon fill="#000000" stroke="#000000" points="3160.8436,-563.3309 3157.6364,-553.2332 3153.8466,-563.1271 3160.8436,-563.3309"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.06s)">
<text text-anchor="middle" x="3172.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.mcall (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2941.0101,-1263 2867.4703,-1263 2867.4703,-1227 2941.0101,-1227 2941.0101,-1263"/>
<text text-anchor="middle" x="2904.2402" y="-1246.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="2904.2402" y="-1238.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(0.78%)</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.park_m (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2941.0101,-1111 2867.4703,-1111 2867.4703,-1075 2941.0101,-1075 2941.0101,-1111"/>
<text text-anchor="middle" x="2904.2402" y="-1094.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.park_m</text>
<text text-anchor="middle" x="2904.2402" y="-1086.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.65%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N66 -->
<g id="edge72" class="edge">
<title>N60&#45;&gt;N66</title>
<g id="a_edge72"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.05s)">
<path fill="none" stroke="#000000" d="M2904.2402,-1226.9667C2904.2402,-1200.7983 2904.2402,-1152.0561 2904.2402,-1121.1368"/>
<polygon fill="#000000" stroke="#000000" points="2907.7403,-1121.0098 2904.2402,-1111.0098 2900.7403,-1121.0099 2907.7403,-1121.0098"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.05s)">
<text text-anchor="middle" x="2920.9644" y="-1131.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.goschedImpl (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2848.4475,-1111 2764.0329,-1111 2764.0329,-1075 2848.4475,-1075 2848.4475,-1111"/>
<text text-anchor="middle" x="2806.2402" y="-1094.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="2806.2402" y="-1086.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.65%)</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N51 -->
<g id="edge69" class="edge">
<title>N61&#45;&gt;N51</title>
<g id="a_edge69"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.05s)">
<path fill="none" stroke="#000000" d="M2813.7042,-1074.6793C2820.6678,-1057.5868 2831.1483,-1031.8619 2839.1012,-1012.3413"/>
<polygon fill="#000000" stroke="#000000" points="2842.3548,-1013.6317 2842.8865,-1003.0502 2835.8721,-1010.9905 2842.3548,-1013.6317"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.05s)">
<text text-anchor="middle" x="2841.9644" y="-1045.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.mProf_Malloc (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="700.7844,-36 611.6961,-36 611.6961,0 700.7844,0 700.7844,-36"/>
<text text-anchor="middle" x="656.2402" y="-19.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mProf_Malloc</text>
<text text-anchor="middle" x="656.2402" y="-11.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.65%)</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.osyield (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3720.0101,-352 3646.4703,-352 3646.4703,-316 3720.0101,-316 3720.0101,-352"/>
<text text-anchor="middle" x="3683.2402" y="-335.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="3683.2402" y="-327.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.65%)</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.usleep (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3726.7207,-238.5 3639.7598,-238.5 3639.7598,-202.5 3726.7207,-202.5 3726.7207,-238.5"/>
<text text-anchor="middle" x="3683.2402" y="-222.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="3683.2402" y="-210.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.65%)</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N68 -->
<g id="edge73" class="edge">
<title>N65&#45;&gt;N68</title>
<g id="a_edge73"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.05s)">
<path fill="none" stroke="#000000" d="M3683.2402,-315.7643C3683.2402,-297.7279 3683.2402,-269.8641 3683.2402,-248.9221"/>
<polygon fill="#000000" stroke="#000000" points="3686.7403,-248.6904 3683.2402,-238.6905 3679.7403,-248.6905 3686.7403,-248.6904"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.05s)">
<text text-anchor="middle" x="3699.9644" y="-279.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N51 -->
<g id="edge74" class="edge">
<title>N66&#45;&gt;N51</title>
<g id="a_edge74"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.05s)">
<path fill="none" stroke="#000000" d="M2895.0799,-1074.6793C2886.4946,-1057.5088 2873.5537,-1031.6268 2863.7774,-1012.0743"/>
<polygon fill="#000000" stroke="#000000" points="2866.868,-1010.4292 2859.2653,-1003.0502 2860.607,-1013.5597 2866.868,-1010.4292"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.05s)">
<text text-anchor="middle" x="2900.9644" y="-1045.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N64 -->
<g id="edge75" class="edge">
<title>N67&#45;&gt;N64</title>
<g id="a_edge75"><a xlink:title="runtime.profilealloc &#45;&gt; runtime.mProf_Malloc (0.05s)">
<path fill="none" stroke="#000000" d="M656.2402,-90.5848C656.2402,-77.9209 656.2402,-60.8558 656.2402,-46.4541"/>
<polygon fill="#000000" stroke="#000000" points="659.7403,-46.0772 656.2402,-36.0773 652.7403,-46.0773 659.7403,-46.0772"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="runtime.profilealloc &#45;&gt; runtime.mProf_Malloc (0.05s)">
<text text-anchor="middle" x="672.9644" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N10 -->
<g id="edge77" class="edge">
<title>N69&#45;&gt;N10</title>
<g id="a_edge77"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.04s)">
<path fill="none" stroke="#000000" d="M1103.7233,-617.4851C1058.0592,-582.5047 956.9849,-505.078 901.1655,-462.3183"/>
<polygon fill="#000000" stroke="#000000" points="903.0075,-459.3203 892.9405,-456.0176 898.7506,-464.8773 903.0075,-459.3203"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.04s)">
<text text-anchor="middle" x="1042.9644" y="-528.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N6 -->
<g id="edge86" class="edge">
<title>N72&#45;&gt;N6</title>
<g id="a_edge86"><a xlink:title="runtime.findrunnable ... runtime.systemstack (0.04s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2853.0527,-847.2969C2855.5903,-830.8731 2859.3999,-806.2168 2862.5687,-785.7077"/>
<polygon fill="#000000" stroke="#000000" points="2866.0426,-786.1446 2864.1107,-775.7275 2859.1247,-785.0757 2866.0426,-786.1446"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.findrunnable ... runtime.systemstack (0.04s)">
<text text-anchor="middle" x="2875.9644" y="-806.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.gcMark (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2760.4527,-551.5 2680.0278,-551.5 2680.0278,-513.5 2760.4527,-513.5 2760.4527,-551.5"/>
<text text-anchor="middle" x="2720.2402" y="-539.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.gcMark</text>
<text text-anchor="middle" x="2720.2402" y="-529.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="2720.2402" y="-519.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N73 -->
<g id="edge87" class="edge">
<title>N74&#45;&gt;N73</title>
<g id="a_edge87"><a xlink:title="runtime.gcMarkTermination.func1 &#45;&gt; runtime.gcMark (0.04s)">
<path fill="none" stroke="#000000" d="M2720.2402,-617.0857C2720.2402,-601.7756 2720.2402,-579.7004 2720.2402,-561.9407"/>
<polygon fill="#000000" stroke="#000000" points="2723.7403,-561.8036 2720.2402,-551.8036 2716.7403,-561.8037 2723.7403,-561.8036"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.gcMarkTermination.func1 &#45;&gt; runtime.gcMark (0.04s)">
<text text-anchor="middle" x="2736.9644" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.gopreempt_m (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2849.0572,-1263 2761.4233,-1263 2761.4233,-1227 2849.0572,-1227 2849.0572,-1263"/>
<text text-anchor="middle" x="2805.2402" y="-1246.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="2805.2402" y="-1238.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.52%)</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N61 -->
<g id="edge88" class="edge">
<title>N76&#45;&gt;N61</title>
<g id="a_edge88"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.04s)">
<path fill="none" stroke="#000000" d="M2805.3589,-1226.9667C2805.531,-1200.7983 2805.8517,-1152.0561 2806.0551,-1121.1368"/>
<polygon fill="#000000" stroke="#000000" points="2809.5558,-1121.0327 2806.1217,-1111.0098 2802.5559,-1120.9865 2809.5558,-1121.0327"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.04s)">
<text text-anchor="middle" x="2821.9644" y="-1131.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N5 -->
<g id="edge95" class="edge">
<title>N77&#45;&gt;N5</title>
<g id="a_edge95"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.03s)">
<path fill="none" stroke="#000000" d="M58.168,-846.3759C72.9626,-824.134 94.2402,-785.7563 94.2402,-749 94.2402,-749 94.2402,-749 94.2402,-334 94.2402,-294.5003 192.1546,-261.7887 271.344,-241.7919"/>
<polygon fill="#000000" stroke="#000000" points="272.5313,-245.1034 281.3929,-239.2963 270.8441,-238.3098 272.5313,-245.1034"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.03s)">
<text text-anchor="middle" x="110.9644" y="-528.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N65 -->
<g id="edge100" class="edge">
<title>N78&#45;&gt;N65</title>
<g id="a_edge100"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.02s)">
<path fill="none" stroke="#000000" d="M3683.2402,-414.4336C3683.2402,-399.9456 3683.2402,-379.3416 3683.2402,-362.6145"/>
<polygon fill="#000000" stroke="#000000" points="3686.7403,-362.2854 3683.2402,-352.2855 3679.7403,-362.2855 3686.7403,-362.2854"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.02s)">
<text text-anchor="middle" x="3699.9644" y="-379.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration4.svg.









































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2134)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2134 3294.1226,-2134 3294.1226,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="577.6431,-1938 577.6431,-2122 1223.6431,-2122 1223.6431,-1938 577.6431,-1938"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="1215.4868,-2114 585.7993,-2114 585.7993,-1946 1215.4868,-1946 1215.4868,-2114"/>
<text text-anchor="start" x="593.7212" y="-2084.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="593.7212" y="-2052.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="593.7212" y="-2020.4" font-family="Times,serif" font-size="32.00" fill="#000000">8.53s of 9.03s total (94.46%)</text>
<text text-anchor="start" x="593.7212" y="-1988.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 60 nodes (cum &lt;= 0.05s)</text>
<text text-anchor="start" x="593.7212" y="-1956.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 91 (cum &gt;= 0.14s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (8.78s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1311.4129,-2048 1233.8732,-2048 1233.8732,-2012 1311.4129,-2012 1311.4129,-2048"/>
<text text-anchor="middle" x="1272.6431" y="-2031.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="1272.6431" y="-2023.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 8.78s(97.23%)</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.gcBgMarkWorker (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1216.0338,-1896 1115.2524,-1896 1115.2524,-1860 1216.0338,-1860 1216.0338,-1896"/>
<text text-anchor="middle" x="1165.6431" y="-1879.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="1165.6431" y="-1871.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.55%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N66 -->
<g id="edge89" class="edge">
<title>N1&#45;&gt;N66</title>
<g id="a_edge89"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.05s)">
<path fill="none" stroke="#000000" d="M1265.8865,-2011.6799C1258.2644,-1992.3332 1244.6792,-1961.4466 1227.6431,-1938 1218.5033,-1925.421 1206.5816,-1913.1781 1195.6368,-1903.0669"/>
<polygon fill="#000000" stroke="#000000" points="1197.6706,-1900.1889 1187.8937,-1896.1068 1192.9911,-1905.3949 1197.6706,-1900.1889"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.05s)">
<text text-anchor="middle" x="1236.3672" y="-1916.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.main (8.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1311.4129,-1896 1233.8732,-1896 1233.8732,-1860 1311.4129,-1860 1311.4129,-1896"/>
<text text-anchor="middle" x="1272.6431" y="-1879.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.main</text>
<text text-anchor="middle" x="1272.6431" y="-1871.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 8.73s(96.68%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N75 -->
<g id="edge6" class="edge">
<title>N1&#45;&gt;N75</title>
<g id="a_edge6"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (8.73s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1272.6431,-2011.9667C1272.6431,-1985.7983 1272.6431,-1937.0561 1272.6431,-1906.1368"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1277.0182,-1906.0098 1272.6431,-1896.0098 1268.2682,-1906.0099 1277.0182,-1906.0098"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (8.73s)">
<text text-anchor="middle" x="1289.3672" y="-1916.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 8.73s</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (8.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1401.6864,-1380 1143.5997,-1380 1143.5997,-1300 1401.6864,-1300 1401.6864,-1380"/>
<text text-anchor="middle" x="1272.6431" y="-1356.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="1272.6431" y="-1332.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.18s(13.07%)</text>
<text text-anchor="middle" x="1272.6431" y="-1308.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 8.73s(96.68%)</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (8.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1368.627,-1244 1176.6592,-1244 1176.6592,-1203 1368.627,-1203 1368.627,-1244"/>
<text text-anchor="middle" x="1272.6431" y="-1231.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="1272.6431" y="-1220.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.44%)</text>
<text text-anchor="middle" x="1272.6431" y="-1209.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 8.73s(96.68%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N3 -->
<g id="edge79" class="edge">
<title>N2&#45;&gt;N3</title>
<g id="a_edge79"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.06s)">
<path fill="none" stroke="#000000" d="M1242.7338,-1299.923C1239.6485,-1294.1496 1236.991,-1288.0933 1235.1948,-1282 1232.0883,-1271.4615 1235.9363,-1261.0145 1242.182,-1251.9287"/>
<polygon fill="#000000" stroke="#000000" points="1244.9943,-1254.0152 1248.4613,-1244.0037 1239.5077,-1249.668 1244.9943,-1254.0152"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.06s)">
<text text-anchor="middle" x="1252.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.mapaccess2_faststr (1.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2467.3942,-1147 2207.892,-1147 2207.892,-1073 2467.3942,-1073 2467.3942,-1147"/>
<text text-anchor="middle" x="2337.6431" y="-1125.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="2337.6431" y="-1103.4" font-family="Times,serif" font-size="22.00" fill="#000000">0.78s(8.64%)</text>
<text text-anchor="middle" x="2337.6431" y="-1081.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 1.24s(13.73%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge10" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.89s)">
<path fill="none" stroke="#000000" d="M1401.739,-1337.6677C1665.1486,-1331.6523 2245.2333,-1311.5021 2309.6431,-1250 2334.2856,-1226.4699 2340.5372,-1187.8439 2341.0432,-1157.118"/>
<polygon fill="#000000" stroke="#000000" points="2344.543,-1157.0234 2341.0128,-1147.034 2337.543,-1157.0445 2344.543,-1157.0234"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.89s)">
<text text-anchor="middle" x="2352.3672" y="-1219.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.89s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="main.(*CodeQuotation).cloneCode (0.72s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1006.5923,-1245.5 824.6938,-1245.5 824.6938,-1201.5 1006.5923,-1201.5 1006.5923,-1245.5"/>
<text text-anchor="middle" x="915.6431" y="-1231.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="915.6431" y="-1219.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.55%)</text>
<text text-anchor="middle" x="915.6431" y="-1207.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.72s(7.97%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N8 -->
<g id="edge11" class="edge">
<title>N2&#45;&gt;N8</title>
<g id="a_edge11"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.72s)">
<path fill="none" stroke="#000000" d="M1143.4907,-1309.1734C1113.5947,-1301.1267 1082.0847,-1291.9038 1053.1948,-1282 1025.9857,-1272.6724 996.5523,-1260.4555 971.9214,-1249.5997"/>
<polygon fill="#000000" stroke="#000000" points="973.2907,-1246.3782 962.7311,-1245.5146 970.4474,-1252.7747 973.2907,-1246.3782"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.72s)">
<text text-anchor="middle" x="1070.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.72s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.convT2I (0.71s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1125.368,-829 1021.9181,-829 1021.9181,-782 1125.368,-782 1125.368,-829"/>
<text text-anchor="middle" x="1073.6431" y="-814.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1073.6431" y="-801.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(1.22%)</text>
<text text-anchor="middle" x="1073.6431" y="-788.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.71s(7.86%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N9 -->
<g id="edge16" class="edge">
<title>N2&#45;&gt;N9</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.57s)">
<path fill="none" stroke="#000000" d="M1218.0078,-1299.7947C1200.5962,-1285.3343 1182.1149,-1268.0932 1167.6431,-1250 1151.7784,-1230.1654 1060.6431,-1073.3988 1060.6431,-1048 1060.6431,-1048 1060.6431,-1048 1060.6431,-902.5 1060.6431,-881.3809 1063.7077,-857.9028 1066.8611,-839.3351"/>
<polygon fill="#000000" stroke="#000000" points="1070.3408,-839.7584 1068.6541,-829.2987 1063.4499,-838.5273 1070.3408,-839.7584"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.57s)">
<text text-anchor="middle" x="1079.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.57s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.tryParseInt (0.67s)">
<polygon fill="#f8f8f8" stroke="#000000" points="806.2902,-1245.5 710.9959,-1245.5 710.9959,-1201.5 806.2902,-1201.5 806.2902,-1245.5"/>
<text text-anchor="middle" x="758.6431" y="-1231.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="758.6431" y="-1219.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.78%)</text>
<text text-anchor="middle" x="758.6431" y="-1207.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.67s(7.42%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N10 -->
<g id="edge13" class="edge">
<title>N2&#45;&gt;N10</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.67s)">
<path fill="none" stroke="#000000" d="M1143.4791,-1323.054C1050.7777,-1308.8534 923.6735,-1285.1798 815.6431,-1250 814.7578,-1249.7117 813.8682,-1249.4132 812.9757,-1249.1055"/>
<polygon fill="#000000" stroke="#000000" points="813.9464,-1245.7317 803.3541,-1245.5016 811.491,-1252.2869 813.9464,-1245.7317"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.67s)">
<text text-anchor="middle" x="943.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.67s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.(*machine).executeMathWord (0.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1575.1118,-1245.5 1386.1743,-1245.5 1386.1743,-1201.5 1575.1118,-1201.5 1575.1118,-1245.5"/>
<text text-anchor="middle" x="1480.6431" y="-1231.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="1480.6431" y="-1219.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.78%)</text>
<text text-anchor="middle" x="1480.6431" y="-1207.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.65s(7.20%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N11 -->
<g id="edge14" class="edge">
<title>N2&#45;&gt;N11</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.65s)">
<path fill="none" stroke="#000000" d="M1344.2249,-1299.9073C1373.2379,-1283.6572 1405.9909,-1265.3124 1432.1307,-1250.6716"/>
<polygon fill="#000000" stroke="#000000" points="1434.0696,-1253.5973 1441.0839,-1245.6569 1430.6489,-1247.49 1434.0696,-1253.5973"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.65s)">
<text text-anchor="middle" x="1411.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.65s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.tryParseFloat (0.58s)">
<polygon fill="#f8f8f8" stroke="#000000" points="692.7103,-1247 578.5758,-1247 578.5758,-1200 692.7103,-1200 692.7103,-1247"/>
<text text-anchor="middle" x="635.6431" y="-1232.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="635.6431" y="-1219.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(1.11%)</text>
<text text-anchor="middle" x="635.6431" y="-1206.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.58s(6.42%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N12 -->
<g id="edge15" class="edge">
<title>N2&#45;&gt;N12</title>
<g id="a_edge15"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.58s)">
<path fill="none" stroke="#000000" d="M1143.164,-1325.9539C1056.7484,-1315.7753 940.766,-1300.5665 839.1948,-1282 780.4661,-1271.2648 763.1752,-1269.0635 702.4007,-1250.0844"/>
<polygon fill="#000000" stroke="#000000" points="703.2755,-1246.6905 692.686,-1247.0255 701.1731,-1253.3674 703.2755,-1246.6905"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.58s)">
<text text-anchor="middle" x="856.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="main.(*machine).hasPrefixWord (0.55s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2609.7816,-1247 2425.5045,-1247 2425.5045,-1200 2609.7816,-1200 2609.7816,-1247"/>
<text text-anchor="middle" x="2517.6431" y="-1232.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="2517.6431" y="-1219.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.08s(0.89%)</text>
<text text-anchor="middle" x="2517.6431" y="-1206.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.55s(6.09%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N13 -->
<g id="edge17" class="edge">
<title>N2&#45;&gt;N13</title>
<g id="a_edge17"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.55s)">
<path fill="none" stroke="#000000" d="M1401.7612,-1336.6975C1679.6029,-1329.1183 2316.7902,-1309.0275 2411.6431,-1282 2433.9803,-1275.6352 2456.7835,-1263.8657 2475.4886,-1252.5431"/>
<polygon fill="#000000" stroke="#000000" points="2477.4049,-1255.473 2484.0492,-1247.2204 2473.7088,-1249.5284 2477.4049,-1255.473"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.55s)">
<text text-anchor="middle" x="2461.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.55s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.55s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1888.7759,-1247 1662.5102,-1247 1662.5102,-1200 1888.7759,-1200 1888.7759,-1247"/>
<text text-anchor="middle" x="1775.6431" y="-1232.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="1775.6431" y="-1219.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(1.11%)</text>
<text text-anchor="middle" x="1775.6431" y="-1206.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.55s(6.09%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge18" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.55s)">
<path fill="none" stroke="#000000" d="M1401.921,-1325.2018C1469.0716,-1315.8859 1552.0475,-1301.8149 1624.6431,-1282 1654.4844,-1273.8548 1686.5676,-1261.9049 1713.4533,-1250.9252"/>
<polygon fill="#000000" stroke="#000000" points="1714.8289,-1254.1439 1722.7341,-1247.0899 1712.1554,-1247.6745 1714.8289,-1254.1439"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.55s)">
<text text-anchor="middle" x="1683.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.55s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="runtime.deferproc (0.50s)">
<polygon fill="#f8f8f8" stroke="#000000" points="560.6261,-1247 450.6601,-1247 450.6601,-1200 560.6261,-1200 560.6261,-1247"/>
<text text-anchor="middle" x="505.6431" y="-1232.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="505.6431" y="-1219.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.09s(1%)</text>
<text text-anchor="middle" x="505.6431" y="-1206.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.50s(5.54%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N15 -->
<g id="edge19" class="edge">
<title>N2&#45;&gt;N15</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.50s)">
<path fill="none" stroke="#000000" d="M1143.4389,-1329.4888C1033.2701,-1319.7373 870.8667,-1303.4945 730.1948,-1282 661.3603,-1271.4821 640.998,-1271.1402 570.3765,-1250.0111"/>
<polygon fill="#000000" stroke="#000000" points="571.1366,-1246.5844 560.5514,-1247.0366 569.1082,-1253.2841 571.1366,-1246.5844"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.50s)">
<text text-anchor="middle" x="747.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.deferreturn (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2300.1694,-1250 2167.1167,-1250 2167.1167,-1197 2300.1694,-1197 2300.1694,-1250"/>
<text text-anchor="middle" x="2233.6431" y="-1234" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="2233.6431" y="-1219" font-family="Times,serif" font-size="15.00" fill="#000000">0.20s(2.21%)</text>
<text text-anchor="middle" x="2233.6431" y="-1204" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.42s(4.65%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N17 -->
<g id="edge21" class="edge">
<title>N2&#45;&gt;N17</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.42s)">
<path fill="none" stroke="#000000" d="M1402.0162,-1336.3062C1573.6391,-1329.292 1885.5028,-1309.189 2156.7169,-1249.9895"/>
<polygon fill="#000000" stroke="#000000" points="2157.741,-1253.3478 2166.7529,-1247.7768 2156.2338,-1246.512 2157.741,-1253.3478"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.42s)">
<text text-anchor="middle" x="2079.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.memeqbody (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2613.6105,-1021.5 2447.6756,-1021.5 2447.6756,-977.5 2613.6105,-977.5 2613.6105,-1021.5"/>
<text text-anchor="middle" x="2530.6431" y="-1003.1" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2530.6431" y="-985.1" font-family="Times,serif" font-size="18.00" fill="#000000">0.39s(4.32%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N19 -->
<g id="edge34" class="edge">
<title>N2&#45;&gt;N19</title>
<g id="a_edge34"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.27s)">
<path fill="none" stroke="#000000" d="M1401.7574,-1335.9C1630.6008,-1328.0514 2098.4302,-1309.2301 2259.6431,-1282 2311.1112,-1273.3066 2328.8947,-1278.4715 2372.6431,-1250 2398.3027,-1233.3007 2392.278,-1215.5372 2416.6431,-1197 2432.1581,-1185.196 2441.955,-1191.8183 2456.6431,-1179 2469.2793,-1167.9724 2469.276,-1162.0669 2476.6431,-1147 2495.4764,-1108.4825 2511.545,-1061.6402 2521.1409,-1031.2276"/>
<polygon fill="#000000" stroke="#000000" points="2524.5138,-1032.1677 2524.1416,-1021.5794 2517.8296,-1030.0888 2524.5138,-1032.1677"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.27s)">
<text text-anchor="middle" x="2484.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2148.9401,-1248.5 1906.346,-1248.5 1906.346,-1198.5 2148.9401,-1198.5 2148.9401,-1248.5"/>
<text text-anchor="middle" x="2027.6431" y="-1233.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2027.6431" y="-1219.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.14s(1.55%)</text>
<text text-anchor="middle" x="2027.6431" y="-1205.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.32s(3.54%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N27 -->
<g id="edge31" class="edge">
<title>N2&#45;&gt;N27</title>
<g id="a_edge31"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.32s)">
<path fill="none" stroke="#000000" d="M1401.8028,-1324.4106C1526.1731,-1308.7046 1719.692,-1282.445 1896.2338,-1250.2333"/>
<polygon fill="#000000" stroke="#000000" points="1897.0235,-1253.6469 1906.2278,-1248.4 1895.7604,-1246.7618 1897.0235,-1253.6469"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.32s)">
<text text-anchor="middle" x="1794.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="main.(*CodeQuotation).nextWord (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2995.7183,-1242.5 2777.5679,-1242.5 2777.5679,-1204.5 2995.7183,-1204.5 2995.7183,-1242.5"/>
<text text-anchor="middle" x="2886.6431" y="-1226.5" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2886.6431" y="-1211.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.19s(2.10%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N34 -->
<g id="edge42" class="edge">
<title>N2&#45;&gt;N34</title>
<g id="a_edge42"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.19s)">
<path fill="none" stroke="#000000" d="M1401.9451,-1336.5386C1687.3527,-1328.5356 2363.9208,-1307.4741 2591.6431,-1282 2662.1542,-1274.1123 2740.9292,-1258.1152 2799.3273,-1244.8403"/>
<polygon fill="#000000" stroke="#000000" points="2800.2869,-1248.2112 2809.2524,-1242.5658 2798.7232,-1241.3881 2800.2869,-1248.2112"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.19s)">
<text text-anchor="middle" x="2697.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="main.wordIsWhitespace (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2759.9344,-1245.5 2627.3517,-1245.5 2627.3517,-1201.5 2759.9344,-1201.5 2759.9344,-1245.5"/>
<text text-anchor="middle" x="2693.6431" y="-1231.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="2693.6431" y="-1219.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.78%)</text>
<text text-anchor="middle" x="2693.6431" y="-1207.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.19s(2.10%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N35 -->
<g id="edge43" class="edge">
<title>N2&#45;&gt;N35</title>
<g id="a_edge43"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.19s)">
<path fill="none" stroke="#000000" d="M1401.7547,-1336.7721C1669.2866,-1329.5969 2276.3205,-1310.6622 2481.6431,-1282 2543.5704,-1273.3552 2558.6296,-1267.5533 2618.6431,-1250 2620.0928,-1249.576 2621.5555,-1249.1398 2623.0275,-1248.6933"/>
<polygon fill="#000000" stroke="#000000" points="2624.3435,-1251.9487 2632.8372,-1245.6158 2622.2481,-1245.2697 2624.3435,-1251.9487"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.19s)">
<text text-anchor="middle" x="2571.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.eqstring (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1759.7916,-1128 1651.4945,-1128 1651.4945,-1092 1759.7916,-1092 1759.7916,-1128"/>
<text text-anchor="middle" x="1705.6431" y="-1112.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="1705.6431" y="-1098.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.14s(1.55%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N42 -->
<g id="edge56" class="edge">
<title>N2&#45;&gt;N42</title>
<g id="a_edge56"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.13s)">
<path fill="none" stroke="#000000" d="M1401.715,-1323.0528C1461.3346,-1310.3583 1530.5148,-1288.2804 1583.6431,-1250 1606.8587,-1233.2725 1601.9792,-1219.0672 1620.1948,-1197 1638.3102,-1175.0543 1660.959,-1152.1696 1678.3866,-1135.382"/>
<polygon fill="#000000" stroke="#000000" points="1681.1744,-1137.5596 1685.9914,-1128.1231 1676.3411,-1132.496 1681.1744,-1137.5596"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.13s)">
<text text-anchor="middle" x="1636.3672" y="-1219.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.growslice (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1120.372,-1244 1024.9142,-1244 1024.9142,-1203 1120.372,-1203 1120.372,-1244"/>
<text text-anchor="middle" x="1072.6431" y="-1231.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="1072.6431" y="-1220.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.44%)</text>
<text text-anchor="middle" x="1072.6431" y="-1209.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(1%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N51 -->
<g id="edge66" class="edge">
<title>N2&#45;&gt;N51</title>
<g id="a_edge66"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.09s)">
<path fill="none" stroke="#000000" d="M1143.3499,-1308.973C1128.0977,-1301.7623 1113.5811,-1292.896 1101.1948,-1282 1092.6425,-1274.4766 1086.3987,-1263.8095 1081.9713,-1253.6401"/>
<polygon fill="#000000" stroke="#000000" points="1085.167,-1252.2015 1078.2671,-1244.1615 1078.6472,-1254.7496 1085.167,-1252.2015"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.09s)">
<text text-anchor="middle" x="1118.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="main.(*machine).execute.func1 (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3181.2373,-1245.5 3014.0488,-1245.5 3014.0488,-1201.5 3181.2373,-1201.5 3181.2373,-1245.5"/>
<text text-anchor="middle" x="3097.6431" y="-1231.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="3097.6431" y="-1219.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.55%)</text>
<text text-anchor="middle" x="3097.6431" y="-1207.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.07s(0.78%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N56 -->
<g id="edge74" class="edge">
<title>N2&#45;&gt;N56</title>
<g id="a_edge74"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.07s)">
<path fill="none" stroke="#000000" d="M1401.8604,-1337.8855C1654.7945,-1333.0667 2232.8964,-1318.7062 2717.6431,-1282 2845.6227,-1272.3091 2878.7125,-1274.7828 3004.6431,-1250 3007.8964,-1249.3598 3011.2013,-1248.6606 3014.5304,-1247.9154"/>
<polygon fill="#000000" stroke="#000000" points="3015.6307,-1251.2521 3024.5631,-1245.5545 3014.0272,-1244.4382 3015.6307,-1251.2521"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.07s)">
<text text-anchor="middle" x="2912.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.ifaceeq (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3290.1021,-1241.5 3199.1841,-1241.5 3199.1841,-1205.5 3290.1021,-1205.5 3290.1021,-1241.5"/>
<text text-anchor="middle" x="3244.6431" y="-1225.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="3244.6431" y="-1213.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.66%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N64 -->
<g id="edge80" class="edge">
<title>N2&#45;&gt;N64</title>
<g id="a_edge80"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.06s)">
<path fill="none" stroke="#000000" d="M1401.8475,-1336.9667C1738.294,-1328.8302 2635.923,-1305.5385 2932.6431,-1282 3047.8265,-1272.8626 3079.9161,-1283.019 3190.6431,-1250 3194.6961,-1248.7914 3198.8183,-1247.3019 3202.8863,-1245.6507"/>
<polygon fill="#000000" stroke="#000000" points="3204.467,-1248.7794 3212.2218,-1241.5605 3201.6578,-1242.3678 3204.467,-1248.7794"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.06s)">
<text text-anchor="middle" x="3133.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge8" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge8"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (8.67s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1272.6431,-1244.0158C1272.6431,-1256.675 1272.6431,-1273.5082 1272.6431,-1289.5399"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1268.2682,-1289.9073 1272.6431,-1299.9073 1277.0182,-1289.9074 1268.2682,-1289.9073"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (8.67s)">
<text text-anchor="middle" x="1289.3672" y="-1270.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 8.67s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.newobject (1.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="972.2496,-732 859.0366,-732 859.0366,-685 972.2496,-685 972.2496,-732"/>
<text text-anchor="middle" x="915.6431" y="-717.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="915.6431" y="-704.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.08s(0.89%)</text>
<text text-anchor="middle" x="915.6431" y="-691.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.48s(16.39%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N5 -->
<g id="edge110" class="edge">
<title>N3&#45;&gt;N5</title>
<g id="a_edge110"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.01s)">
<path fill="none" stroke="#000000" d="M1238.7957,-1202.7857C1193.404,-1173.8245 1112.1106,-1117.6911 1056.6431,-1055 1012.0936,-1004.6488 1004.6629,-987.5616 977.6431,-926 970.1966,-909.034 940.0258,-798.8471 924.6887,-742.1283"/>
<polygon fill="#000000" stroke="#000000" points="927.9923,-740.9363 922.0064,-732.1944 921.2343,-742.7611 927.9923,-740.9363"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.01s)">
<text text-anchor="middle" x="1009.3672" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.assertI2T (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1994.1157,-827.5 1893.1704,-827.5 1893.1704,-783.5 1994.1157,-783.5 1994.1157,-827.5"/>
<text text-anchor="middle" x="1943.6431" y="-813.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="1943.6431" y="-801.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.66%)</text>
<text text-anchor="middle" x="1943.6431" y="-789.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.14s(1.55%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N41 -->
<g id="edge109" class="edge">
<title>N3&#45;&gt;N41</title>
<g id="a_edge109"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.01s)">
<path fill="none" stroke="#000000" d="M1247.5421,-1202.9485C1232.5327,-1188.959 1214.8335,-1169.0317 1206.6431,-1147 1195.1827,-1116.1724 1201.1253,-1105.4227 1206.6431,-1073 1214.3073,-1027.9647 1242.7129,-911.6707 1274.6431,-879 1302.8572,-850.1315 1320.2105,-855.6318 1359.6431,-847 1458.0103,-825.4674 1753.9386,-812.4064 1882.6947,-807.602"/>
<polygon fill="#000000" stroke="#000000" points="1882.9162,-811.0963 1892.7803,-807.2299 1882.658,-804.1011 1882.9162,-811.0963"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.01s)">
<text text-anchor="middle" x="1247.3672" y="-995.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="runtime.mallocgc (1.59s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1000.7022,-635 830.5839,-635 830.5839,-561 1000.7022,-561 1000.7022,-635"/>
<text text-anchor="middle" x="915.6431" y="-613.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="915.6431" y="-591.4" font-family="Times,serif" font-size="22.00" fill="#000000">0.89s(9.86%)</text>
<text text-anchor="middle" x="915.6431" y="-569.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 1.59s(17.61%)</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.heapBitsSetType (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="781.7266,-511 593.5596,-511 593.5596,-469 781.7266,-469 781.7266,-511"/>
<text text-anchor="middle" x="687.6431" y="-493.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="687.6431" y="-476.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.34s(3.77%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N25 -->
<g id="edge29" class="edge">
<title>N4&#45;&gt;N25</title>
<g id="a_edge29"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.34s)">
<path fill="none" stroke="#000000" d="M837.4974,-560.9836C805.742,-545.9416 769.8541,-528.9421 741.1614,-515.3508"/>
<polygon fill="#000000" stroke="#000000" points="742.6484,-512.1824 732.1127,-511.0646 739.6518,-518.5086 742.6484,-512.1824"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.34s)">
<text text-anchor="middle" x="812.3672" y="-531.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.(*mcache).nextFree (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1046.4246,-509 916.8615,-509 916.8615,-471 1046.4246,-471 1046.4246,-509"/>
<text text-anchor="middle" x="981.6431" y="-497" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="981.6431" y="-487" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.11%)</text>
<text text-anchor="middle" x="981.6431" y="-477" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.19s(2.10%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N36 -->
<g id="edge44" class="edge">
<title>N4&#45;&gt;N36</title>
<g id="a_edge44"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.19s)">
<path fill="none" stroke="#000000" d="M938.3565,-560.8325C947.0213,-546.6538 956.7374,-530.7547 964.7657,-517.6176"/>
<polygon fill="#000000" stroke="#000000" points="967.7923,-519.3769 970.0204,-509.0189 961.8193,-515.7267 967.7923,-519.3769"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.19s)">
<text text-anchor="middle" x="973.3672" y="-531.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.memclr (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="899.533,-508 799.7531,-508 799.7531,-472 899.533,-472 899.533,-508"/>
<text text-anchor="middle" x="849.6431" y="-492.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="849.6431" y="-479.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.09s(1%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N52 -->
<g id="edge103" class="edge">
<title>N4&#45;&gt;N52</title>
<g id="a_edge103"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.02s)">
<path fill="none" stroke="#000000" d="M892.9296,-560.8325C884.083,-546.3563 874.1406,-530.0869 866.0175,-516.7944"/>
<polygon fill="#000000" stroke="#000000" points="868.9212,-514.834 860.7202,-508.1262 862.9483,-518.4842 868.9212,-514.834"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.02s)">
<text text-anchor="middle" x="898.3672" y="-531.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N4 -->
<g id="edge9" class="edge">
<title>N5&#45;&gt;N4</title>
<g id="a_edge9"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.40s)">
<path fill="none" stroke="#000000" d="M915.6431,-684.795C915.6431,-673.2732 915.6431,-658.9991 915.6431,-645.3768"/>
<polygon fill="#000000" stroke="#000000" points="919.1432,-645.1431 915.6431,-635.1432 912.1432,-645.1432 919.1432,-645.1431"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.40s)">
<text text-anchor="middle" x="932.3672" y="-655.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.40s</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N19 -->
<g id="edge69" class="edge">
<title>N6&#45;&gt;N19</title>
<g id="a_edge69"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.09s)">
<path fill="none" stroke="#000000" d="M2394.7064,-1072.9966C2411.7225,-1062.3414 2430.5439,-1050.9231 2448.1948,-1041 2456.9952,-1036.0526 2466.4573,-1031.0269 2475.7226,-1026.261"/>
<polygon fill="#000000" stroke="#000000" points="2477.5663,-1029.25 2484.8905,-1021.5944 2474.3909,-1023.0116 2477.5663,-1029.25"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.09s)">
<text text-anchor="middle" x="2464.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.aeshashbody (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2391.6367,-1020.5 2231.6494,-1020.5 2231.6494,-978.5 2391.6367,-978.5 2391.6367,-1020.5"/>
<text text-anchor="middle" x="2311.6431" y="-1002.9" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="2311.6431" y="-985.9" font-family="Times,serif" font-size="17.00" fill="#000000">0.37s(4.10%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N22 -->
<g id="edge28" class="edge">
<title>N6&#45;&gt;N22</title>
<g id="a_edge28"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.35s)">
<path fill="none" stroke="#000000" d="M2328.9131,-1072.8977C2325.677,-1059.1443 2322.0438,-1043.7031 2318.9477,-1030.5449"/>
<polygon fill="#000000" stroke="#000000" points="2322.2952,-1029.49 2316.5978,-1020.5575 2315.4813,-1031.0934 2322.2952,-1029.49"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.35s)">
<text text-anchor="middle" x="2341.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.systemstack (1.01s)">
<polygon fill="#f8f8f8" stroke="#000000" points="486.8436,-419 356.4425,-419 356.4425,-369 486.8436,-369 486.8436,-419"/>
<text text-anchor="middle" x="421.6431" y="-403.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="421.6431" y="-389.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.12s(1.33%)</text>
<text text-anchor="middle" x="421.6431" y="-375.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.01s(11.18%)</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.deferproc.func1 (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="622.9745,-319 480.3116,-319 480.3116,-272 622.9745,-272 622.9745,-319"/>
<text text-anchor="middle" x="551.6431" y="-304.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="551.6431" y="-291.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(1.11%)</text>
<text text-anchor="middle" x="551.6431" y="-278.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.38s(4.21%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N20 -->
<g id="edge25" class="edge">
<title>N7&#45;&gt;N20</title>
<g id="a_edge25"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.38s)">
<path fill="none" stroke="#000000" d="M454.7839,-368.8894C472.2669,-355.6427 493.8353,-339.3005 512.1779,-325.4025"/>
<polygon fill="#000000" stroke="#000000" points="514.4956,-328.0376 520.3523,-319.2088 510.2681,-322.4583 514.4956,-328.0376"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.38s)">
<text text-anchor="middle" x="511.3672" y="-339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.deferreturn.func1 (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="119.4295,-314.5 -.1434,-314.5 -.1434,-276.5 119.4295,-276.5 119.4295,-314.5"/>
<text text-anchor="middle" x="59.6431" y="-302.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="59.6431" y="-292.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.11%)</text>
<text text-anchor="middle" x="59.6431" y="-282.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.15s(1.66%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N39 -->
<g id="edge49" class="edge">
<title>N7&#45;&gt;N39</title>
<g id="a_edge49"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.15s)">
<path fill="none" stroke="#000000" d="M356.4059,-379.0005C296.5447,-364.8492 205.6003,-342.3702 127.6431,-319 126.1849,-318.5629 124.7114,-318.1141 123.2274,-317.6558"/>
<polygon fill="#000000" stroke="#000000" points="123.9214,-314.204 113.3311,-314.5147 121.8036,-320.876 123.9214,-314.204"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.15s)">
<text text-anchor="middle" x="257.3672" y="-339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.(*mheap).alloc.func1 (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="248.4403,-313.5 136.8458,-313.5 136.8458,-277.5 248.4403,-277.5 248.4403,-313.5"/>
<text text-anchor="middle" x="192.6431" y="-297.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="192.6431" y="-289.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(0.66%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N62 -->
<g id="edge87" class="edge">
<title>N7&#45;&gt;N62</title>
<g id="a_edge87"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.06s)">
<path fill="none" stroke="#000000" d="M363.2642,-368.8894C326.4062,-353.0357 279.2405,-332.7483 243.8441,-317.5231"/>
<polygon fill="#000000" stroke="#000000" points="245.2217,-314.3057 234.6525,-313.5696 242.4558,-320.7361 245.2217,-314.3057"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.06s)">
<text text-anchor="middle" x="338.3672" y="-339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.semasleep.func1 (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="362.6157,-313.5 266.6704,-313.5 266.6704,-277.5 362.6157,-277.5 362.6157,-313.5"/>
<text text-anchor="middle" x="314.6431" y="-297.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep.func1</text>
<text text-anchor="middle" x="314.6431" y="-289.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.55%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N68 -->
<g id="edge92" class="edge">
<title>N7&#45;&gt;N68</title>
<g id="a_edge92"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.05s)">
<path fill="none" stroke="#000000" d="M394.3656,-368.8894C378.2962,-354.0966 358.0336,-335.4436 341.9578,-320.6449"/>
<polygon fill="#000000" stroke="#000000" points="344.1668,-317.9212 334.4391,-313.7234 339.4259,-323.0713 344.1668,-317.9212"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.05s)">
<text text-anchor="middle" x="391.3672" y="-339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.notewakeup (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="462.1795,-313.5 381.1066,-313.5 381.1066,-277.5 462.1795,-277.5 462.1795,-313.5"/>
<text text-anchor="middle" x="421.6431" y="-297.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notewakeup</text>
<text text-anchor="middle" x="421.6431" y="-289.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(1.55%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N79 -->
<g id="edge61" class="edge">
<title>N7&#45;&gt;N79</title>
<g id="a_edge61"><a xlink:title="runtime.systemstack ... runtime.notewakeup (0.12s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M421.6431,-368.8894C421.6431,-355.1725 421.6431,-338.1364 421.6431,-323.9319"/>
<polygon fill="#000000" stroke="#000000" points="425.1432,-323.7234 421.6431,-313.7234 418.1432,-323.7235 425.1432,-323.7234"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.systemstack ... runtime.notewakeup (0.12s)">
<text text-anchor="middle" x="438.3672" y="-339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N5 -->
<g id="edge12" class="edge">
<title>N8&#45;&gt;N5</title>
<g id="a_edge12"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.67s)">
<path fill="none" stroke="#000000" d="M915.6431,-1201.3166C915.6431,-1178.4376 915.6431,-1141.7248 915.6431,-1110 915.6431,-1110 915.6431,-1110 915.6431,-805.5 915.6431,-784.4266 915.6431,-760.778 915.6431,-742.1071"/>
<polygon fill="#000000" stroke="#000000" points="919.1432,-742.0209 915.6431,-732.021 912.1432,-742.021 919.1432,-742.0209"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.67s)">
<text text-anchor="middle" x="932.3672" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.67s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N5 -->
<g id="edge20" class="edge">
<title>N9&#45;&gt;N5</title>
<g id="a_edge20"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.47s)">
<path fill="none" stroke="#000000" d="M1034.9919,-781.7711C1013.2004,-768.3928 985.8098,-751.577 962.7666,-737.4303"/>
<polygon fill="#000000" stroke="#000000" points="964.522,-734.401 954.1687,-732.1518 960.8596,-740.3666 964.522,-734.401"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.47s)">
<text text-anchor="middle" x="1021.3672" y="-752.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.47s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.typedmemmove (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2072.2822,-730.5 1939.0039,-730.5 1939.0039,-686.5 2072.2822,-686.5 2072.2822,-730.5"/>
<text text-anchor="middle" x="2005.6431" y="-716.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="2005.6431" y="-704.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.78%)</text>
<text text-anchor="middle" x="2005.6431" y="-692.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.30s(3.32%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N28 -->
<g id="edge58" class="edge">
<title>N9&#45;&gt;N28</title>
<g id="a_edge58"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.13s)">
<path fill="none" stroke="#000000" d="M1125.4133,-800.1119C1280.9155,-783.9277 1744.4846,-735.6807 1928.8159,-716.496"/>
<polygon fill="#000000" stroke="#000000" points="1929.3832,-719.9559 1938.9671,-715.4394 1928.6585,-712.9935 1929.3832,-719.9559"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.13s)">
<text text-anchor="middle" x="1611.3672" y="-752.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="strings.ContainsRune (0.50s)">
<polygon fill="#f8f8f8" stroke="#000000" points="747.2292,-1133.5 620.0569,-1133.5 620.0569,-1086.5 747.2292,-1086.5 747.2292,-1133.5"/>
<text text-anchor="middle" x="683.6431" y="-1119.1" font-family="Times,serif" font-size="13.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="683.6431" y="-1106.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(1.11%)</text>
<text text-anchor="middle" x="683.6431" y="-1093.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.50s(5.54%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N16 -->
<g id="edge36" class="edge">
<title>N10&#45;&gt;N16</title>
<g id="a_edge36"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.22s)">
<path fill="none" stroke="#000000" d="M744.0043,-1201.3466C732.8903,-1184.5274 717.444,-1161.1521 704.9591,-1142.2583"/>
<polygon fill="#000000" stroke="#000000" points="707.7124,-1140.0762 699.2792,-1133.6627 701.8722,-1143.9354 707.7124,-1140.0762"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.22s)">
<text text-anchor="middle" x="745.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="strconv.Atoi (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="852.3264,-1130.5 764.9598,-1130.5 764.9598,-1089.5 852.3264,-1089.5 852.3264,-1130.5"/>
<text text-anchor="middle" x="808.6431" y="-1117.7" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="808.6431" y="-1106.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.22%)</text>
<text text-anchor="middle" x="808.6431" y="-1095.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.38s(4.21%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N21 -->
<g id="edge23" class="edge">
<title>N10&#45;&gt;N21</title>
<g id="a_edge23"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.38s)">
<path fill="none" stroke="#000000" d="M768.4023,-1201.3466C776.1335,-1183.7966 787.0094,-1159.1083 795.5057,-1139.8218"/>
<polygon fill="#000000" stroke="#000000" points="798.7531,-1141.1318 799.5817,-1130.5694 792.3472,-1138.3098 798.7531,-1141.1318"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.38s)">
<text text-anchor="middle" x="800.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N19 -->
<g id="edge96" class="edge">
<title>N11&#45;&gt;N19</title>
<g id="a_edge96"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.03s)">
<path fill="none" stroke="#000000" d="M1502.4585,-1201.276C1514.1816,-1189.8521 1529.1682,-1176.0481 1543.6431,-1165 1555.7017,-1155.7961 1562.4474,-1158.2326 1572.6431,-1147 1597.2973,-1119.8384 1578.3946,-1092.9232 1609.1948,-1073 1655.4478,-1043.0811 2050.135,-1062.9592 2104.6431,-1055 2129.1764,-1051.4177 2134.1821,-1045.0469 2158.6431,-1041 2265.0493,-1023.3957 2293.6527,-1036.6114 2400.6431,-1023 2412.6713,-1021.4698 2425.2758,-1019.5693 2437.7055,-1017.5169"/>
<polygon fill="#000000" stroke="#000000" points="2438.3444,-1020.9586 2447.622,-1015.8424 2437.1788,-1014.0563 2438.3444,-1020.9586"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.03s)">
<text text-anchor="middle" x="1625.3672" y="-1105.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="main.(*machine).executeSubtract (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1379.4664,-1130.5 1215.8197,-1130.5 1215.8197,-1089.5 1379.4664,-1089.5 1379.4664,-1130.5"/>
<text text-anchor="middle" x="1297.6431" y="-1117.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="1297.6431" y="-1106.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.44%)</text>
<text text-anchor="middle" x="1297.6431" y="-1095.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.33s(3.65%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N26 -->
<g id="edge30" class="edge">
<title>N11&#45;&gt;N26</title>
<g id="a_edge30"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.33s)">
<path fill="none" stroke="#000000" d="M1444.9244,-1201.3466C1414.6898,-1182.5946 1371.3153,-1155.6929 1339.4651,-1135.9388"/>
<polygon fill="#000000" stroke="#000000" points="1341.1508,-1132.8658 1330.8078,-1130.5694 1337.4613,-1138.8146 1341.1508,-1132.8658"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.33s)">
<text text-anchor="middle" x="1421.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="main.(*machine).executeMultiply (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1563.3143,-1130.5 1397.9718,-1130.5 1397.9718,-1089.5 1563.3143,-1089.5 1563.3143,-1130.5"/>
<text text-anchor="middle" x="1480.6431" y="-1117.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="1480.6431" y="-1106.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.22%)</text>
<text text-anchor="middle" x="1480.6431" y="-1095.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.18s(1.99%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N37 -->
<g id="edge45" class="edge">
<title>N11&#45;&gt;N37</title>
<g id="a_edge45"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.18s)">
<path fill="none" stroke="#000000" d="M1480.6431,-1201.3466C1480.6431,-1184.037 1480.6431,-1159.7834 1480.6431,-1140.6174"/>
<polygon fill="#000000" stroke="#000000" points="1484.1432,-1140.5694 1480.6431,-1130.5694 1477.1432,-1140.5694 1484.1432,-1140.5694"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.18s)">
<text text-anchor="middle" x="1497.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N42 -->
<g id="edge105" class="edge">
<title>N11&#45;&gt;N42</title>
<g id="a_edge105"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.eqstring (0.01s)">
<path fill="none" stroke="#000000" d="M1510.917,-1201.2143C1532.0418,-1185.8084 1557.4427,-1167.6271 1563.1948,-1165 1593.767,-1151.0374 1605.2628,-1159.0369 1636.6431,-1147 1646.7414,-1143.1265 1657.2283,-1138.0863 1666.8866,-1132.979"/>
<polygon fill="#000000" stroke="#000000" points="1668.7437,-1135.9531 1675.853,-1128.0976 1665.3966,-1129.8051 1668.7437,-1135.9531"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.eqstring (0.01s)">
<text text-anchor="middle" x="1579.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N16 -->
<g id="edge33" class="edge">
<title>N12&#45;&gt;N16</title>
<g id="a_edge33"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.28s)">
<path fill="none" stroke="#000000" d="M640.8983,-1199.9944C643.6777,-1189.1332 647.4951,-1176.1914 652.1948,-1165 655.339,-1157.5128 659.2852,-1149.7697 663.3093,-1142.5411"/>
<polygon fill="#000000" stroke="#000000" points="666.4333,-1144.1299 668.3937,-1133.718 660.3682,-1140.6348 666.4333,-1144.1299"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.28s)">
<text text-anchor="middle" x="669.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="strconv.ParseFloat (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="601.948,-1128 527.3381,-1128 527.3381,-1092 601.948,-1092 601.948,-1128"/>
<text text-anchor="middle" x="564.6431" y="-1111.6" font-family="Times,serif" font-size="8.00" fill="#000000">strconv.ParseFloat</text>
<text text-anchor="middle" x="564.6431" y="-1103.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.20s(2.21%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N76 -->
<g id="edge40" class="edge">
<title>N12&#45;&gt;N76</title>
<g id="a_edge40"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (0.20s)">
<path fill="none" stroke="#000000" d="M620.9318,-1199.9827C609.4306,-1181.597 593.4346,-1156.0259 581.433,-1136.8403"/>
<polygon fill="#000000" stroke="#000000" points="584.3359,-1134.8811 576.0652,-1128.2594 578.4014,-1138.5935 584.3359,-1134.8811"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (0.20s)">
<text text-anchor="middle" x="623.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N6 -->
<g id="edge35" class="edge">
<title>N13&#45;&gt;N6</title>
<g id="a_edge35"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.27s)">
<path fill="none" stroke="#000000" d="M2462.0313,-1199.9977C2448.9711,-1193.7477 2435.3309,-1186.6004 2423.1948,-1179 2411.2226,-1171.5022 2399.0202,-1162.5706 2387.722,-1153.6614"/>
<polygon fill="#000000" stroke="#000000" points="2389.6606,-1150.7294 2379.6712,-1147.199 2385.2787,-1156.1883 2389.6606,-1150.7294"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.27s)">
<text text-anchor="middle" x="2439.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="main.isPrefixChar (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2641.6373,-1128 2523.6489,-1128 2523.6489,-1092 2641.6373,-1092 2641.6373,-1128"/>
<text text-anchor="middle" x="2582.6431" y="-1112.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.isPrefixChar</text>
<text text-anchor="middle" x="2582.6431" y="-1098.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.16s(1.77%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N38 -->
<g id="edge46" class="edge">
<title>N13&#45;&gt;N38</title>
<g id="a_edge46"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.16s)">
<path fill="none" stroke="#000000" d="M2531.1111,-1199.9827C2541.5927,-1181.6802 2556.1522,-1156.2572 2567.1226,-1137.1011"/>
<polygon fill="#000000" stroke="#000000" points="2570.2537,-1138.6765 2572.1862,-1128.2594 2564.1793,-1135.1977 2570.2537,-1138.6765"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.16s)">
<text text-anchor="middle" x="2566.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.stringiter2 (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2765.2921,-1128 2659.994,-1128 2659.994,-1092 2765.2921,-1092 2765.2921,-1128"/>
<text text-anchor="middle" x="2712.6431" y="-1112.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.stringiter2</text>
<text text-anchor="middle" x="2712.6431" y="-1100.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.78%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N57 -->
<g id="edge94" class="edge">
<title>N13&#45;&gt;N57</title>
<g id="a_edge94"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.04s)">
<path fill="none" stroke="#000000" d="M2559.0793,-1199.8938C2585.3715,-1184.8589 2620.0759,-1164.9102 2650.6431,-1147 2658.1055,-1142.6275 2666.0494,-1137.9241 2673.673,-1133.3859"/>
<polygon fill="#000000" stroke="#000000" points="2675.6321,-1136.2927 2682.4273,-1128.1639 2672.0461,-1130.281 2675.6321,-1136.2927"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.04s)">
<text text-anchor="middle" x="2634.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.mapassign1 (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2075.2095,-1133.5 1954.0766,-1133.5 1954.0766,-1086.5 2075.2095,-1086.5 2075.2095,-1133.5"/>
<text text-anchor="middle" x="2014.6431" y="-1119.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="2014.6431" y="-1106.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.09s(1%)</text>
<text text-anchor="middle" x="2014.6431" y="-1093.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.35s(3.88%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N24 -->
<g id="edge27" class="edge">
<title>N14&#45;&gt;N24</title>
<g id="a_edge27"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.35s)">
<path fill="none" stroke="#000000" d="M1827.1166,-1199.8397C1859.4978,-1184.8688 1902.1118,-1165.0086 1939.6431,-1147 1945.6237,-1144.1303 1951.8583,-1141.1065 1958.066,-1138.0749"/>
<polygon fill="#000000" stroke="#000000" points="1959.6683,-1141.1874 1967.1087,-1133.6448 1956.5886,-1134.9012 1959.6683,-1141.1874"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.35s)">
<text text-anchor="middle" x="1915.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N41 -->
<g id="edge75" class="edge">
<title>N14&#45;&gt;N41</title>
<g id="a_edge75"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.07s)">
<path fill="none" stroke="#000000" d="M1800.4217,-1199.7826C1814.2646,-1185.5017 1831.0146,-1166.3767 1842.6431,-1147 1860.7378,-1116.8483 1852.1809,-1102.9281 1870.6431,-1073 1886.4967,-1047.3005 1903.9556,-1050.4013 1916.6431,-1023 1944.8532,-962.074 1947.0022,-881.8055 1945.6138,-837.8035"/>
<polygon fill="#000000" stroke="#000000" points="1949.1063,-837.5429 1945.2109,-827.6902 1942.1119,-837.8216 1949.1063,-837.5429"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.07s)">
<text text-anchor="middle" x="1949.3672" y="-995.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="main.(*machine).popValue (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1907.2578,-1017.5 1740.0284,-1017.5 1740.0284,-981.5 1907.2578,-981.5 1907.2578,-1017.5"/>
<text text-anchor="middle" x="1823.6431" y="-1002.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="1823.6431" y="-988.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.13s(1.44%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N45 -->
<g id="edge98" class="edge">
<title>N14&#45;&gt;N45</title>
<g id="a_edge98"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M1780.6892,-1199.9514C1789.6026,-1158.3556 1808.0923,-1072.0704 1817.6431,-1027.4999"/>
<polygon fill="#000000" stroke="#000000" points="1821.0852,-1028.1407 1819.7582,-1017.6293 1814.2405,-1026.6739 1821.0852,-1028.1407"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="1823.3672" y="-1105.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N7 -->
<g id="edge24" class="edge">
<title>N15&#45;&gt;N7</title>
<g id="a_edge24"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.38s)">
<path fill="none" stroke="#000000" d="M473.8863,-1199.7338C450.0989,-1178.9831 421.6431,-1146.5264 421.6431,-1110 421.6431,-1110 421.6431,-1110 421.6431,-490 421.6431,-469.9375 421.6431,-447.5166 421.6431,-429.391"/>
<polygon fill="#000000" stroke="#000000" points="425.1432,-429.2656 421.6431,-419.2656 418.1432,-429.2657 425.1432,-429.2656"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.38s)">
<text text-anchor="middle" x="438.3672" y="-801.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="strings.IndexRune (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="739.104,-1023 628.1821,-1023 628.1821,-976 739.104,-976 739.104,-1023"/>
<text text-anchor="middle" x="683.6431" y="-1008.6" font-family="Times,serif" font-size="13.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="683.6431" y="-995.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(1.22%)</text>
<text text-anchor="middle" x="683.6431" y="-982.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.40s(4.43%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N18 -->
<g id="edge22" class="edge">
<title>N16&#45;&gt;N18</title>
<g id="a_edge22"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.40s)">
<path fill="none" stroke="#000000" d="M683.6431,-1086.295C683.6431,-1070.8554 683.6431,-1050.4732 683.6431,-1033.3403"/>
<polygon fill="#000000" stroke="#000000" points="687.1432,-1033.1658 683.6431,-1023.1658 680.1432,-1033.1659 687.1432,-1033.1658"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.40s)">
<text text-anchor="middle" x="700.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N7 -->
<g id="edge48" class="edge">
<title>N17&#45;&gt;N7</title>
<g id="a_edge48"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.15s)">
<path fill="none" stroke="#000000" d="M2171.3787,-1196.8217C2165.1342,-1191.7779 2159.6363,-1185.8756 2155.6431,-1179 2103.6353,-1089.4525 2203.6431,-1054.5546 2203.6431,-951 2203.6431,-951 2203.6431,-951 2203.6431,-490 2203.6431,-446.5783 836.3821,-405.5686 497.1235,-396.0612"/>
<polygon fill="#000000" stroke="#000000" points="497.0068,-392.5567 486.9129,-395.7759 496.8112,-399.554 497.0068,-392.5567"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.15s)">
<text text-anchor="middle" x="2220.3672" y="-801.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.memmove (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2310.4481,-217 2172.838,-217 2172.838,-177 2310.4481,-177 2310.4481,-217"/>
<text text-anchor="middle" x="2241.6431" y="-200.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="2241.6431" y="-184.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.26s(2.88%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N30 -->
<g id="edge76" class="edge">
<title>N17&#45;&gt;N30</title>
<g id="a_edge76"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.07s)">
<path fill="none" stroke="#000000" d="M2222.89,-1196.7372C2218.6718,-1186.6817 2213.6473,-1175.2163 2208.6431,-1165 2204.6173,-1156.7813 2200.9387,-1155.8591 2198.6431,-1147 2190.3932,-1115.1626 2176.7005,-1097.499 2198.6431,-1073 2222.9564,-1045.8539 2328.0569,-1069.1428 2361.6431,-1055 2410.4194,-1034.4608 2419.6431,-1003.9244 2419.6431,-951 2419.6431,-951 2419.6431,-951 2419.6431,-295.5 2419.6431,-246.7625 2367.9235,-221.9474 2320.2417,-209.4258"/>
<polygon fill="#000000" stroke="#000000" points="2321.0102,-206.0105 2310.4625,-207.0091 2319.3307,-212.806 2321.0102,-206.0105"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.07s)">
<text text-anchor="middle" x="2436.3672" y="-704.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.indexbytebody (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="761.1994,-921.5 606.0868,-921.5 606.0868,-883.5 761.1994,-883.5 761.1994,-921.5"/>
<text text-anchor="middle" x="683.6431" y="-905.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.indexbytebody</text>
<text text-anchor="middle" x="683.6431" y="-890.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.22s(2.44%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N31 -->
<g id="edge39" class="edge">
<title>N18&#45;&gt;N31</title>
<g id="a_edge39"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.22s)">
<path fill="none" stroke="#000000" d="M683.6431,-975.5225C683.6431,-962.2893 683.6431,-945.7508 683.6431,-931.7611"/>
<polygon fill="#000000" stroke="#000000" points="687.1432,-931.6568 683.6431,-921.6568 680.1432,-931.6569 687.1432,-931.6568"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.22s)">
<text text-anchor="middle" x="700.3672" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="strings.IndexByte (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="588.1333,-920.5 487.1528,-920.5 487.1528,-884.5 588.1333,-884.5 588.1333,-920.5"/>
<text text-anchor="middle" x="537.6431" y="-904.9" font-family="Times,serif" font-size="12.00" fill="#000000">strings.IndexByte</text>
<text text-anchor="middle" x="537.6431" y="-892.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.78%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N58 -->
<g id="edge77" class="edge">
<title>N18&#45;&gt;N58</title>
<g id="a_edge77"><a xlink:title="strings.IndexRune &#45;&gt; strings.IndexByte (0.07s)">
<path fill="none" stroke="#000000" d="M647.9274,-975.7711C625.171,-960.6521 595.8067,-941.143 573.1005,-926.0573"/>
<polygon fill="#000000" stroke="#000000" points="575.0179,-923.1292 564.7517,-920.5105 571.1441,-928.9597 575.0179,-923.1292"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; strings.IndexByte (0.07s)">
<text text-anchor="middle" x="636.3672" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N30 -->
<g id="edge86" class="edge">
<title>N20&#45;&gt;N30</title>
<g id="a_edge86"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.06s)">
<path fill="none" stroke="#000000" d="M622.9121,-291.3462C896.2037,-275.4176 1876.2286,-218.2978 2162.5583,-201.6094"/>
<polygon fill="#000000" stroke="#000000" points="2163.0737,-205.0854 2172.8531,-201.0094 2162.6664,-198.0972 2163.0737,-205.0854"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.06s)">
<text text-anchor="middle" x="1514.3672" y="-242.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.newdefer (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="612.8444,-216 490.4417,-216 490.4417,-178 612.8444,-178 612.8444,-216"/>
<text text-anchor="middle" x="551.6431" y="-200" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="551.6431" y="-185" font-family="Times,serif" font-size="15.00" fill="#000000">0.22s(2.44%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N32 -->
<g id="edge37" class="edge">
<title>N20&#45;&gt;N32</title>
<g id="a_edge37"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.22s)">
<path fill="none" stroke="#000000" d="M551.6431,-271.9068C551.6431,-258.1672 551.6431,-240.7315 551.6431,-226.1395"/>
<polygon fill="#000000" stroke="#000000" points="555.1432,-226.1104 551.6431,-216.1104 548.1432,-226.1104 555.1432,-226.1104"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.22s)">
<text text-anchor="middle" x="568.3672" y="-242.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="strconv.ParseInt (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="870.298,-1021.5 776.9881,-1021.5 776.9881,-977.5 870.298,-977.5 870.298,-1021.5"/>
<text text-anchor="middle" x="823.6431" y="-1007.9" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="823.6431" y="-995.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.66%)</text>
<text text-anchor="middle" x="823.6431" y="-983.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.36s(3.99%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N23 -->
<g id="edge26" class="edge">
<title>N21&#45;&gt;N23</title>
<g id="a_edge26"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.36s)">
<path fill="none" stroke="#000000" d="M811.4293,-1089.4748C813.6209,-1073.3301 816.7155,-1050.5329 819.2413,-1031.9261"/>
<polygon fill="#000000" stroke="#000000" points="822.7371,-1032.1935 820.6141,-1021.8135 815.8007,-1031.2518 822.7371,-1032.1935"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.36s)">
<text text-anchor="middle" x="835.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="strconv.ParseUint (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="887.5889,-926 779.6973,-926 779.6973,-879 887.5889,-879 887.5889,-926"/>
<text text-anchor="middle" x="833.6431" y="-911.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="833.6431" y="-898.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.08s(0.89%)</text>
<text text-anchor="middle" x="833.6431" y="-885.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.30s(3.32%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N29 -->
<g id="edge32" class="edge">
<title>N23&#45;&gt;N29</title>
<g id="a_edge32"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.30s)">
<path fill="none" stroke="#000000" d="M825.9122,-977.4892C827.1704,-965.2845 828.7615,-949.8516 830.1726,-936.1634"/>
<polygon fill="#000000" stroke="#000000" points="833.6641,-936.4246 831.2082,-926.1184 826.7011,-935.7067 833.6641,-936.4246"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.30s)">
<text text-anchor="middle" x="846.3672" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N22 -->
<g id="edge104" class="edge">
<title>N24&#45;&gt;N22</title>
<g id="a_edge104"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.02s)">
<path fill="none" stroke="#000000" d="M2075.4621,-1087.372C2124.8867,-1068.9834 2194.4999,-1043.0836 2245.3438,-1024.1669"/>
<polygon fill="#000000" stroke="#000000" points="2246.7781,-1027.3677 2254.93,-1020.6003 2244.3372,-1020.8071 2246.7781,-1027.3677"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.02s)">
<text text-anchor="middle" x="2214.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N28 -->
<g id="edge70" class="edge">
<title>N24&#45;&gt;N28</title>
<g id="a_edge70"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.09s)">
<path fill="none" stroke="#000000" d="M2075.2042,-1086.7495C2102.5057,-1072.775 2131.8844,-1051.9827 2146.6431,-1023 2156.122,-1004.3856 2151.6601,-996.2775 2146.6431,-976 2145.8509,-972.7983 2059.3426,-809.6474 2022.2373,-739.7471"/>
<polygon fill="#000000" stroke="#000000" points="2025.124,-737.7204 2017.3435,-730.5291 2018.9413,-741.0028 2025.124,-737.7204"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.09s)">
<text text-anchor="middle" x="2136.3672" y="-898.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.newarray (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2137.413,-1017.5 2063.8732,-1017.5 2063.8732,-981.5 2137.413,-981.5 2137.413,-1017.5"/>
<text text-anchor="middle" x="2100.6431" y="-1001.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="2100.6431" y="-993.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(1.55%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N78 -->
<g id="edge52" class="edge">
<title>N24&#45;&gt;N78</title>
<g id="a_edge52"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.14s)">
<path fill="none" stroke="#000000" d="M2033.0922,-1086.295C2046.9594,-1068.4773 2065.9495,-1044.0772 2080.2639,-1025.6849"/>
<polygon fill="#000000" stroke="#000000" points="2083.0967,-1027.7436 2086.4766,-1017.7023 2077.5726,-1023.4443 2083.0967,-1027.7436"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.14s)">
<text text-anchor="middle" x="2084.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.assertI2I (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1587.2824,-1021.5 1490.0037,-1021.5 1490.0037,-977.5 1587.2824,-977.5 1587.2824,-1021.5"/>
<text text-anchor="middle" x="1538.6431" y="-1007.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="1538.6431" y="-995.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.55%)</text>
<text text-anchor="middle" x="1538.6431" y="-983.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.14s(1.55%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N40 -->
<g id="edge57" class="edge">
<title>N26&#45;&gt;N40</title>
<g id="a_edge57"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.13s)">
<path fill="none" stroke="#000000" d="M1338.3941,-1089.2635C1357.2824,-1079.3389 1379.8736,-1067.0194 1399.6431,-1055 1409.0867,-1049.2585 1410.2024,-1045.7223 1420.1948,-1041 1443.4116,-1030.028 1452.9019,-1031.8846 1480.3675,-1023.1927"/>
<polygon fill="#000000" stroke="#000000" points="1481.5924,-1026.4735 1489.9566,-1019.9703 1479.3626,-1019.8381 1481.5924,-1026.4735"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.13s)">
<text text-anchor="middle" x="1436.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N45 -->
<g id="edge97" class="edge">
<title>N26&#45;&gt;N45</title>
<g id="a_edge97"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M1340.2506,-1089.4734C1355.221,-1083.1297 1372.3705,-1076.8137 1388.6431,-1073 1493.6504,-1048.3899 1524.7182,-1075.3008 1630.6431,-1055 1651.0275,-1051.0933 1655.2974,-1046.9059 1675.1948,-1041 1698.6524,-1034.0374 1724.2913,-1026.7541 1747.5607,-1020.2676"/>
<polygon fill="#000000" stroke="#000000" points="1748.6776,-1023.5899 1757.375,-1017.5397 1746.8029,-1016.8456 1748.6776,-1023.5899"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="1691.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="main.(*Integer).Add (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1367.3973,-1017.5 1285.8888,-1017.5 1285.8888,-981.5 1367.3973,-981.5 1367.3973,-1017.5"/>
<text text-anchor="middle" x="1326.6431" y="-1001.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="1326.6431" y="-993.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(0.66%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N59 -->
<g id="edge81" class="edge">
<title>N26&#45;&gt;N59</title>
<g id="a_edge81"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.06s)">
<path fill="none" stroke="#000000" d="M1298.3976,-1089.4033C1299.3411,-1075.4909 1301.4571,-1056.8438 1306.1948,-1041 1307.6157,-1036.2481 1309.5409,-1031.3741 1311.6444,-1026.7133"/>
<polygon fill="#000000" stroke="#000000" points="1314.8738,-1028.076 1316.1081,-1017.5533 1308.5811,-1025.0095 1314.8738,-1028.076"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.06s)">
<text text-anchor="middle" x="1323.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="main.(*Integer).Negate (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1198.4296,-1018.5 1088.8566,-1018.5 1088.8566,-980.5 1198.4296,-980.5 1198.4296,-1018.5"/>
<text text-anchor="middle" x="1143.6431" y="-1006.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="1143.6431" y="-996.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.11%)</text>
<text text-anchor="middle" x="1143.6431" y="-986.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.06s(0.66%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N60 -->
<g id="edge82" class="edge">
<title>N26&#45;&gt;N60</title>
<g id="a_edge82"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.06s)">
<path fill="none" stroke="#000000" d="M1269.0378,-1089.4748C1243.4183,-1071.092 1205.7788,-1044.0844 1178.4264,-1024.4582"/>
<polygon fill="#000000" stroke="#000000" points="1180.458,-1021.6081 1170.2927,-1018.622 1176.3771,-1027.2956 1180.458,-1021.6081"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.06s)">
<text text-anchor="middle" x="1237.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.convI2I (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1472.3264,-1020 1384.9598,-1020 1384.9598,-979 1472.3264,-979 1472.3264,-1020"/>
<text text-anchor="middle" x="1428.6431" y="-1007.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="1428.6431" y="-996.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.22%)</text>
<text text-anchor="middle" x="1428.6431" y="-985.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.05s(0.55%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N65 -->
<g id="edge108" class="edge">
<title>N26&#45;&gt;N65</title>
<g id="a_edge108"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.convI2I (0.01s)">
<path fill="none" stroke="#000000" d="M1316.1454,-1089.2713C1329.4051,-1074.9591 1348.0565,-1055.8971 1366.1948,-1041 1372.4899,-1035.8299 1379.4388,-1030.7076 1386.3459,-1025.9187"/>
<polygon fill="#000000" stroke="#000000" points="1388.6971,-1028.5539 1395.02,-1020.0526 1384.7757,-1022.7554 1388.6971,-1028.5539"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.convI2I (0.01s)">
<text text-anchor="middle" x="1382.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N6 -->
<g id="edge71" class="edge">
<title>N27&#45;&gt;N6</title>
<g id="a_edge71"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.08s)">
<path fill="none" stroke="#000000" d="M2096.0576,-1198.4514C2134.4303,-1184.4021 2183.2273,-1166.5361 2226.9057,-1150.5442"/>
<polygon fill="#000000" stroke="#000000" points="2228.2445,-1153.7813 2236.4316,-1147.0565 2225.8378,-1147.208 2228.2445,-1153.7813"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.08s)">
<text text-anchor="middle" x="2199.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N41 -->
<g id="edge95" class="edge">
<title>N27&#45;&gt;N41</title>
<g id="a_edge95"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M2052.9181,-1198.3273C2065.0399,-1184.4525 2078.2834,-1166.1794 2084.6431,-1147 2094.9944,-1115.7825 2094.0596,-1104.512 2084.6431,-1073 2079.7725,-1056.7009 2076.7026,-1051.901 2063.6431,-1041 2047.9114,-1027.8686 2035.2545,-1037.908 2021.1948,-1023 2017.8634,-1019.4676 1975.1361,-896.6488 1954.5663,-837.1646"/>
<polygon fill="#000000" stroke="#000000" points="1957.805,-835.8206 1951.2308,-827.5122 1951.1889,-838.107 1957.805,-835.8206"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="2037.3672" y="-995.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N45 -->
<g id="edge83" class="edge">
<title>N27&#45;&gt;N45</title>
<g id="a_edge83"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.06s)">
<path fill="none" stroke="#000000" d="M1945.4497,-1198.4729C1935.0442,-1193.1055 1925.0985,-1186.6746 1916.6431,-1179 1870.2417,-1136.8837 1843.3273,-1066.2016 1831.2886,-1027.2859"/>
<polygon fill="#000000" stroke="#000000" points="1834.6286,-1026.2383 1828.4143,-1017.6573 1827.9211,-1028.2407 1834.6286,-1026.2383"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.06s)">
<text text-anchor="middle" x="1903.3672" y="-1105.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N30 -->
<g id="edge59" class="edge">
<title>N28&#45;&gt;N30</title>
<g id="a_edge59"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.13s)">
<path fill="none" stroke="#000000" d="M2072.3249,-691.1449C2142.1128,-670.9708 2241.6431,-635.6066 2241.6431,-598 2241.6431,-598 2241.6431,-598 2241.6431,-295.5 2241.6431,-272.7026 2241.6431,-246.9373 2241.6431,-227.4775"/>
<polygon fill="#000000" stroke="#000000" points="2245.1432,-227.374 2241.6431,-217.374 2238.1432,-227.374 2245.1432,-227.374"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.13s)">
<text text-anchor="middle" x="2258.3672" y="-439.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.heapBitsBulkBarrier (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2175.4143,-616 2007.8719,-616 2007.8719,-580 2175.4143,-580 2175.4143,-616"/>
<text text-anchor="middle" x="2091.6431" y="-600.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.heapBitsBulkBarrier</text>
<text text-anchor="middle" x="2091.6431" y="-587.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(1.11%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N49 -->
<g id="edge64" class="edge">
<title>N28&#45;&gt;N49</title>
<g id="a_edge64"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.10s)">
<path fill="none" stroke="#000000" d="M2022.8398,-686.4043C2036.845,-668.4092 2056.6454,-642.9679 2071.4117,-623.995"/>
<polygon fill="#000000" stroke="#000000" points="2074.2214,-626.0833 2077.6013,-616.0421 2068.6973,-621.784 2074.2214,-626.0833"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.10s)">
<text text-anchor="middle" x="2065.3672" y="-655.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N5 -->
<g id="edge38" class="edge">
<title>N29&#45;&gt;N5</title>
<g id="a_edge38"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.22s)">
<path fill="none" stroke="#000000" d="M838.3014,-878.6758C843.6536,-853.8292 853.618,-814.1018 868.1948,-782 874.6747,-767.7298 883.6397,-753.022 892.0337,-740.5479"/>
<polygon fill="#000000" stroke="#000000" points="894.9239,-742.5219 897.7161,-732.3016 889.1599,-738.5499 894.9239,-742.5219"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.22s)">
<text text-anchor="middle" x="885.3672" y="-801.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="strconv.atof64 (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="608.3264,-1020 520.9598,-1020 520.9598,-979 608.3264,-979 608.3264,-1020"/>
<text text-anchor="middle" x="564.6431" y="-1007.2" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="564.6431" y="-996.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.44%)</text>
<text text-anchor="middle" x="564.6431" y="-985.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.20s(2.21%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N5 -->
<g id="edge62" class="edge">
<title>N33&#45;&gt;N5</title>
<g id="a_edge62"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.11s)">
<path fill="none" stroke="#000000" d="M528.2031,-978.9742C509.6626,-966.3435 488.9178,-948.2972 478.6431,-926 469.9009,-907.0285 466.8586,-896.2474 478.6431,-879 521.9023,-815.6868 737.9886,-753.2598 849.2264,-724.6755"/>
<polygon fill="#000000" stroke="#000000" points="850.1798,-728.0444 859.004,-722.1808 848.4491,-721.2617 850.1798,-728.0444"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.11s)">
<text text-anchor="middle" x="530.1108" y="-849.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="unicode.IsSpace (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2883.9733,-1128 2783.3128,-1128 2783.3128,-1092 2883.9733,-1092 2883.9733,-1128"/>
<text text-anchor="middle" x="2833.6431" y="-1112.6" font-family="Times,serif" font-size="13.00" fill="#000000">unicode.IsSpace</text>
<text text-anchor="middle" x="2833.6431" y="-1099.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.09s(1%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N54 -->
<g id="edge67" class="edge">
<title>N35&#45;&gt;N54</title>
<g id="a_edge67"><a xlink:title="main.wordIsWhitespace &#45;&gt; unicode.IsSpace (0.09s)">
<path fill="none" stroke="#000000" d="M2720.9688,-1201.3466C2744.5617,-1182.2196 2778.6129,-1154.6137 2803.0991,-1134.7625"/>
<polygon fill="#000000" stroke="#000000" points="2805.4437,-1137.3674 2811.0074,-1128.351 2801.0353,-1131.9299 2805.4437,-1137.3674"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; unicode.IsSpace (0.09s)">
<text text-anchor="middle" x="2780.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N57 -->
<g id="edge100" class="edge">
<title>N35&#45;&gt;N57</title>
<g id="a_edge100"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.03s)">
<path fill="none" stroke="#000000" d="M2697.3516,-1201.3466C2700.3585,-1183.3838 2704.6174,-1157.943 2707.8772,-1138.47"/>
<polygon fill="#000000" stroke="#000000" points="2711.3719,-1138.7917 2709.5711,-1128.351 2704.468,-1137.6359 2711.3719,-1138.7917"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.03s)">
<text text-anchor="middle" x="2719.3672" y="-1167.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N7 -->
<g id="edge47" class="edge">
<title>N36&#45;&gt;N7</title>
<g id="a_edge47"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.15s)">
<path fill="none" stroke="#000000" d="M916.8738,-470.9044C914.1001,-470.2333 911.3478,-469.5948 908.6431,-469 764.5493,-437.3137 593.574,-414.2813 497.336,-402.624"/>
<polygon fill="#000000" stroke="#000000" points="497.4651,-399.1144 487.1187,-401.3951 496.6292,-406.0643 497.4651,-399.1144"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.15s)">
<text text-anchor="middle" x="833.3672" y="-439.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N40 -->
<g id="edge107" class="edge">
<title>N37&#45;&gt;N40</title>
<g id="a_edge107"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.01s)">
<path fill="none" stroke="#000000" d="M1491.4165,-1089.4748C1500.0483,-1073.0298 1512.303,-1049.6824 1522.1658,-1030.892"/>
<polygon fill="#000000" stroke="#000000" points="1525.3824,-1032.2946 1526.931,-1021.8135 1519.1843,-1029.0413 1525.3824,-1032.2946"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.01s)">
<text text-anchor="middle" x="1532.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N45 -->
<g id="edge106" class="edge">
<title>N37&#45;&gt;N45</title>
<g id="a_edge106"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M1528.2841,-1089.3079C1543.7807,-1083.262 1561.221,-1077.1666 1577.6431,-1073 1636.315,-1058.1136 1654.7817,-1072.7782 1712.6431,-1055 1726.4459,-1050.759 1756.2249,-1035.744 1781.4662,-1022.3999"/>
<polygon fill="#000000" stroke="#000000" points="1783.3376,-1025.3689 1790.5223,-1017.5823 1780.05,-1019.1889 1783.3376,-1025.3689"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="1758.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="main.(*Integer).Multiply (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1721.6187,-1018.5 1605.6675,-1018.5 1605.6675,-980.5 1721.6187,-980.5 1721.6187,-1018.5"/>
<text text-anchor="middle" x="1663.6431" y="-1006.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="1663.6431" y="-996.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.11%)</text>
<text text-anchor="middle" x="1663.6431" y="-986.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.10s(1.11%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N48 -->
<g id="edge63" class="edge">
<title>N37&#45;&gt;N48</title>
<g id="a_edge63"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*Integer).Multiply (0.10s)">
<path fill="none" stroke="#000000" d="M1514.6351,-1089.4748C1545.3414,-1070.9335 1590.5787,-1043.6181 1623.1475,-1023.9523"/>
<polygon fill="#000000" stroke="#000000" points="1625.2237,-1026.7872 1631.975,-1018.622 1621.6054,-1020.7949 1625.2237,-1026.7872"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*Integer).Multiply (0.10s)">
<text text-anchor="middle" x="1610.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N65 -->
<g id="edge93" class="edge">
<title>N37&#45;&gt;N65</title>
<g id="a_edge93"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.convI2I (0.04s)">
<path fill="none" stroke="#000000" d="M1475.4768,-1089.4581C1471.5421,-1075.403 1465.47,-1056.5687 1457.6431,-1041 1455.5889,-1036.9139 1453.1717,-1032.7745 1450.624,-1028.7721"/>
<polygon fill="#000000" stroke="#000000" points="1453.4134,-1026.648 1444.9283,-1020.3033 1447.6048,-1030.5545 1453.4134,-1026.648"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.convI2I (0.04s)">
<text text-anchor="middle" x="1479.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.freedefer (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="116.1928,-222 3.0933,-222 3.0933,-172 116.1928,-172 116.1928,-222"/>
<text text-anchor="middle" x="59.6431" y="-206.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="59.6431" y="-192.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.12s(1.33%)</text>
<text text-anchor="middle" x="59.6431" y="-178.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.14s(1.55%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N43 -->
<g id="edge50" class="edge">
<title>N39&#45;&gt;N43</title>
<g id="a_edge50"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.14s)">
<path fill="none" stroke="#000000" d="M59.6431,-276.0396C59.6431,-263.5876 59.6431,-247.0661 59.6431,-232.3486"/>
<polygon fill="#000000" stroke="#000000" points="63.1432,-232.0348 59.6431,-222.0348 56.1432,-232.0349 63.1432,-232.0348"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.14s)">
<text text-anchor="middle" x="76.3672" y="-242.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.getitab (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1534.7686,-926 1434.5175,-926 1434.5175,-879 1534.7686,-879 1534.7686,-926"/>
<text text-anchor="middle" x="1484.6431" y="-911.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="1484.6431" y="-898.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.08s(0.89%)</text>
<text text-anchor="middle" x="1484.6431" y="-885.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.12s(1.33%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N47 -->
<g id="edge68" class="edge">
<title>N40&#45;&gt;N47</title>
<g id="a_edge68"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.09s)">
<path fill="none" stroke="#000000" d="M1526.3896,-977.4892C1519.3954,-964.9256 1510.4968,-948.941 1502.7137,-934.9603"/>
<polygon fill="#000000" stroke="#000000" points="1505.7136,-933.1533 1497.7914,-926.1184 1499.5975,-936.5582 1505.7136,-933.1533"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.09s)">
<text text-anchor="middle" x="1531.3672" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N28 -->
<g id="edge72" class="edge">
<title>N41&#45;&gt;N28</title>
<g id="a_edge72"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.08s)">
<path fill="none" stroke="#000000" d="M1957.7118,-783.4892C1966.0554,-770.4356 1976.7594,-753.689 1985.9347,-739.334"/>
<polygon fill="#000000" stroke="#000000" points="1988.9788,-741.0703 1991.4154,-730.7595 1983.0807,-737.3004 1988.9788,-741.0703"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.08s)">
<text text-anchor="middle" x="1994.3672" y="-752.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.mach_semaphore_signal (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="522.5889,-36 320.6973,-36 320.6973,0 522.5889,0 522.5889,-36"/>
<text text-anchor="middle" x="421.6431" y="-20.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="421.6431" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.14s(1.55%)</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime._System (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="393.413,-508 319.8732,-508 319.8732,-472 393.413,-472 393.413,-508"/>
<text text-anchor="middle" x="356.6431" y="-491.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="356.6431" y="-483.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(1.33%)</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N7 -->
<g id="edge60" class="edge">
<title>N46&#45;&gt;N7</title>
<g id="a_edge60"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.12s)">
<path fill="none" stroke="#000000" d="M360.2165,-471.7951C362.9005,-461.0618 367.3192,-447.5595 374.1948,-437 376.5151,-433.4366 379.2012,-429.978 382.0922,-426.6726"/>
<polygon fill="#000000" stroke="#000000" points="384.7836,-428.9212 389.1334,-419.2605 379.7085,-424.1 384.7836,-428.9212"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.12s)">
<text text-anchor="middle" x="391.3672" y="-439.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="main.Integer.Multiply (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1719.6894,-923 1607.5967,-923 1607.5967,-882 1719.6894,-882 1719.6894,-923"/>
<text text-anchor="middle" x="1663.6431" y="-910.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="1663.6431" y="-899.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.33%)</text>
<text text-anchor="middle" x="1663.6431" y="-888.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(1%)</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N50 -->
<g id="edge65" class="edge">
<title>N48&#45;&gt;N50</title>
<g id="a_edge65"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.09s)">
<path fill="none" stroke="#000000" d="M1663.6431,-980.3359C1663.6431,-966.9676 1663.6431,-948.8362 1663.6431,-933.4363"/>
<polygon fill="#000000" stroke="#000000" points="1667.1432,-933.3033 1663.6431,-923.3034 1660.1432,-933.3034 1667.1432,-933.3033"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.09s)">
<text text-anchor="middle" x="1680.3672" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N9 -->
<g id="edge84" class="edge">
<title>N50&#45;&gt;N9</title>
<g id="a_edge84"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.06s)">
<path fill="none" stroke="#000000" d="M1607.5609,-891.0563C1587.4347,-887.0716 1564.5506,-882.6806 1543.6431,-879 1397.7724,-853.3207 1225.6226,-827.5495 1135.5999,-814.4175"/>
<polygon fill="#000000" stroke="#000000" points="1135.9637,-810.9337 1125.5637,-812.9563 1134.9551,-817.8606 1135.9637,-810.9337"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.06s)">
<text text-anchor="middle" x="1444.3672" y="-849.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N4 -->
<g id="edge90" class="edge">
<title>N51&#45;&gt;N4</title>
<g id="a_edge90"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.05s)">
<path fill="none" stroke="#000000" d="M1067.2633,-1202.7686C1055.0347,-1154.5926 1025.2777,-1031.1757 1013.1948,-926 1008.7288,-887.1251 1015.6478,-788.3031 1007.6431,-750 999.4017,-710.5646 975.6229,-671.804 954.3059,-643.2942"/>
<polygon fill="#000000" stroke="#000000" points="956.9387,-640.9755 948.0824,-635.1603 951.3794,-645.2291 956.9387,-640.9755"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.05s)">
<text text-anchor="middle" x="1030.3672" y="-898.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.usleep (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1422.0386,-1896 1329.2475,-1896 1329.2475,-1860 1422.0386,-1860 1422.0386,-1896"/>
<text text-anchor="middle" x="1375.6431" y="-1880.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="1375.6431" y="-1867.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.09s(1%)</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.mstart (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1412.413,-2048 1338.8732,-2048 1338.8732,-2012 1412.413,-2012 1412.413,-2048"/>
<text text-anchor="middle" x="1375.6431" y="-2031.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mstart</text>
<text text-anchor="middle" x="1375.6431" y="-2023.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(0.89%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N53 -->
<g id="edge73" class="edge">
<title>N55&#45;&gt;N53</title>
<g id="a_edge73"><a xlink:title="runtime.mstart ... runtime.usleep (0.08s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1375.6431,-2011.9667C1375.6431,-1985.7983 1375.6431,-1937.0561 1375.6431,-1906.1368"/>
<polygon fill="#000000" stroke="#000000" points="1379.1432,-1906.0098 1375.6431,-1896.0098 1372.1432,-1906.0099 1379.1432,-1906.0098"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.mstart ... runtime.usleep (0.08s)">
<text text-anchor="middle" x="1392.3672" y="-1916.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="main.Integer.Add (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1369.6284,-921.5 1283.6577,-921.5 1283.6577,-883.5 1369.6284,-883.5 1369.6284,-921.5"/>
<text text-anchor="middle" x="1326.6431" y="-909.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="1326.6431" y="-899.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.11%)</text>
<text text-anchor="middle" x="1326.6431" y="-889.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.06s(0.66%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N61 -->
<g id="edge78" class="edge">
<title>N59&#45;&gt;N61</title>
<g id="a_edge78"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.06s)">
<path fill="none" stroke="#000000" d="M1326.6431,-981.255C1326.6431,-967.2992 1326.6431,-947.7787 1326.6431,-931.6639"/>
<polygon fill="#000000" stroke="#000000" points="1330.1432,-931.6586 1326.6431,-921.6586 1323.1432,-931.6587 1330.1432,-931.6586"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.06s)">
<text text-anchor="middle" x="1343.3672" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N9 -->
<g id="edge88" class="edge">
<title>N60&#45;&gt;N9</title>
<g id="a_edge88"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.05s)">
<path fill="none" stroke="#000000" d="M1136.6753,-980.1893C1124.759,-947.164 1100.3315,-879.465 1085.631,-838.7238"/>
<polygon fill="#000000" stroke="#000000" points="1088.892,-837.449 1082.2056,-829.2306 1082.3075,-839.8249 1088.892,-837.449"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.05s)">
<text text-anchor="middle" x="1134.3672" y="-898.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N9 -->
<g id="edge99" class="edge">
<title>N61&#45;&gt;N9</title>
<g id="a_edge99"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.03s)">
<path fill="none" stroke="#000000" d="M1283.4383,-885.9353C1242.5926,-870.2751 1180.8899,-846.6184 1134.9607,-829.0091"/>
<polygon fill="#000000" stroke="#000000" points="1136.0027,-825.6603 1125.4125,-825.3484 1133.4968,-832.1964 1136.0027,-825.6603"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.03s)">
<text text-anchor="middle" x="1232.3672" y="-849.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N41 -->
<g id="edge102" class="edge">
<title>N61&#45;&gt;N41</title>
<g id="a_edge102"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M1369.8292,-891.3362C1387.109,-887.1087 1407.2445,-882.4813 1425.6431,-879 1589.8981,-847.9202 1785.7076,-823.5399 1882.8062,-812.2899"/>
<polygon fill="#000000" stroke="#000000" points="1883.4872,-815.7346 1893.0208,-811.1127 1882.6858,-808.7807 1883.4872,-815.7346"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="1626.3672" y="-849.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.(*mheap).alloc_m (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="243.4482,-215 141.8379,-215 141.8379,-179 243.4482,-179 243.4482,-215"/>
<text text-anchor="middle" x="192.6431" y="-198.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="192.6431" y="-190.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(0.66%)</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N63 -->
<g id="edge85" class="edge">
<title>N62&#45;&gt;N63</title>
<g id="a_edge85"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.06s)">
<path fill="none" stroke="#000000" d="M192.6431,-277.4336C192.6431,-262.9456 192.6431,-242.3416 192.6431,-225.6145"/>
<polygon fill="#000000" stroke="#000000" points="196.1432,-225.2854 192.6431,-215.2855 189.1432,-225.2855 196.1432,-225.2854"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.06s)">
<text text-anchor="middle" x="209.3672" y="-242.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N47 -->
<g id="edge101" class="edge">
<title>N65&#45;&gt;N47</title>
<g id="a_edge101"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.03s)">
<path fill="none" stroke="#000000" d="M1440.5192,-978.9288C1447.9106,-966.1258 1457.576,-949.384 1465.976,-934.834"/>
<polygon fill="#000000" stroke="#000000" points="1469.0423,-936.5229 1471.0111,-926.1126 1462.9801,-933.023 1469.0423,-936.5229"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.03s)">
<text text-anchor="middle" x="1476.3672" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.schedule (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1504.413,-2048 1430.8732,-2048 1430.8732,-2012 1504.413,-2012 1504.413,-2048"/>
<text text-anchor="middle" x="1467.6431" y="-2031.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="1467.6431" y="-2023.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.55%)</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.semasleep1 (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="354.4012,-215 274.8849,-215 274.8849,-179 354.4012,-179 354.4012,-215"/>
<text text-anchor="middle" x="314.6431" y="-198.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="314.6431" y="-190.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.55%)</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N69 -->
<g id="edge91" class="edge">
<title>N68&#45;&gt;N69</title>
<g id="a_edge91"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.05s)">
<path fill="none" stroke="#000000" d="M314.6431,-277.4336C314.6431,-262.9456 314.6431,-242.3416 314.6431,-225.6145"/>
<polygon fill="#000000" stroke="#000000" points="318.1432,-225.2854 314.6431,-215.2855 311.1432,-225.2855 318.1432,-225.2854"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.05s)">
<text text-anchor="middle" x="331.3672" y="-242.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run (8.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1342.3933,-1724 1202.8928,-1724 1202.8928,-1688 1342.3933,-1688 1342.3933,-1724"/>
<text text-anchor="middle" x="1272.6431" y="-1707.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.(*App).Run</text>
<text text-anchor="middle" x="1272.6431" y="-1699.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 8.73s(96.68%)</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction (8.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1345.8268,-1638 1199.4594,-1638 1199.4594,-1602 1345.8268,-1602 1345.8268,-1638"/>
<text text-anchor="middle" x="1272.6431" y="-1621.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.HandleAction</text>
<text text-anchor="middle" x="1272.6431" y="-1613.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 8.73s(96.68%)</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N71 -->
<g id="edge1" class="edge">
<title>N70&#45;&gt;N71</title>
<g id="a_edge1"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (8.73s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1272.6431,-1687.7616C1272.6431,-1676.3597 1272.6431,-1661.4342 1272.6431,-1648.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1277.0182,-1648.2121 1272.6431,-1638.2121 1268.2682,-1648.2121 1277.0182,-1648.2121"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (8.73s)">
<text text-anchor="middle" x="1289.3672" y="-1658.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 8.73s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="main.handleFlags (8.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1311.4129,-1552 1233.8732,-1552 1233.8732,-1516 1311.4129,-1516 1311.4129,-1552"/>
<text text-anchor="middle" x="1272.6431" y="-1535.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.handleFlags</text>
<text text-anchor="middle" x="1272.6431" y="-1527.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 8.73s(96.68%)</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N73 -->
<g id="edge2" class="edge">
<title>N71&#45;&gt;N73</title>
<g id="a_edge2"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (8.73s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1272.6431,-1601.7616C1272.6431,-1590.3597 1272.6431,-1575.4342 1272.6431,-1562.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1277.0182,-1562.2121 1272.6431,-1552.2121 1268.2682,-1562.2121 1277.0182,-1562.2121"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (8.73s)">
<text text-anchor="middle" x="1289.3672" y="-1572.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 8.73s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="main.(*machine).executeString (8.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1331.05,-1466 1214.2361,-1466 1214.2361,-1430 1331.05,-1430 1331.05,-1466"/>
<text text-anchor="middle" x="1272.6431" y="-1449.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeString</text>
<text text-anchor="middle" x="1272.6431" y="-1441.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 8.73s(96.68%)</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N2 -->
<g id="edge3" class="edge">
<title>N72&#45;&gt;N2</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (8.73s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1272.6431,-1429.6793C1272.6431,-1418.8316 1272.6431,-1404.5069 1272.6431,-1390.4979"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1277.0182,-1390.4072 1272.6431,-1380.4072 1268.2682,-1390.4073 1277.0182,-1390.4072"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (8.73s)">
<text text-anchor="middle" x="1289.3672" y="-1400.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 8.73s</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N72 -->
<g id="edge4" class="edge">
<title>N73&#45;&gt;N72</title>
<g id="a_edge4"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (8.73s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1272.6431,-1515.7616C1272.6431,-1504.3597 1272.6431,-1489.4342 1272.6431,-1476.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1277.0182,-1476.2121 1272.6431,-1466.2121 1268.2682,-1476.2121 1277.0182,-1476.2121"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (8.73s)">
<text text-anchor="middle" x="1289.3672" y="-1486.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 8.73s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="main.main (8.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1311.4129,-1810 1233.8732,-1810 1233.8732,-1774 1311.4129,-1774 1311.4129,-1810"/>
<text text-anchor="middle" x="1272.6431" y="-1793.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.main</text>
<text text-anchor="middle" x="1272.6431" y="-1785.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 8.73s(96.68%)</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N70 -->
<g id="edge5" class="edge">
<title>N74&#45;&gt;N70</title>
<g id="a_edge5"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (8.73s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1272.6431,-1773.7616C1272.6431,-1762.3597 1272.6431,-1747.4342 1272.6431,-1734.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1277.0182,-1734.2121 1272.6431,-1724.2121 1268.2682,-1734.2121 1277.0182,-1734.2121"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (8.73s)">
<text text-anchor="middle" x="1289.3672" y="-1744.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 8.73s</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N74 -->
<g id="edge7" class="edge">
<title>N75&#45;&gt;N74</title>
<g id="a_edge7"><a xlink:title="runtime.main &#45;&gt; main.main (8.73s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1272.6431,-1859.7616C1272.6431,-1848.3597 1272.6431,-1833.4342 1272.6431,-1820.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1277.0182,-1820.2121 1272.6431,-1810.2121 1268.2682,-1820.2121 1277.0182,-1820.2121"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="runtime.main &#45;&gt; main.main (8.73s)">
<text text-anchor="middle" x="1289.3672" y="-1830.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 8.73s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N33 -->
<g id="edge41" class="edge">
<title>N76&#45;&gt;N33</title>
<g id="a_edge41"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (0.20s)">
<path fill="none" stroke="#000000" d="M564.6431,-1091.7532C564.6431,-1075.0219 564.6431,-1049.9118 564.6431,-1030.1112"/>
<polygon fill="#000000" stroke="#000000" points="568.1432,-1030.0292 564.6431,-1020.0293 561.1432,-1030.0293 568.1432,-1030.0292"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (0.20s)">
<text text-anchor="middle" x="581.3672" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.mach_semrelease (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="471.4404,-122 371.8457,-122 371.8457,-86 471.4404,-86 471.4404,-122"/>
<text text-anchor="middle" x="421.6431" y="-105.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mach_semrelease</text>
<text text-anchor="middle" x="421.6431" y="-97.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(1.55%)</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N44 -->
<g id="edge51" class="edge">
<title>N77&#45;&gt;N44</title>
<g id="a_edge51"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.14s)">
<path fill="none" stroke="#000000" d="M421.6431,-85.7616C421.6431,-74.3597 421.6431,-59.4342 421.6431,-46.494"/>
<polygon fill="#000000" stroke="#000000" points="425.1432,-46.2121 421.6431,-36.2121 418.1432,-46.2121 425.1432,-46.2121"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.14s)">
<text text-anchor="middle" x="438.3672" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N4 -->
<g id="edge53" class="edge">
<title>N78&#45;&gt;N4</title>
<g id="a_edge53"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.14s)">
<path fill="none" stroke="#000000" d="M2100.6431,-981.2647C2100.6431,-961.7687 2100.6431,-929.9497 2100.6431,-902.5 2100.6431,-902.5 2100.6431,-902.5 2100.6431,-757 2100.6431,-723.9046 2107.0911,-706.1591 2081.6431,-685 2000.1037,-617.2031 1274.8245,-602.1197 1011.0285,-598.8656"/>
<polygon fill="#000000" stroke="#000000" points="1010.7469,-595.3621 1000.7055,-598.7414 1010.6626,-602.3616 1010.7469,-595.3621"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.14s)">
<text text-anchor="middle" x="2117.3672" y="-801.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.semawakeup (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="463.8425,-215 379.4436,-215 379.4436,-179 463.8425,-179 463.8425,-215"/>
<text text-anchor="middle" x="421.6431" y="-198.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semawakeup</text>
<text text-anchor="middle" x="421.6431" y="-190.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(1.55%)</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N80 -->
<g id="edge54" class="edge">
<title>N79&#45;&gt;N80</title>
<g id="a_edge54"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (0.14s)">
<path fill="none" stroke="#000000" d="M421.6431,-277.4336C421.6431,-262.9456 421.6431,-242.3416 421.6431,-225.6145"/>
<polygon fill="#000000" stroke="#000000" points="425.1432,-225.2854 421.6431,-215.2855 418.1432,-225.2855 425.1432,-225.2854"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (0.14s)">
<text text-anchor="middle" x="438.3672" y="-242.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N77 -->
<g id="edge55" class="edge">
<title>N80&#45;&gt;N77</title>
<g id="a_edge55"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (0.14s)">
<path fill="none" stroke="#000000" d="M421.6431,-178.6262C421.6431,-165.4212 421.6431,-147.369 421.6431,-132.3274"/>
<polygon fill="#000000" stroke="#000000" points="425.1432,-132.0192 421.6431,-122.0192 418.1432,-132.0192 425.1432,-132.0192"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (0.14s)">
<text text-anchor="middle" x="438.3672" y="-142.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration5.svg.







































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1636)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1636 3261.3761,-1636 3261.3761,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="389.9015,-1440 389.9015,-1624 1051.9015,-1624 1051.9015,-1440 389.9015,-1440"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="1043.7453,-1616 398.0578,-1616 398.0578,-1448 1043.7453,-1448 1043.7453,-1616"/>
<text text-anchor="start" x="405.9797" y="-1586.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="405.9797" y="-1554.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="405.9797" y="-1522.4" font-family="Times,serif" font-size="32.00" fill="#000000">7.14s of 7.45s total (95.84%)</text>
<text text-anchor="start" x="405.9797" y="-1490.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 46 nodes (cum &lt;= 0.04s)</text>
<text text-anchor="start" x="405.9797" y="-1458.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 100 (cum &gt;= 7.10s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (7.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1139.6714,-1550 1062.1317,-1550 1062.1317,-1514 1139.6714,-1514 1139.6714,-1550"/>
<text text-anchor="middle" x="1100.9015" y="-1533.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="1100.9015" y="-1525.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7.17s(96.24%)</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.gcDrain (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1012.6714,-1398 939.1316,-1398 939.1316,-1362 1012.6714,-1362 1012.6714,-1398"/>
<text text-anchor="middle" x="975.9015" y="-1381.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcDrain</text>
<text text-anchor="middle" x="975.9015" y="-1373.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(0.81%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N55 -->
<g id="edge68" class="edge">
<title>N1&#45;&gt;N55</title>
<g id="a_edge68"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.05s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1094.9742,-1513.9592C1087.8897,-1494.2902 1074.6012,-1462.6061 1055.9015,-1440 1044.5384,-1426.263 1029.4193,-1413.8925 1015.3858,-1404.0025"/>
<polygon fill="#000000" stroke="#000000" points="1017.0666,-1400.9125 1006.8315,-1398.175 1013.1255,-1406.6977 1017.0666,-1400.9125"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.05s)">
<text text-anchor="middle" x="1063.6257" y="-1418.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run (7.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1170.6518,-1398 1031.1513,-1398 1031.1513,-1362 1170.6518,-1362 1170.6518,-1398"/>
<text text-anchor="middle" x="1100.9015" y="-1381.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.(*App).Run</text>
<text text-anchor="middle" x="1100.9015" y="-1373.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7.10s(95.30%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N79 -->
<g id="edge3" class="edge">
<title>N1&#45;&gt;N79</title>
<g id="a_edge3"><a xlink:title="runtime.goexit ... gopkg.in/urfave/cli%2ev1.(*App).Run (7.10s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M1100.9015,-1513.9667C1100.9015,-1487.7983 1100.9015,-1439.0561 1100.9015,-1408.1368"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1105.2766,-1408.0098 1100.9015,-1398.0098 1096.5266,-1408.0099 1105.2766,-1408.0098"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="runtime.goexit ... gopkg.in/urfave/cli%2ev1.(*App).Run (7.10s)">
<text text-anchor="middle" x="1117.6257" y="-1418.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.10s</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (7.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1229.9449,-1226 971.8582,-1226 971.8582,-1146 1229.9449,-1146 1229.9449,-1226"/>
<text text-anchor="middle" x="1100.9015" y="-1202.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="1100.9015" y="-1178.8" font-family="Times,serif" font-size="24.00" fill="#000000">0.92s(12.35%)</text>
<text text-anchor="middle" x="1100.9015" y="-1154.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 7.10s(95.30%)</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (7.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1204.884,-1091.5 996.9191,-1091.5 996.9191,-1047.5 1204.884,-1047.5 1204.884,-1091.5"/>
<text text-anchor="middle" x="1100.9015" y="-1077.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="1100.9015" y="-1065.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.54%)</text>
<text text-anchor="middle" x="1100.9015" y="-1053.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 7.10s(95.30%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N3 -->
<g id="edge58" class="edge">
<title>N2&#45;&gt;N3</title>
<g id="a_edge58"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.08s)">
<path fill="none" stroke="#000000" d="M1070.9923,-1145.923C1067.907,-1140.1496 1065.2495,-1134.0933 1063.4533,-1128 1060.5636,-1118.1971 1063.6914,-1108.4733 1069.1692,-1099.8507"/>
<polygon fill="#000000" stroke="#000000" points="1072.1245,-1101.7425 1075.2945,-1091.633 1066.512,-1097.5591 1072.1245,-1101.7425"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.08s)">
<text text-anchor="middle" x="1080.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.mapaccess2_faststr (1.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1291.2321,-993 1020.5709,-993 1020.5709,-916 1291.2321,-916 1291.2321,-993"/>
<text text-anchor="middle" x="1155.9015" y="-970.6" font-family="Times,serif" font-size="23.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="1155.9015" y="-947.6" font-family="Times,serif" font-size="23.00" fill="#000000">0.73s(9.80%)</text>
<text text-anchor="middle" x="1155.9015" y="-924.6" font-family="Times,serif" font-size="23.00" fill="#000000">of 1.09s(14.63%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge6" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge6"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.79s)">
<path fill="none" stroke="#000000" d="M1171.2341,-1145.8168C1188.343,-1132.3463 1204.4283,-1115.6559 1213.9015,-1096 1228.7874,-1065.1137 1213.8951,-1029.3807 1195.4802,-1001.5506"/>
<polygon fill="#000000" stroke="#000000" points="1198.2535,-999.4078 1189.6812,-993.1816 1192.4998,-1003.3946 1198.2535,-999.4078"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.79s)">
<text text-anchor="middle" x="1237.6257" y="-1065.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.79s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.convT2I (0.80s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1028.9702,-766 908.8329,-766 908.8329,-713 1028.9702,-713 1028.9702,-766"/>
<text text-anchor="middle" x="968.9015" y="-750" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="968.9015" y="-735" font-family="Times,serif" font-size="15.00" fill="#000000">0.14s(1.88%)</text>
<text text-anchor="middle" x="968.9015" y="-720" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.80s(10.74%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N8 -->
<g id="edge8" class="edge">
<title>N2&#45;&gt;N8</title>
<g id="a_edge8"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.59s)">
<path fill="none" stroke="#000000" d="M1017.6784,-1145.9841C991.3196,-1127.2007 968.9015,-1101.7466 968.9015,-1069.5 968.9015,-1069.5 968.9015,-1069.5 968.9015,-841 968.9015,-819.5898 968.9015,-795.6393 968.9015,-776.3825"/>
<polygon fill="#000000" stroke="#000000" points="972.4016,-776.2131 968.9015,-766.2131 965.4016,-776.2132 972.4016,-776.2131"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.59s)">
<text text-anchor="middle" x="985.6257" y="-950.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.59s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="main.(*machine).executeMathWord (0.60s)">
<polygon fill="#f8f8f8" stroke="#000000" points="941.3703,-1091.5 752.4328,-1091.5 752.4328,-1047.5 941.3703,-1047.5 941.3703,-1091.5"/>
<text text-anchor="middle" x="846.9015" y="-1077.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="846.9015" y="-1065.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.54%)</text>
<text text-anchor="middle" x="846.9015" y="-1053.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.60s(8.05%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N9 -->
<g id="edge7" class="edge">
<title>N2&#45;&gt;N9</title>
<g id="a_edge7"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.60s)">
<path fill="none" stroke="#000000" d="M971.6681,-1150.3452C954.3847,-1143.8233 937.2061,-1136.3817 921.4533,-1128 906.3221,-1119.9491 891.1597,-1108.7627 878.4974,-1098.3261"/>
<polygon fill="#000000" stroke="#000000" points="880.4588,-1095.401 870.563,-1091.6165 875.9389,-1100.7461 880.4588,-1095.401"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.60s)">
<text text-anchor="middle" x="938.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.60s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.(*CodeQuotation).cloneCode (0.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2033.0217,-1090 1864.7814,-1090 1864.7814,-1049 2033.0217,-1049 2033.0217,-1090"/>
<text text-anchor="middle" x="1948.9015" y="-1077.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="1948.9015" y="-1066.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.4%)</text>
<text text-anchor="middle" x="1948.9015" y="-1055.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.57s(7.65%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N10 -->
<g id="edge10" class="edge">
<title>N2&#45;&gt;N10</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.57s)">
<path fill="none" stroke="#000000" d="M1230.1294,-1179.2696C1399.3775,-1169.7373 1686.6984,-1150.8906 1789.9015,-1128 1825.3998,-1120.1264 1863.691,-1106.2156 1893.8,-1093.9343"/>
<polygon fill="#000000" stroke="#000000" points="1895.3724,-1097.0715 1903.2743,-1090.0138 1892.6958,-1090.6034 1895.3724,-1097.0715"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.57s)">
<text text-anchor="middle" x="1855.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.57s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.tryParseInt (0.51s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1847.1856,-1093 1744.6174,-1093 1744.6174,-1046 1847.1856,-1046 1847.1856,-1093"/>
<text text-anchor="middle" x="1795.9015" y="-1078.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="1795.9015" y="-1065.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.94%)</text>
<text text-anchor="middle" x="1795.9015" y="-1052.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.51s(6.85%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N11 -->
<g id="edge12" class="edge">
<title>N2&#45;&gt;N11</title>
<g id="a_edge12"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.51s)">
<path fill="none" stroke="#000000" d="M1230.2072,-1183.64C1387.8619,-1179.1184 1644.0428,-1165.9903 1730.9015,-1128 1745.2547,-1121.7222 1758.5975,-1111.0008 1769.4127,-1100.4379"/>
<polygon fill="#000000" stroke="#000000" points="1771.9925,-1102.8057 1776.4775,-1093.207 1766.9856,-1097.9137 1771.9925,-1102.8057"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.51s)">
<text text-anchor="middle" x="1769.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.51s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.46s)">
<polygon fill="#f8f8f8" stroke="#000000" points="489.8703,-1091.5 279.9328,-1091.5 279.9328,-1047.5 489.8703,-1047.5 489.8703,-1091.5"/>
<text text-anchor="middle" x="384.9015" y="-1077.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="384.9015" y="-1065.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.67%)</text>
<text text-anchor="middle" x="384.9015" y="-1053.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.46s(6.17%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N12 -->
<g id="edge13" class="edge">
<title>N2&#45;&gt;N12</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.46s)">
<path fill="none" stroke="#000000" d="M971.8077,-1169.7411C849.5629,-1153.6271 661.0976,-1126.9247 498.9015,-1096 494.9719,-1095.2508 490.9725,-1094.4601 486.9373,-1093.6387"/>
<polygon fill="#000000" stroke="#000000" points="487.3557,-1090.1508 476.8523,-1091.5399 485.9294,-1097.004 487.3557,-1090.1508"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.46s)">
<text text-anchor="middle" x="697.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.46s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="main.(*machine).hasPrefixWord (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1688.5679,-1091.5 1517.2352,-1091.5 1517.2352,-1047.5 1688.5679,-1047.5 1688.5679,-1091.5"/>
<text text-anchor="middle" x="1602.9015" y="-1077.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="1602.9015" y="-1065.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.67%)</text>
<text text-anchor="middle" x="1602.9015" y="-1053.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.43s(5.77%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N13 -->
<g id="edge14" class="edge">
<title>N2&#45;&gt;N13</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.43s)">
<path fill="none" stroke="#000000" d="M1229.9824,-1161.3147C1278.9454,-1151.5361 1335.1239,-1139.8165 1385.9015,-1128 1440.4991,-1115.2945 1453.7913,-1110.6424 1507.9015,-1096 1510.0838,-1095.4095 1512.2936,-1094.8094 1514.5224,-1094.2023"/>
<polygon fill="#000000" stroke="#000000" points="1515.667,-1097.5178 1524.3892,-1091.5033 1513.8201,-1090.7659 1515.667,-1097.5178"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.43s)">
<text text-anchor="middle" x="1457.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="runtime.deferproc (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2734.7654,-1096 2611.0377,-1096 2611.0377,-1043 2734.7654,-1043 2734.7654,-1096"/>
<text text-anchor="middle" x="2672.9015" y="-1080" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="2672.9015" y="-1065" font-family="Times,serif" font-size="15.00" fill="#000000">0.13s(1.74%)</text>
<text text-anchor="middle" x="2672.9015" y="-1050" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.43s(5.77%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge15" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge15"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.43s)">
<path fill="none" stroke="#000000" d="M1230.0663,-1184.0234C1459.9314,-1179.6319 1954.9495,-1166.2269 2370.9015,-1128 2470.9891,-1118.8017 2499.6889,-1121.2229 2601.0949,-1095.9992"/>
<polygon fill="#000000" stroke="#000000" points="2601.9656,-1099.3893 2610.8092,-1093.5548 2600.2574,-1092.6009 2601.9656,-1099.3893"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.43s)">
<text text-anchor="middle" x="2530.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.tryParseFloat (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1498.8047,-1090 1398.9984,-1090 1398.9984,-1049 1498.8047,-1049 1498.8047,-1090"/>
<text text-anchor="middle" x="1448.9015" y="-1077.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="1448.9015" y="-1066.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.4%)</text>
<text text-anchor="middle" x="1448.9015" y="-1055.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.38s(5.10%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N15 -->
<g id="edge16" class="edge">
<title>N2&#45;&gt;N15</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.38s)">
<path fill="none" stroke="#000000" d="M1230.0629,-1153.4725C1257.6018,-1145.7562 1286.3728,-1137.1004 1312.9015,-1128 1347.9562,-1115.9749 1355.8838,-1110.7047 1389.9015,-1096 1391.2865,-1095.4013 1392.6887,-1094.7924 1394.1024,-1094.1761"/>
<polygon fill="#000000" stroke="#000000" points="1395.7933,-1097.2562 1403.5407,-1090.0294 1392.9775,-1090.8475 1395.7933,-1097.2562"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.38s)">
<text text-anchor="middle" x="1365.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.deferreturn (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2924.4279,-1096 2791.3752,-1096 2791.3752,-1043 2924.4279,-1043 2924.4279,-1096"/>
<text text-anchor="middle" x="2857.9015" y="-1080" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="2857.9015" y="-1065" font-family="Times,serif" font-size="15.00" fill="#000000">0.13s(1.74%)</text>
<text text-anchor="middle" x="2857.9015" y="-1050" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.35s(4.70%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N17 -->
<g id="edge18" class="edge">
<title>N2&#45;&gt;N17</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.35s)">
<path fill="none" stroke="#000000" d="M1229.9687,-1183.5868C1610.2062,-1176.2056 2704.17,-1152.9155 2776.9015,-1128 2793.0734,-1122.46 2808.7977,-1112.5164 2822.0224,-1102.3804"/>
<polygon fill="#000000" stroke="#000000" points="2824.2819,-1105.0552 2829.9154,-1096.0822 2819.9159,-1099.5837 2824.2819,-1105.0552"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.35s)">
<text text-anchor="middle" x="2819.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.memeqbody (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1521.869,-863 1355.9341,-863 1355.9341,-819 1521.869,-819 1521.869,-863"/>
<text text-anchor="middle" x="1438.9015" y="-844.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="1438.9015" y="-826.6" font-family="Times,serif" font-size="18.00" fill="#000000">0.30s(4.03%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N21 -->
<g id="edge27" class="edge">
<title>N2&#45;&gt;N21</title>
<g id="a_edge27"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.21s)">
<path fill="none" stroke="#000000" d="M1230.1983,-1175.3994C1396.5392,-1160.4294 1667.7975,-1130.9825 1697.9015,-1096 1708.2826,-1083.9366 1713.9995,-943.0996 1692.9015,-916 1672.726,-890.0852 1595.9709,-869.7378 1532.066,-856.8143"/>
<polygon fill="#000000" stroke="#000000" points="1532.4205,-853.3165 1521.9307,-854.8041 1531.0587,-860.1827 1532.4205,-853.3165"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.21s)">
<text text-anchor="middle" x="1723.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="734.0344,-1093 507.7687,-1093 507.7687,-1046 734.0344,-1046 734.0344,-1093"/>
<text text-anchor="middle" x="620.9015" y="-1078.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="620.9015" y="-1065.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.06s(0.81%)</text>
<text text-anchor="middle" x="620.9015" y="-1052.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.19s(2.55%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N31 -->
<g id="edge32" class="edge">
<title>N2&#45;&gt;N31</title>
<g id="a_edge32"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.19s)">
<path fill="none" stroke="#000000" d="M971.6389,-1154.6269C895.394,-1136.1216 800.0513,-1112.9812 728.0245,-1095.4996"/>
<polygon fill="#000000" stroke="#000000" points="728.5637,-1092.029 718.0203,-1093.0715 726.9127,-1098.8315 728.5637,-1092.029"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.19s)">
<text text-anchor="middle" x="877.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="main.(*CodeQuotation).nextWord (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2432.9767,-1088.5 2214.8263,-1088.5 2214.8263,-1050.5 2432.9767,-1050.5 2432.9767,-1088.5"/>
<text text-anchor="middle" x="2323.9015" y="-1072.5" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2323.9015" y="-1057.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.14s(1.88%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N38 -->
<g id="edge42" class="edge">
<title>N2&#45;&gt;N38</title>
<g id="a_edge42"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.14s)">
<path fill="none" stroke="#000000" d="M1230.2859,-1181.3853C1405.5747,-1174.2862 1728.0812,-1158.2256 2001.9015,-1128 2093.1228,-1117.9306 2115.7476,-1113.1751 2205.9015,-1096 2214.6109,-1094.3408 2223.6577,-1092.5079 2232.6934,-1090.6039"/>
<polygon fill="#000000" stroke="#000000" points="2233.4289,-1094.0258 2242.4775,-1088.5146 2231.967,-1087.1801 2233.4289,-1094.0258"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.14s)">
<text text-anchor="middle" x="2123.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="main.wordIsWhitespace (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2592.8835,-1093 2450.9196,-1093 2450.9196,-1046 2592.8835,-1046 2592.8835,-1093"/>
<text text-anchor="middle" x="2521.9015" y="-1078.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="2521.9015" y="-1065.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.08s(1.07%)</text>
<text text-anchor="middle" x="2521.9015" y="-1052.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.13s(1.74%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N39 -->
<g id="edge44" class="edge">
<title>N2&#45;&gt;N39</title>
<g id="a_edge44"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.13s)">
<path fill="none" stroke="#000000" d="M1230.3156,-1180.9452C1427.6117,-1172.755 1815.3744,-1154.7557 2143.9015,-1128 2276.6678,-1117.1873 2311.7179,-1124.2139 2441.9015,-1096 2442.6522,-1095.8373 2443.4058,-1095.6701 2444.1618,-1095.4987"/>
<polygon fill="#000000" stroke="#000000" points="2445.2179,-1098.8433 2454.0907,-1093.0535 2443.5439,-1092.0464 2445.2179,-1098.8433"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.13s)">
<text text-anchor="middle" x="2350.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.ifaceeq (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1973.999,-764.5 1867.8041,-764.5 1867.8041,-714.5 1973.999,-714.5 1973.999,-764.5"/>
<text text-anchor="middle" x="1920.9015" y="-749.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="1920.9015" y="-735.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.11s(1.48%)</text>
<text text-anchor="middle" x="1920.9015" y="-721.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.12s(1.61%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N45 -->
<g id="edge49" class="edge">
<title>N2&#45;&gt;N45</title>
<g id="a_edge49"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.11s)">
<path fill="none" stroke="#000000" d="M1230.1642,-1183.9739C1609.3361,-1177.3728 2695.147,-1153.5038 2743.9015,-1096 2802.9133,-1026.3982 2686.4799,-940.2579 2649.9015,-916 2538.9311,-842.407 2140.0232,-773.7559 1984.0448,-749.1169"/>
<polygon fill="#000000" stroke="#000000" points="1984.5499,-745.6534 1974.1277,-747.5581 1983.4629,-752.5685 1984.5499,-745.6534"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.11s)">
<text text-anchor="middle" x="2751.3693" y="-950.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.growslice (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1381.3833,-1088.5 1292.4197,-1088.5 1292.4197,-1050.5 1381.3833,-1050.5 1381.3833,-1088.5"/>
<text text-anchor="middle" x="1336.9015" y="-1076.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="1336.9015" y="-1066.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="1336.9015" y="-1056.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.05s(0.67%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N58 -->
<g id="edge67" class="edge">
<title>N2&#45;&gt;N58</title>
<g id="a_edge67"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.05s)">
<path fill="none" stroke="#000000" d="M1217.1349,-1145.9572C1230.095,-1140.3987 1242.9274,-1134.3858 1254.9015,-1128 1272.444,-1118.6446 1290.5774,-1106.0612 1305.3171,-1094.9621"/>
<polygon fill="#000000" stroke="#000000" points="1307.7656,-1097.4953 1313.5734,-1088.6341 1303.5073,-1091.9394 1307.7656,-1097.4953"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.05s)">
<text text-anchor="middle" x="1292.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2196.7144,-1087.5 2051.0887,-1087.5 2051.0887,-1051.5 2196.7144,-1051.5 2196.7144,-1087.5"/>
<text text-anchor="middle" x="2123.9015" y="-1071.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="2123.9015" y="-1063.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N63 -->
<g id="edge74" class="edge">
<title>N2&#45;&gt;N63</title>
<g id="a_edge74"><a xlink:title="main.(*machine).execute ... main.(*machine).loadLocalWords.func3 (0.04s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1230.2748,-1180.9C1384.5271,-1173.7625 1649.8792,-1158.1399 1875.9015,-1128 1950.3784,-1118.0686 1969.1293,-1114.6986 2041.9015,-1096 2048.3271,-1094.349 2054.987,-1092.4748 2061.6072,-1090.5043"/>
<polygon fill="#000000" stroke="#000000" points="2062.7031,-1093.8293 2071.2463,-1087.5632 2060.6602,-1087.1341 2062.7031,-1093.8293"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.(*machine).execute ... main.(*machine).loadLocalWords.func3 (0.04s)">
<text text-anchor="middle" x="1981.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.eqstring (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3037.3859,-1087.5 2942.4172,-1087.5 2942.4172,-1051.5 3037.3859,-1051.5 3037.3859,-1087.5"/>
<text text-anchor="middle" x="2989.9015" y="-1071.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="2989.9015" y="-1059.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N65 -->
<g id="edge92" class="edge">
<title>N2&#45;&gt;N65</title>
<g id="a_edge92"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.03s)">
<path fill="none" stroke="#000000" d="M1230.0159,-1183.8857C1605.9849,-1177.4216 2683.3366,-1156.6081 2839.9015,-1128 2876.9948,-1121.2222 2916.6473,-1105.3432 2945.8618,-1091.837"/>
<polygon fill="#000000" stroke="#000000" points="2947.4085,-1094.9773 2954.9637,-1087.5497 2944.4256,-1088.6446 2947.4085,-1094.9773"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.03s)">
<text text-anchor="middle" x="2907.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge4" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge4"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.02s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1100.9015,-1091.6569C1100.9015,-1104.0886 1100.9015,-1120.1401 1100.9015,-1135.4662"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1096.5266,-1135.9073 1100.9015,-1145.9073 1105.2766,-1135.9074 1096.5266,-1135.9073"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.02s)">
<text text-anchor="middle" x="1117.6257" y="-1116.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.02s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.newobject (1.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1677.9474,-663 1549.8556,-663 1549.8556,-610 1677.9474,-610 1677.9474,-663"/>
<text text-anchor="middle" x="1613.9015" y="-647" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="1613.9015" y="-632" font-family="Times,serif" font-size="15.00" fill="#000000">0.14s(1.88%)</text>
<text text-anchor="middle" x="1613.9015" y="-617" font-family="Times,serif" font-size="15.00" fill="#000000">of 1.39s(18.66%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N5 -->
<g id="edge103" class="edge">
<title>N3&#45;&gt;N5</title>
<g id="a_edge103"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.02s)">
<path fill="none" stroke="#000000" d="M1185.4188,-1047.492C1193.6558,-1045.7878 1201.9164,-1044.248 1209.9015,-1043 1265.1518,-1034.3646 1412.7597,-1053.4521 1460.9015,-1025 1533.3871,-982.1605 1536.1182,-945.4825 1563.9015,-866 1586.4474,-801.5009 1561.1114,-778.9694 1578.9015,-713 1582.5986,-699.2907 1588.5353,-684.9612 1594.4774,-672.4597"/>
<polygon fill="#000000" stroke="#000000" points="1597.7114,-673.8146 1598.9854,-663.2966 1591.4304,-670.7244 1597.7114,-673.8146"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.02s)">
<text text-anchor="middle" x="1589.6257" y="-836.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.assertI2T (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="205.3742,-761.5 104.4289,-761.5 104.4289,-717.5 205.3742,-717.5 205.3742,-761.5"/>
<text text-anchor="middle" x="154.9015" y="-747.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="154.9015" y="-735.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.54%)</text>
<text text-anchor="middle" x="154.9015" y="-723.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.13s(1.74%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N40 -->
<g id="edge102" class="edge">
<title>N3&#45;&gt;N40</title>
<g id="a_edge102"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M996.7764,-1049.3836C981.1147,-1046.8935 965.1166,-1044.6486 949.9015,-1043 799.9251,-1026.7501 408.9534,-1058.168 272.9015,-993 199.4788,-957.831 172.7806,-940.9098 140.9015,-866 128.069,-835.846 134.8044,-798.1726 142.7417,-771.8133"/>
<polygon fill="#000000" stroke="#000000" points="146.1816,-772.5501 145.9231,-761.9584 139.5201,-770.3995 146.1816,-772.5501"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="172.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="runtime.mallocgc (1.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1706.0113,-560 1521.7917,-560 1521.7917,-480 1706.0113,-480 1706.0113,-560"/>
<text text-anchor="middle" x="1613.9015" y="-536.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="1613.9015" y="-512.8" font-family="Times,serif" font-size="24.00" fill="#000000">0.86s(11.54%)</text>
<text text-anchor="middle" x="1613.9015" y="-488.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 1.45s(19.46%)</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.heapBitsSetType (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1713.1077,-430 1514.6954,-430 1514.6954,-386 1713.1077,-386 1713.1077,-430"/>
<text text-anchor="middle" x="1613.9015" y="-411.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1613.9015" y="-393.6" font-family="Times,serif" font-size="18.00" fill="#000000">0.31s(4.16%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N19 -->
<g id="edge19" class="edge">
<title>N4&#45;&gt;N19</title>
<g id="a_edge19"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.31s)">
<path fill="none" stroke="#000000" d="M1613.9015,-479.8818C1613.9015,-466.9682 1613.9015,-452.8264 1613.9015,-440.5284"/>
<polygon fill="#000000" stroke="#000000" points="1617.4016,-440.273 1613.9015,-430.273 1610.4016,-440.2731 1617.4016,-440.273"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.31s)">
<text text-anchor="middle" x="1630.6257" y="-450.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.(*mcache).nextFree (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2606.6831,-427 2477.12,-427 2477.12,-389 2606.6831,-389 2606.6831,-427"/>
<text text-anchor="middle" x="2541.9015" y="-415" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="2541.9015" y="-405" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="2541.9015" y="-395" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.12s(1.61%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N44 -->
<g id="edge48" class="edge">
<title>N4&#45;&gt;N44</title>
<g id="a_edge48"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.12s)">
<path fill="none" stroke="#000000" d="M1706.2744,-508.8515C1890.1393,-486.661 2298.6815,-437.3541 2467.099,-417.0279"/>
<polygon fill="#000000" stroke="#000000" points="2467.6074,-420.492 2477.1159,-415.819 2466.7686,-413.5425 2467.6074,-420.492"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.12s)">
<text text-anchor="middle" x="2204.6257" y="-450.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N4 -->
<g id="edge5" class="edge">
<title>N5&#45;&gt;N4</title>
<g id="a_edge5"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.25s)">
<path fill="none" stroke="#000000" d="M1613.9015,-609.7725C1613.9015,-598.1026 1613.9015,-584.0171 1613.9015,-570.4986"/>
<polygon fill="#000000" stroke="#000000" points="1617.4016,-570.3208 1613.9015,-560.3209 1610.4016,-570.3209 1617.4016,-570.3208"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.25s)">
<text text-anchor="middle" x="1630.6257" y="-580.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.25s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.aeshashbody (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1219.366,-863 1050.437,-863 1050.437,-819 1219.366,-819 1219.366,-863"/>
<text text-anchor="middle" x="1134.9015" y="-844.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="1134.9015" y="-826.6" font-family="Times,serif" font-size="18.00" fill="#000000">0.31s(4.16%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N18 -->
<g id="edge20" class="edge">
<title>N6&#45;&gt;N18</title>
<g id="a_edge20"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.30s)">
<path fill="none" stroke="#000000" d="M1148.7333,-915.7572C1146.1643,-901.8729 1143.2986,-886.3842 1140.8448,-873.122"/>
<polygon fill="#000000" stroke="#000000" points="1144.2398,-872.2327 1138.9788,-863.0364 1137.3566,-873.5063 1144.2398,-872.2327"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.30s)">
<text text-anchor="middle" x="1162.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N21 -->
<g id="edge69" class="edge">
<title>N6&#45;&gt;N21</title>
<g id="a_edge69"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.05s)">
<path fill="none" stroke="#000000" d="M1252.1073,-915.9157C1292.4111,-899.7515 1338.1955,-881.3892 1374.3491,-866.8894"/>
<polygon fill="#000000" stroke="#000000" points="1375.8213,-870.07 1383.7998,-863.0991 1373.2156,-863.5731 1375.8213,-870.07"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.05s)">
<text text-anchor="middle" x="1347.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.systemstack (0.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2807.2946,-336 2668.5084,-336 2668.5084,-283 2807.2946,-283 2807.2946,-336"/>
<text text-anchor="middle" x="2737.9015" y="-320" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2737.9015" y="-305" font-family="Times,serif" font-size="15.00" fill="#000000">0.16s(2.15%)</text>
<text text-anchor="middle" x="2737.9015" y="-290" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.91s(12.21%)</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.deferproc.func1 (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2704.233,-233 2561.5701,-233 2561.5701,-186 2704.233,-186 2704.233,-233"/>
<text text-anchor="middle" x="2632.9015" y="-218.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2632.9015" y="-205.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.94%)</text>
<text text-anchor="middle" x="2632.9015" y="-192.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.26s(3.49%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N25 -->
<g id="edge25" class="edge">
<title>N7&#45;&gt;N25</title>
<g id="a_edge25"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.26s)">
<path fill="none" stroke="#000000" d="M2710.0391,-282.9644C2696.1736,-269.7591 2679.3429,-253.7299 2664.9453,-240.0179"/>
<polygon fill="#000000" stroke="#000000" points="2667.3218,-237.4479 2657.6666,-233.0858 2662.4942,-242.5169 2667.3218,-237.4479"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.26s)">
<text text-anchor="middle" x="2704.6257" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.mach_semaphore_signal (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3107.839,-229.5 2879.964,-229.5 2879.964,-189.5 3107.839,-189.5 3107.839,-229.5"/>
<text text-anchor="middle" x="2993.9015" y="-212.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2993.9015" y="-196.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.18s(2.42%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N32 -->
<g id="edge41" class="edge">
<title>N7&#45;&gt;N32</title>
<g id="a_edge41"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.15s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2805.8327,-282.9644C2845.2971,-267.5486 2894.6138,-248.2843 2932.8437,-233.3507"/>
<polygon fill="#000000" stroke="#000000" points="2934.2704,-236.551 2942.3115,-229.6524 2931.7234,-230.0308 2934.2704,-236.551"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.15s)">
<text text-anchor="middle" x="2897.6257" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.deferreturn.func1 (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2861.8449,-231.5 2721.9582,-231.5 2721.9582,-187.5 2861.8449,-187.5 2861.8449,-231.5"/>
<text text-anchor="middle" x="2791.9015" y="-217.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="2791.9015" y="-205.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.54%)</text>
<text text-anchor="middle" x="2791.9015" y="-193.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.17s(2.28%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N33 -->
<g id="edge35" class="edge">
<title>N7&#45;&gt;N33</title>
<g id="a_edge35"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.17s)">
<path fill="none" stroke="#000000" d="M2752.2308,-282.9644C2759.2376,-269.9888 2767.7168,-254.2865 2775.0345,-240.7353"/>
<polygon fill="#000000" stroke="#000000" points="2778.2107,-242.2194 2779.8826,-231.7573 2772.0514,-238.8933 2778.2107,-242.2194"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.17s)">
<text text-anchor="middle" x="2784.6257" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.(*mcentral).cacheSpan (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2543.9005,-228.5 2401.9026,-228.5 2401.9026,-190.5 2543.9005,-190.5 2543.9005,-228.5"/>
<text text-anchor="middle" x="2472.9015" y="-216.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="2472.9015" y="-206.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="2472.9015" y="-196.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(1.48%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N47 -->
<g id="edge52" class="edge">
<title>N7&#45;&gt;N47</title>
<g id="a_edge52"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).cacheSpan (0.11s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2668.2759,-283.2262C2626.2533,-267.3686 2573.2467,-247.3661 2533.0514,-232.1981"/>
<polygon fill="#000000" stroke="#000000" points="2534.2352,-228.9039 2523.6435,-228.6479 2531.7638,-235.4532 2534.2352,-228.9039"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).cacheSpan (0.11s)">
<text text-anchor="middle" x="2629.3693" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.semasleep.func1 (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3221.8742,-227.5 3125.9289,-227.5 3125.9289,-191.5 3221.8742,-191.5 3221.8742,-227.5"/>
<text text-anchor="middle" x="3173.9015" y="-211.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep.func1</text>
<text text-anchor="middle" x="3173.9015" y="-203.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.67%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N60 -->
<g id="edge73" class="edge">
<title>N7&#45;&gt;N60</title>
<g id="a_edge73"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.05s)">
<path fill="none" stroke="#000000" d="M2807.3538,-299.5842C2884.1196,-287.6812 3010.9323,-265.2132 3116.9015,-233 3119.0234,-232.355 3121.1751,-231.6605 3123.338,-230.9286"/>
<polygon fill="#000000" stroke="#000000" points="3124.6054,-234.1924 3132.8346,-227.5192 3122.2401,-227.6042 3124.6054,-234.1924"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.05s)">
<text text-anchor="middle" x="3061.6257" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N5 -->
<g id="edge9" class="edge">
<title>N8&#45;&gt;N5</title>
<g id="a_edge9"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.58s)">
<path fill="none" stroke="#000000" d="M977.1302,-712.9565C982.2038,-701.1605 989.9884,-688.3127 1001.4533,-681 1045.8238,-652.6989 1386.1298,-641.5814 1539.439,-637.9769"/>
<polygon fill="#000000" stroke="#000000" points="1539.7881,-641.4698 1549.7048,-637.7402 1539.6267,-634.4717 1539.7881,-641.4698"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.58s)">
<text text-anchor="middle" x="1018.6257" y="-683.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.typedmemmove (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="348.4499,-663 185.3532,-663 185.3532,-610 348.4499,-610 348.4499,-663"/>
<text text-anchor="middle" x="266.9015" y="-647" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="266.9015" y="-632" font-family="Times,serif" font-size="15.00" fill="#000000">0.13s(1.74%)</text>
<text text-anchor="middle" x="266.9015" y="-617" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.26s(3.49%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N26 -->
<g id="edge59" class="edge">
<title>N8&#45;&gt;N26</title>
<g id="a_edge59"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.08s)">
<path fill="none" stroke="#000000" d="M908.8064,-732.5267C771.7043,-716.5422 441.8592,-677.6348 358.4912,-662.8385"/>
<polygon fill="#000000" stroke="#000000" points="359.0782,-659.3874 348.6001,-660.9555 357.7691,-666.2639 359.0782,-659.3874"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.08s)">
<text text-anchor="middle" x="601.6257" y="-683.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N21 -->
<g id="edge75" class="edge">
<title>N9&#45;&gt;N21</title>
<g id="a_edge75"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.04s)">
<path fill="none" stroke="#000000" d="M941.556,-1050.7903C957.0145,-1047.9998 972.882,-1045.2942 987.9015,-1043 1081.6888,-1028.6739 1342.8841,-1058.099 1411.9015,-993 1444.1481,-962.5841 1445.998,-908.0258 1443.2677,-873.2151"/>
<polygon fill="#000000" stroke="#000000" points="1446.7362,-872.7166 1442.3019,-863.0943 1439.7678,-873.3816 1446.7362,-872.7166"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.04s)">
<text text-anchor="middle" x="1459.6257" y="-950.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="main.(*machine).executeSubtract (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="445.7249,-975 282.0782,-975 282.0782,-934 445.7249,-934 445.7249,-975"/>
<text text-anchor="middle" x="363.9015" y="-962.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="363.9015" y="-951.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.27%)</text>
<text text-anchor="middle" x="363.9015" y="-940.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.28s(3.76%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N22 -->
<g id="edge21" class="edge">
<title>N9&#45;&gt;N22</title>
<g id="a_edge21"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.28s)">
<path fill="none" stroke="#000000" d="M764.2311,-1047.438C757.0421,-1045.8226 749.8588,-1044.3145 742.9015,-1043 679.3305,-1030.9891 662.1555,-1036.2944 598.4533,-1025 536.2242,-1013.9668 520.1996,-1011.9297 459.9015,-993 447.0682,-988.9711 433.5258,-984.0038 420.7881,-978.992"/>
<polygon fill="#000000" stroke="#000000" points="421.8139,-975.6327 411.2294,-975.1657 419.2124,-982.1314 421.8139,-975.6327"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.28s)">
<text text-anchor="middle" x="615.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="main.(*machine).executeMultiply (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="767.5728,-975 602.2303,-975 602.2303,-934 767.5728,-934 767.5728,-975"/>
<text text-anchor="middle" x="684.9015" y="-962.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="684.9015" y="-951.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.27%)</text>
<text text-anchor="middle" x="684.9015" y="-940.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.21s(2.82%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N27 -->
<g id="edge28" class="edge">
<title>N9&#45;&gt;N27</title>
<g id="a_edge28"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.21s)">
<path fill="none" stroke="#000000" d="M809.7099,-1047.3556C798.5389,-1040.4331 786.3586,-1032.6103 775.4533,-1025 755.9364,-1011.3801 734.9175,-995.1208 718.0477,-981.6507"/>
<polygon fill="#000000" stroke="#000000" points="720.1124,-978.8198 710.1243,-975.286 715.7286,-984.2772 720.1124,-978.8198"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.21s)">
<text text-anchor="middle" x="792.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N5 -->
<g id="edge11" class="edge">
<title>N10&#45;&gt;N5</title>
<g id="a_edge11"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.54s)">
<path fill="none" stroke="#000000" d="M1965.0913,-1048.7762C1980.6776,-1026.7055 2001.9015,-990.1134 2001.9015,-954.5 2001.9015,-954.5 2001.9015,-954.5 2001.9015,-739.5 2001.9015,-675.2949 1800.9193,-650.1555 1688.2563,-641.1071"/>
<polygon fill="#000000" stroke="#000000" points="1688.2135,-637.5933 1677.9718,-640.3061 1687.6698,-644.5721 1688.2135,-637.5933"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.54s)">
<text text-anchor="middle" x="2018.6257" y="-836.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="strings.ContainsRune (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1876.0706,-979.5 1739.7325,-979.5 1739.7325,-929.5 1876.0706,-929.5 1876.0706,-979.5"/>
<text text-anchor="middle" x="1807.9015" y="-964.3" font-family="Times,serif" font-size="14.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="1807.9015" y="-950.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.10s(1.34%)</text>
<text text-anchor="middle" x="1807.9015" y="-936.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.31s(4.16%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N20 -->
<g id="edge36" class="edge">
<title>N11&#45;&gt;N20</title>
<g id="a_edge36"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.16s)">
<path fill="none" stroke="#000000" d="M1799.9825,-1045.9945C1801.0521,-1039.2332 1802.1227,-1031.838 1802.9015,-1025 1804.1959,-1013.6362 1805.2106,-1001.2013 1805.9776,-989.9817"/>
<polygon fill="#000000" stroke="#000000" points="1809.4915,-989.8753 1806.6382,-979.6719 1802.5058,-989.4276 1809.4915,-989.8753"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.16s)">
<text text-anchor="middle" x="1820.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="strconv.Atoi (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1974.114,-973.5 1893.6891,-973.5 1893.6891,-935.5 1974.114,-935.5 1974.114,-973.5"/>
<text text-anchor="middle" x="1933.9015" y="-961.5" font-family="Times,serif" font-size="10.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="1933.9015" y="-951.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="1933.9015" y="-941.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.28s(3.76%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N23 -->
<g id="edge22" class="edge">
<title>N11&#45;&gt;N23</title>
<g id="a_edge22"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.28s)">
<path fill="none" stroke="#000000" d="M1824.1609,-1045.9505C1847.0153,-1026.9052 1879.1601,-1000.1179 1902.7539,-980.4563"/>
<polygon fill="#000000" stroke="#000000" points="1905.2719,-982.914 1910.7135,-973.8234 1900.7906,-977.5365 1905.2719,-982.914"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.28s)">
<text text-anchor="middle" x="1881.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.mapassign1 (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="906.468,-978 785.3351,-978 785.3351,-931 906.468,-931 906.468,-978"/>
<text text-anchor="middle" x="845.9015" y="-963.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="845.9015" y="-950.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.08s(1.07%)</text>
<text text-anchor="middle" x="845.9015" y="-937.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.36s(4.83%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N16 -->
<g id="edge17" class="edge">
<title>N12&#45;&gt;N16</title>
<g id="a_edge17"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.36s)">
<path fill="none" stroke="#000000" d="M477.828,-1047.491C484.9497,-1045.9291 492.0355,-1044.4145 498.9015,-1043 621.8573,-1017.6687 658.695,-1035.2731 776.9015,-993 784.5304,-990.2718 792.3119,-986.7531 799.7695,-982.954"/>
<polygon fill="#000000" stroke="#000000" points="801.8285,-985.8227 809.0067,-978.0301 798.5357,-979.6455 801.8285,-985.8227"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.36s)">
<text text-anchor="middle" x="731.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N40 -->
<g id="edge94" class="edge">
<title>N12&#45;&gt;N40</title>
<g id="a_edge94"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M279.7858,-1060.7282C191.0728,-1052.4189 75.8404,-1039.1375 58.9015,-1025 -23.3314,-956.3667 -15.264,-861.2804 58.9015,-784 68.83,-773.6546 81.6286,-765.4809 94.6242,-759.1164"/>
<polygon fill="#000000" stroke="#000000" points="96.4412,-762.1344 104.0837,-754.7966 93.5333,-755.7669 96.4412,-762.1344"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="19.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="main.(*machine).popValue (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="560.1863,-859 403.6167,-859 403.6167,-823 560.1863,-823 560.1863,-859"/>
<text text-anchor="middle" x="481.9015" y="-843.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="481.9015" y="-830.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.94%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N53 -->
<g id="edge101" class="edge">
<title>N12&#45;&gt;N53</title>
<g id="a_edge101"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M411.5546,-1047.3983C426.6555,-1033.386 444.5448,-1013.9866 454.9015,-993 474.53,-953.2255 480.0641,-901.3563 481.5237,-869.6505"/>
<polygon fill="#000000" stroke="#000000" points="485.033,-869.4464 481.8865,-859.3296 478.0373,-869.2004 485.033,-869.4464"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="493.6257" y="-950.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N6 -->
<g id="edge26" class="edge">
<title>N13&#45;&gt;N6</title>
<g id="a_edge26"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.23s)">
<path fill="none" stroke="#000000" d="M1525.2262,-1047.4609C1519.3733,-1045.9143 1513.5497,-1044.4108 1507.9015,-1043 1471.9339,-1034.0161 1462.5277,-1033.5451 1426.4533,-1025 1372.977,-1012.3329 1357.6385,-1008.0542 1301.3518,-993.3754"/>
<polygon fill="#000000" stroke="#000000" points="1302.1163,-989.9578 1291.557,-990.824 1300.3518,-996.7318 1302.1163,-989.9578"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.23s)">
<text text-anchor="middle" x="1442.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="main.isPrefixChar (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1683.8957,-972.5 1565.9073,-972.5 1565.9073,-936.5 1683.8957,-936.5 1683.8957,-972.5"/>
<text text-anchor="middle" x="1624.9015" y="-957.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.isPrefixChar</text>
<text text-anchor="middle" x="1624.9015" y="-943.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.12s(1.61%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N43 -->
<g id="edge47" class="edge">
<title>N13&#45;&gt;N43</title>
<g id="a_edge47"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.12s)">
<path fill="none" stroke="#000000" d="M1600.0713,-1047.357C1599.2375,-1036.3309 1599.0907,-1022.8565 1601.4533,-1011 1603.4042,-1001.2095 1607.0839,-990.9912 1610.9597,-981.9792"/>
<polygon fill="#000000" stroke="#000000" points="1614.2033,-983.3018 1615.1698,-972.7512 1607.8348,-980.3963 1614.2033,-983.3018"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.12s)">
<text text-anchor="middle" x="1617.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.stringiter2 (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2169.5506,-972.5 2064.2525,-972.5 2064.2525,-936.5 2169.5506,-936.5 2169.5506,-972.5"/>
<text text-anchor="middle" x="2116.9015" y="-956.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.stringiter2</text>
<text text-anchor="middle" x="2116.9015" y="-944.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.67%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N62 -->
<g id="edge93" class="edge">
<title>N13&#45;&gt;N62</title>
<g id="a_edge93"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.03s)">
<path fill="none" stroke="#000000" d="M1688.5926,-1048.3639C1708.2683,-1042.0634 1728.7334,-1034.2996 1746.9015,-1025 1756.0965,-1020.2934 1755.8025,-1014.6826 1765.4533,-1011 1856.0555,-976.4278 1887.5147,-1010.4742 1982.9015,-993 2006.5448,-988.6687 2032.0087,-981.9045 2054.3229,-975.2466"/>
<polygon fill="#000000" stroke="#000000" points="2055.4547,-978.5608 2064.0063,-972.3061 2053.4207,-971.8628 2055.4547,-978.5608"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.03s)">
<text text-anchor="middle" x="1781.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N7 -->
<g id="edge24" class="edge">
<title>N14&#45;&gt;N7</title>
<g id="a_edge24"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.26s)">
<path fill="none" stroke="#000000" d="M2698.5913,-1042.5951C2716.7599,-1020.6792 2737.9015,-987.9833 2737.9015,-954.5 2737.9015,-954.5 2737.9015,-954.5 2737.9015,-408 2737.9015,-387.6061 2737.9015,-364.837 2737.9015,-346.3316"/>
<polygon fill="#000000" stroke="#000000" points="2741.4016,-346.2559 2737.9015,-336.256 2734.4016,-346.256 2741.4016,-346.2559"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.26s)">
<text text-anchor="middle" x="2754.6257" y="-683.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.getcallerpc (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2641.3547,-972.5 2532.4484,-972.5 2532.4484,-936.5 2641.3547,-936.5 2641.3547,-972.5"/>
<text text-anchor="middle" x="2586.9015" y="-956.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.getcallerpc</text>
<text text-anchor="middle" x="2586.9015" y="-944.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N67 -->
<g id="edge78" class="edge">
<title>N14&#45;&gt;N67</title>
<g id="a_edge78"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallerpc (0.04s)">
<path fill="none" stroke="#000000" d="M2652.9552,-1042.8276C2639.0137,-1024.1848 2620.4817,-999.4037 2606.5959,-980.8354"/>
<polygon fill="#000000" stroke="#000000" points="2609.3678,-978.6979 2600.576,-972.7856 2603.762,-982.8901 2609.3678,-978.6979"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallerpc (0.04s)">
<text text-anchor="middle" x="2653.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N20 -->
<g id="edge40" class="edge">
<title>N15&#45;&gt;N20</title>
<g id="a_edge40"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.15s)">
<path fill="none" stroke="#000000" d="M1490.9018,-1048.9257C1496.5275,-1046.6783 1502.2923,-1044.6219 1507.9015,-1043 1562.6667,-1027.1647 1581.3138,-1044.4507 1634.9015,-1025 1645.9909,-1020.9749 1646.8687,-1016.21 1657.4533,-1011 1680.4445,-999.6831 1706.3038,-989.2141 1730.0139,-980.4412"/>
<polygon fill="#000000" stroke="#000000" points="1731.4846,-983.6303 1739.6785,-976.9139 1729.0846,-977.0546 1731.4846,-983.6303"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.15s)">
<text text-anchor="middle" x="1673.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="strconv.atof64 (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1402.5565,-976.5 1309.2466,-976.5 1309.2466,-932.5 1402.5565,-932.5 1402.5565,-976.5"/>
<text text-anchor="middle" x="1355.9015" y="-962.9" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="1355.9015" y="-950.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.67%)</text>
<text text-anchor="middle" x="1355.9015" y="-938.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.20s(2.68%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N30 -->
<g id="edge30" class="edge">
<title>N15&#45;&gt;N30</title>
<g id="a_edge30"><a xlink:title="main.tryParseFloat ... strconv.atof64 (0.20s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1461.973,-1048.8204C1467.698,-1036.911 1471.5667,-1022.1437 1463.9015,-1011 1451.2248,-992.5705 1436.9011,-1003.0181 1416.9015,-993 1410.2813,-989.6838 1403.4653,-985.8458 1396.8969,-981.9039"/>
<polygon fill="#000000" stroke="#000000" points="1398.4847,-978.7711 1388.1354,-976.5034 1394.8117,-984.7301 1398.4847,-978.7711"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.tryParseFloat ... strconv.atof64 (0.20s)">
<text text-anchor="middle" x="1484.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N18 -->
<g id="edge110" class="edge">
<title>N16&#45;&gt;N18</title>
<g id="a_edge110"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.01s)">
<path fill="none" stroke="#000000" d="M905.7825,-930.9827C953.3671,-912.2947 1019.8542,-886.183 1068.9559,-866.8991"/>
<polygon fill="#000000" stroke="#000000" points="1070.5052,-870.0509 1078.5336,-863.1376 1067.9463,-863.5354 1070.5052,-870.0509"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.01s)">
<text text-anchor="middle" x="1041.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N26 -->
<g id="edge56" class="edge">
<title>N16&#45;&gt;N26</title>
<g id="a_edge56"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.09s)">
<path fill="none" stroke="#000000" d="M811.1273,-930.9403C800.5761,-924.9618 788.6552,-919.3023 776.9015,-916 727.3373,-902.0744 360.3618,-920.1805 313.9015,-898 235.2363,-860.4445 247.1004,-735.834 258.704,-673.1622"/>
<polygon fill="#000000" stroke="#000000" points="262.1491,-673.7814 260.6238,-663.2969 255.278,-672.4442 262.1491,-673.7814"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.09s)">
<text text-anchor="middle" x="269.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.newarray (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="941.2025,-860 854.6005,-860 854.6005,-822 941.2025,-822 941.2025,-860"/>
<text text-anchor="middle" x="897.9015" y="-848" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="897.9015" y="-838" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="897.9015" y="-828" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.17s(2.28%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N34 -->
<g id="edge34" class="edge">
<title>N16&#45;&gt;N34</title>
<g id="a_edge34"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.17s)">
<path fill="none" stroke="#000000" d="M847.7228,-930.9817C849.5446,-916.7869 853.1847,-898.6699 860.4533,-884 863.1562,-878.5448 866.7217,-873.2289 870.5794,-868.3004"/>
<polygon fill="#000000" stroke="#000000" points="873.4624,-870.3114 877.2466,-860.4154 868.1171,-865.7917 873.4624,-870.3114"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.17s)">
<text text-anchor="middle" x="877.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N7 -->
<g id="edge33" class="edge">
<title>N17&#45;&gt;N7</title>
<g id="a_edge33"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.17s)">
<path fill="none" stroke="#000000" d="M2845.6135,-1042.7034C2836.2312,-1019.7836 2824.9015,-985.6565 2824.9015,-954.5 2824.9015,-954.5 2824.9015,-954.5 2824.9015,-408 2824.9015,-381.8151 2807.4166,-359.3116 2788.1239,-342.4513"/>
<polygon fill="#000000" stroke="#000000" points="2790.3163,-339.7226 2780.3821,-336.0399 2785.8515,-345.1139 2790.3163,-339.7226"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.17s)">
<text text-anchor="middle" x="2841.6257" y="-683.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.memmove (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1774.625,-130 1645.1781,-130 1645.1781,-92 1774.625,-92 1774.625,-130"/>
<text text-anchor="middle" x="1709.9015" y="-114" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="1709.9015" y="-99" font-family="Times,serif" font-size="15.00" fill="#000000">0.16s(2.15%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N36 -->
<g id="edge79" class="edge">
<title>N17&#45;&gt;N36</title>
<g id="a_edge79"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M2839.4338,-1042.8889C2835.9504,-1037.1543 2832.5687,-1031.0065 2829.9015,-1025 2823.9057,-1011.4974 2824.0531,-1007.434 2820.9015,-993 2805.93,-924.4323 2812.5084,-738.243 2771.9015,-681 2704.938,-586.6022 1960.5479,-229.6522 1759.6242,-134.4538"/>
<polygon fill="#000000" stroke="#000000" points="1761.008,-131.2365 1750.4721,-130.1204 1758.0124,-137.5632 1761.008,-131.2365"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="2667.6257" y="-580.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="strings.IndexRune (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1848.1675,-866 1729.6356,-866 1729.6356,-816 1848.1675,-816 1848.1675,-866"/>
<text text-anchor="middle" x="1788.9015" y="-850.8" font-family="Times,serif" font-size="14.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="1788.9015" y="-836.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.10s(1.34%)</text>
<text text-anchor="middle" x="1788.9015" y="-822.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.21s(2.82%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N28 -->
<g id="edge29" class="edge">
<title>N20&#45;&gt;N28</title>
<g id="a_edge29"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.21s)">
<path fill="none" stroke="#000000" d="M1803.6848,-929.3107C1801.0774,-913.7346 1797.6913,-893.5074 1794.8178,-876.3421"/>
<polygon fill="#000000" stroke="#000000" points="1798.2095,-875.4038 1793.1065,-866.1189 1791.3056,-876.5596 1798.2095,-875.4038"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.21s)">
<text text-anchor="middle" x="1814.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="main.Integer.Add (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="235.8869,-860 149.9162,-860 149.9162,-822 235.8869,-822 235.8869,-860"/>
<text text-anchor="middle" x="192.9015" y="-848" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="192.9015" y="-838" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="192.9015" y="-828" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.12s(1.61%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N42 -->
<g id="edge46" class="edge">
<title>N22&#45;&gt;N42</title>
<g id="a_edge46"><a xlink:title="main.(*machine).executeSubtract ... main.Integer.Add (0.12s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M289.3832,-933.932C267.4284,-925.3483 244.483,-913.6354 226.4533,-898 217.4202,-890.1665 210.1846,-879.2755 204.7788,-869.1102"/>
<polygon fill="#000000" stroke="#000000" points="207.8913,-867.5082 200.3295,-860.0872 201.613,-870.604 207.8913,-867.5082"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).executeSubtract ... main.Integer.Add (0.12s)">
<text text-anchor="middle" x="243.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="main.(*Integer).Negate (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="836.0169,-861.5 717.7862,-861.5 717.7862,-820.5 836.0169,-820.5 836.0169,-861.5"/>
<text text-anchor="middle" x="776.9015" y="-848.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="776.9015" y="-837.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.27%)</text>
<text text-anchor="middle" x="776.9015" y="-826.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(1.21%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N48 -->
<g id="edge54" class="edge">
<title>N22&#45;&gt;N48</title>
<g id="a_edge54"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.09s)">
<path fill="none" stroke="#000000" d="M402.3562,-933.8893C434.7614,-917.5202 482.8483,-895.529 527.4533,-884 605.9143,-863.7202 629.9154,-884.1273 708.9015,-866 710.9607,-865.5274 713.0424,-865.0092 715.1349,-864.4534"/>
<polygon fill="#000000" stroke="#000000" points="716.3287,-867.7516 724.9607,-861.6083 714.3818,-861.0278 716.3287,-867.7516"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.09s)">
<text text-anchor="middle" x="544.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.assertI2I (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="385.2371,-861.5 294.5659,-861.5 294.5659,-820.5 385.2371,-820.5 385.2371,-861.5"/>
<text text-anchor="middle" x="339.9015" y="-848.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="339.9015" y="-837.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.27%)</text>
<text text-anchor="middle" x="339.9015" y="-826.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.08s(1.07%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N51 -->
<g id="edge100" class="edge">
<title>N22&#45;&gt;N51</title>
<g id="a_edge100"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.02s)">
<path fill="none" stroke="#000000" d="M306.4776,-933.9794C290.7108,-925.3978 275.4836,-913.6741 266.4533,-898 257.8077,-882.9937 269.3119,-870.5534 285.5939,-861.1643"/>
<polygon fill="#000000" stroke="#000000" points="287.2171,-864.2653 294.4625,-856.5351 283.9779,-858.0598 287.2171,-864.2653"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.02s)">
<text text-anchor="middle" x="283.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N53 -->
<g id="edge107" class="edge">
<title>N22&#45;&gt;N53</title>
<g id="a_edge107"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M338.557,-933.85C323.7762,-919.2933 310.2347,-899.6786 322.4533,-884 342.5827,-858.1703 362.2703,-874.4755 393.9015,-866 398.8562,-864.6724 403.9614,-863.2819 409.1002,-861.8654"/>
<polygon fill="#000000" stroke="#000000" points="410.2938,-865.1665 418.9933,-859.1193 408.4214,-858.4216 410.2938,-865.1665"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="339.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="strconv.ParseInt (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1966.0271,-864.5 1865.776,-864.5 1865.776,-817.5 1966.0271,-817.5 1966.0271,-864.5"/>
<text text-anchor="middle" x="1915.9015" y="-850.1" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="1915.9015" y="-837.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.06s(0.81%)</text>
<text text-anchor="middle" x="1915.9015" y="-824.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.27s(3.62%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N24 -->
<g id="edge23" class="edge">
<title>N23&#45;&gt;N24</title>
<g id="a_edge23"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.27s)">
<path fill="none" stroke="#000000" d="M1930.8481,-935.2463C1928.2294,-918.7341 1924.395,-894.556 1921.2656,-874.8235"/>
<polygon fill="#000000" stroke="#000000" points="1924.681,-874.0137 1919.6578,-864.6854 1917.7674,-875.1102 1924.681,-874.0137"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.27s)">
<text text-anchor="middle" x="1941.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="strconv.ParseUint (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1849.8473,-763 1741.9557,-763 1741.9557,-716 1849.8473,-716 1849.8473,-763"/>
<text text-anchor="middle" x="1795.9015" y="-748.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="1795.9015" y="-735.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.06s(0.81%)</text>
<text text-anchor="middle" x="1795.9015" y="-722.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.20s(2.68%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N29 -->
<g id="edge31" class="edge">
<title>N24&#45;&gt;N29</title>
<g id="a_edge31"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.20s)">
<path fill="none" stroke="#000000" d="M1888.0695,-817.4587C1871.378,-803.3405 1849.971,-785.2338 1831.9897,-770.0246"/>
<polygon fill="#000000" stroke="#000000" points="1833.8937,-767.0509 1823.9983,-763.2652 1829.3731,-772.3955 1833.8937,-767.0509"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.20s)">
<text text-anchor="middle" x="1879.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N45 -->
<g id="edge111" class="edge">
<title>N24&#45;&gt;N45</title>
<g id="a_edge111"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.01s)">
<path fill="none" stroke="#000000" d="M1917.0612,-817.4587C1917.6819,-804.8586 1918.4591,-789.0815 1919.1516,-775.0226"/>
<polygon fill="#000000" stroke="#000000" points="1922.6644,-774.8478 1919.6608,-764.6877 1915.6729,-774.5033 1922.6644,-774.8478"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.01s)">
<text text-anchor="middle" x="1934.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N36 -->
<g id="edge97" class="edge">
<title>N25&#45;&gt;N36</title>
<g id="a_edge97"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.03s)">
<path fill="none" stroke="#000000" d="M2591.0327,-185.9299C2567.8674,-174.107 2538.1272,-160.8709 2509.9015,-154 2373.8221,-120.8746 1956.768,-113.2562 1785.016,-111.5132"/>
<polygon fill="#000000" stroke="#000000" points="1784.8354,-108.0114 1774.8017,-111.4136 1784.7671,-115.0111 1784.8354,-108.0114"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.03s)">
<text text-anchor="middle" x="2568.6257" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.newdefer (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2694.1029,-130 2571.7002,-130 2571.7002,-92 2694.1029,-92 2694.1029,-130"/>
<text text-anchor="middle" x="2632.9015" y="-114" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2632.9015" y="-99" font-family="Times,serif" font-size="15.00" fill="#000000">0.16s(2.15%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N37 -->
<g id="edge38" class="edge">
<title>N25&#45;&gt;N37</title>
<g id="a_edge38"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.16s)">
<path fill="none" stroke="#000000" d="M2632.9015,-185.9068C2632.9015,-172.1672 2632.9015,-154.7315 2632.9015,-140.1395"/>
<polygon fill="#000000" stroke="#000000" points="2636.4016,-140.1104 2632.9015,-130.1104 2629.4016,-140.1104 2636.4016,-140.1104"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.16s)">
<text text-anchor="middle" x="2649.6257" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N36 -->
<g id="edge57" class="edge">
<title>N26&#45;&gt;N36</title>
<g id="a_edge57"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.09s)">
<path fill="none" stroke="#000000" d="M348.6178,-612.1279C351.7442,-611.3786 354.8468,-610.6657 357.9015,-610 492.4266,-580.683 970.9015,-657.6826 970.9015,-520 970.9015,-520 970.9015,-520 970.9015,-209.5 970.9015,-143.0135 1446.9593,-119.8003 1634.892,-113.2268"/>
<polygon fill="#000000" stroke="#000000" points="1635.094,-116.722 1644.9679,-112.8807 1634.8536,-109.7262 1635.094,-116.722"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.09s)">
<text text-anchor="middle" x="987.6257" y="-356.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.heapBitsBulkBarrier (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="344.5367,-538 189.2663,-538 189.2663,-502 344.5367,-502 344.5367,-538"/>
<text text-anchor="middle" x="266.9015" y="-522.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.heapBitsBulkBarrier</text>
<text text-anchor="middle" x="266.9015" y="-510.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N69 -->
<g id="edge91" class="edge">
<title>N26&#45;&gt;N69</title>
<g id="a_edge91"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.04s)">
<path fill="none" stroke="#000000" d="M266.9015,-609.7725C266.9015,-591.3801 266.9015,-566.9876 266.9015,-548.2714"/>
<polygon fill="#000000" stroke="#000000" points="270.4016,-548.2641 266.9015,-538.2642 263.4016,-548.2642 270.4016,-548.2641"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.04s)">
<text text-anchor="middle" x="283.6257" y="-580.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="main.Integer.Multiply (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="699.7242,-863 578.0788,-863 578.0788,-819 699.7242,-819 699.7242,-863"/>
<text text-anchor="middle" x="638.9015" y="-849.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="638.9015" y="-837.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.67%)</text>
<text text-anchor="middle" x="638.9015" y="-825.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.11s(1.48%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N46 -->
<g id="edge50" class="edge">
<title>N27&#45;&gt;N46</title>
<g id="a_edge50"><a xlink:title="main.(*machine).executeMultiply ... main.Integer.Multiply (0.11s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M676.5713,-933.946C669.6609,-916.8955 659.7184,-892.3634 651.7829,-872.7835"/>
<polygon fill="#000000" stroke="#000000" points="654.9569,-871.2966 647.957,-863.3435 648.4695,-873.9259 654.9569,-871.2966"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.(*machine).executeMultiply ... main.Integer.Multiply (0.11s)">
<text text-anchor="middle" x="678.3693" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N51 -->
<g id="edge64" class="edge">
<title>N27&#45;&gt;N51</title>
<g id="a_edge64"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.06s)">
<path fill="none" stroke="#000000" d="M640.8705,-933.8726C624.5669,-927.083 605.7116,-920.2036 587.9015,-916 542.4352,-905.2688 418.738,-921.6536 378.4533,-898 367.6964,-891.684 359.301,-881.0379 353.1302,-870.6446"/>
<polygon fill="#000000" stroke="#000000" points="356.1194,-868.8146 348.2766,-861.6914 349.9655,-872.1508 356.1194,-868.8146"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.06s)">
<text text-anchor="middle" x="395.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N53 -->
<g id="edge106" class="edge">
<title>N27&#45;&gt;N53</title>
<g id="a_edge106"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M651.0401,-933.9575C627.1531,-919.6262 594.3019,-900.2371 564.9015,-884 552.6754,-877.2478 539.2891,-870.1757 526.9046,-863.762"/>
<polygon fill="#000000" stroke="#000000" points="528.1577,-860.4704 517.6651,-859.0019 524.9517,-866.6932 528.1577,-860.4704"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="605.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.indexbytebody (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1724.3498,-757.5 1587.4533,-757.5 1587.4533,-721.5 1724.3498,-721.5 1724.3498,-757.5"/>
<text text-anchor="middle" x="1655.9015" y="-742.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.indexbytebody</text>
<text text-anchor="middle" x="1655.9015" y="-729.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.08s(1.07%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N52 -->
<g id="edge61" class="edge">
<title>N28&#45;&gt;N52</title>
<g id="a_edge61"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.08s)">
<path fill="none" stroke="#000000" d="M1756.0251,-815.9101C1735.2015,-800.0184 1708.4088,-779.5713 1687.78,-763.8283"/>
<polygon fill="#000000" stroke="#000000" points="1689.709,-760.8977 1679.6361,-757.6132 1685.4623,-766.4624 1689.709,-760.8977"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.08s)">
<text text-anchor="middle" x="1746.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N5 -->
<g id="edge43" class="edge">
<title>N29&#45;&gt;N5</title>
<g id="a_edge43"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.14s)">
<path fill="none" stroke="#000000" d="M1754.1471,-715.8697C1729.1608,-701.7291 1697.0862,-683.577 1669.9186,-668.2019"/>
<polygon fill="#000000" stroke="#000000" points="1671.3375,-664.9834 1660.9106,-663.104 1667.8897,-671.0754 1671.3375,-664.9834"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.14s)">
<text text-anchor="middle" x="1731.6257" y="-683.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N5 -->
<g id="edge60" class="edge">
<title>N30&#45;&gt;N5</title>
<g id="a_edge60"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.08s)">
<path fill="none" stroke="#000000" d="M1347.6795,-932.3756C1338.4812,-903.7157 1327.2674,-853.0453 1346.9015,-816 1387.3518,-739.6791 1476.3634,-690.0642 1540.5056,-662.7407"/>
<polygon fill="#000000" stroke="#000000" points="1541.8992,-665.9517 1549.78,-658.8706 1539.2034,-659.4916 1541.8992,-665.9517"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.08s)">
<text text-anchor="middle" x="1382.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.duffzero (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1884.1557,-36 1787.6473,-36 1787.6473,0 1884.1557,0 1884.1557,-36"/>
<text text-anchor="middle" x="1835.9015" y="-20.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="1835.9015" y="-8.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N64 -->
<g id="edge99" class="edge">
<title>N30&#45;&gt;N64</title>
<g id="a_edge99"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.03s)">
<path fill="none" stroke="#000000" d="M1329.2296,-932.3557C1317.6459,-922.2959 1304.1778,-909.9835 1292.9015,-898 1261.0318,-864.1314 1257.9625,-851.4838 1227.9015,-816 1138.4071,-710.3613 1018.9015,-723.4514 1018.9015,-585 1018.9015,-585 1018.9015,-585 1018.9015,-408 1018.9015,-294.5656 966.6281,-237.0432 1043.9015,-154 1143.5652,-46.8947 1611.5218,-24.002 1777.4117,-19.2257"/>
<polygon fill="#000000" stroke="#000000" points="1777.5287,-22.7239 1787.4281,-18.9489 1777.3352,-15.7266 1777.5287,-22.7239"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.03s)">
<text text-anchor="middle" x="1035.6257" y="-450.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N6 -->
<g id="edge63" class="edge">
<title>N31&#45;&gt;N6</title>
<g id="a_edge63"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.07s)">
<path fill="none" stroke="#000000" d="M729.5279,-1045.9512C734.3835,-1044.9444 739.192,-1043.9566 743.9015,-1043 860.0753,-1019.4035 890.2105,-1018.8596 1005.9015,-993 1007.3774,-992.6701 1008.8609,-992.3361 1010.3509,-991.9984"/>
<polygon fill="#000000" stroke="#000000" points="1011.3067,-995.37 1020.2682,-989.7184 1009.7383,-988.548 1011.3067,-995.37"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.07s)">
<text text-anchor="middle" x="932.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N40 -->
<g id="edge96" class="edge">
<title>N31&#45;&gt;N40</title>
<g id="a_edge96"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M518.609,-1045.9828C511.9602,-1044.8564 505.3487,-1043.8453 498.9015,-1043 456.5505,-1037.4474 148.877,-1050.8865 114.9015,-1025 62.9458,-985.4139 62.6682,-948.4216 73.4533,-884 81.215,-837.6376 82.4464,-823.519 107.9015,-784 111.3357,-778.6685 115.54,-773.5249 120.0079,-768.7456"/>
<polygon fill="#000000" stroke="#000000" points="122.5903,-771.1127 127.1732,-761.5603 117.6336,-766.1698 122.5903,-771.1127"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="90.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N53 -->
<g id="edge95" class="edge">
<title>N31&#45;&gt;N53</title>
<g id="a_edge95"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M599.9279,-1045.996C587.382,-1031.3295 571.5755,-1011.7367 559.4533,-993 532.7347,-951.7026 508.0527,-900.0372 494.0043,-868.8232"/>
<polygon fill="#000000" stroke="#000000" points="497.0938,-867.1571 489.8276,-859.4464 490.6994,-870.0054 497.0938,-867.1571"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="576.6257" y="-950.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.freedefer (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2848.4513,-136 2735.3518,-136 2735.3518,-86 2848.4513,-86 2848.4513,-136"/>
<text text-anchor="middle" x="2791.9015" y="-120.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="2791.9015" y="-106.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.12s(1.61%)</text>
<text text-anchor="middle" x="2791.9015" y="-92.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.13s(1.74%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N41 -->
<g id="edge45" class="edge">
<title>N33&#45;&gt;N41</title>
<g id="a_edge45"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.13s)">
<path fill="none" stroke="#000000" d="M2791.9015,-187.1488C2791.9015,-175.0268 2791.9015,-159.7686 2791.9015,-146.0996"/>
<polygon fill="#000000" stroke="#000000" points="2795.4016,-146.0348 2791.9015,-136.0348 2788.4016,-146.0349 2795.4016,-146.0348"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.13s)">
<text text-anchor="middle" x="2808.6257" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N4 -->
<g id="edge39" class="edge">
<title>N34&#45;&gt;N4</title>
<g id="a_edge39"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.16s)">
<path fill="none" stroke="#000000" d="M940.5464,-821.8813C1052.4925,-771.6932 1356.9948,-635.1775 1515.3177,-564.1975"/>
<polygon fill="#000000" stroke="#000000" points="1516.9094,-567.3196 1524.6025,-560.0349 1514.0457,-560.9322 1516.9094,-567.3196"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.16s)">
<text text-anchor="middle" x="1264.6257" y="-683.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime._System (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2709.6714,-426 2636.1316,-426 2636.1316,-390 2709.6714,-390 2709.6714,-426"/>
<text text-anchor="middle" x="2672.9015" y="-409.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="2672.9015" y="-401.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.16s(2.15%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N7 -->
<g id="edge37" class="edge">
<title>N35&#45;&gt;N7</title>
<g id="a_edge37"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.16s)">
<path fill="none" stroke="#000000" d="M2676.3558,-389.9964C2679.0284,-378.9977 2683.4769,-364.9841 2690.4533,-354 2692.7012,-350.4608 2695.2949,-347.0122 2698.087,-343.7025"/>
<polygon fill="#000000" stroke="#000000" points="2700.7309,-345.9976 2704.8923,-336.2542 2695.5631,-341.2759 2700.7309,-345.9976"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.16s)">
<text text-anchor="middle" x="2706.6257" y="-356.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N62 -->
<g id="edge105" class="edge">
<title>N39&#45;&gt;N62</title>
<g id="a_edge105"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.02s)">
<path fill="none" stroke="#000000" d="M2451.297,-1045.8827C2448.1262,-1044.8945 2444.9833,-1043.9293 2441.9015,-1043 2351.236,-1015.6608 2245.2288,-987.4969 2179.5681,-970.4912"/>
<polygon fill="#000000" stroke="#000000" points="2180.3403,-967.0758 2169.7826,-967.9621 2178.5886,-973.8531 2180.3403,-967.0758"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.02s)">
<text text-anchor="middle" x="2396.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N26 -->
<g id="edge55" class="edge">
<title>N40&#45;&gt;N26</title>
<g id="a_edge55"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.09s)">
<path fill="none" stroke="#000000" d="M178.9283,-717.4039C193.8665,-703.6662 213.3694,-685.7305 230.2151,-670.2384"/>
<polygon fill="#000000" stroke="#000000" points="232.7507,-672.6616 237.7421,-663.3162 228.0123,-667.5092 232.7507,-672.6616"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.09s)">
<text text-anchor="middle" x="234.6257" y="-683.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N64 -->
<g id="edge109" class="edge">
<title>N41&#45;&gt;N64</title>
<g id="a_edge109"><a xlink:title="runtime.freedefer &#45;&gt; runtime.duffzero (0.01s)">
<path fill="none" stroke="#000000" d="M2735.3106,-93.3206C2724.6299,-90.4934 2713.4884,-87.8834 2702.9015,-86 2401.9849,-32.4674 2034.8391,-21.0772 1894.3693,-18.6543"/>
<polygon fill="#000000" stroke="#000000" points="1894.31,-15.153 1884.254,-18.4888 1894.1953,-22.1521 1894.31,-15.153"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="runtime.freedefer &#45;&gt; runtime.duffzero (0.01s)">
<text text-anchor="middle" x="2602.6257" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N8 -->
<g id="edge53" class="edge">
<title>N42&#45;&gt;N8</title>
<g id="a_edge53"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.10s)">
<path fill="none" stroke="#000000" d="M193.7729,-821.98C195.4533,-809.1154 199.9204,-792.903 211.4533,-784 214.8389,-781.3864 711.8093,-753.6949 898.8232,-743.3603"/>
<polygon fill="#000000" stroke="#000000" points="899.0342,-746.8541 908.8259,-742.8078 898.648,-739.8647 899.0342,-746.8541"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.10s)">
<text text-anchor="middle" x="228.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N40 -->
<g id="edge108" class="edge">
<title>N42&#45;&gt;N40</title>
<g id="a_edge108"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.01s)">
<path fill="none" stroke="#000000" d="M170.8616,-821.5859C164.6838,-814.8075 158.7572,-806.6992 155.4533,-798 152.3512,-789.8321 151.2716,-780.5479 151.2055,-771.82"/>
<polygon fill="#000000" stroke="#000000" points="154.7124,-771.677 151.5598,-761.5621 147.7166,-771.4353 154.7124,-771.677"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.01s)">
<text text-anchor="middle" x="172.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N7 -->
<g id="edge51" class="edge">
<title>N44&#45;&gt;N7</title>
<g id="a_edge51"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.11s)">
<path fill="none" stroke="#000000" d="M2578.3759,-388.7571C2598.2828,-378.3347 2623.4034,-365.3117 2645.966,-354 2654.7638,-349.5892 2664.0679,-344.9994 2673.2454,-340.5155"/>
<polygon fill="#000000" stroke="#000000" points="2674.8996,-343.6029 2682.3572,-336.0774 2671.8343,-337.3097 2674.8996,-343.6029"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.11s)">
<text text-anchor="middle" x="2662.3693" y="-356.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N8 -->
<g id="edge77" class="edge">
<title>N46&#45;&gt;N8</title>
<g id="a_edge77"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.04s)">
<path fill="none" stroke="#000000" d="M699.9148,-818.9792C702.9483,-817.9567 705.9564,-816.9583 708.9015,-816 772.7932,-795.2099 846.304,-773.811 898.8235,-758.951"/>
<polygon fill="#000000" stroke="#000000" points="900.0348,-762.246 908.7082,-756.1613 898.1335,-755.5091 900.0348,-762.246"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.04s)">
<text text-anchor="middle" x="825.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N40 -->
<g id="edge104" class="edge">
<title>N46&#45;&gt;N40</title>
<g id="a_edge104"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M578.7308,-818.9619C575.4186,-817.9205 572.1266,-816.9253 568.9015,-816 445.7723,-780.6743 297.2033,-757.8632 215.7317,-746.9877"/>
<polygon fill="#000000" stroke="#000000" points="216.0256,-743.4962 205.6536,-745.6577 215.1097,-750.4361 216.0256,-743.4962"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="508.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.memclr (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2522.7915,-129 2423.0116,-129 2423.0116,-93 2522.7915,-93 2522.7915,-129"/>
<text text-anchor="middle" x="2472.9015" y="-113.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="2472.9015" y="-100.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.94%)</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N54 -->
<g id="edge65" class="edge">
<title>N47&#45;&gt;N54</title>
<g id="a_edge65"><a xlink:title="runtime.(*mcentral).cacheSpan ... runtime.memclr (0.06s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2472.9015,-190.0396C2472.9015,-175.5061 2472.9015,-155.429 2472.9015,-139.1468"/>
<polygon fill="#000000" stroke="#000000" points="2476.4016,-139.0915 2472.9015,-129.0915 2469.4016,-139.0915 2476.4016,-139.0915"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan ... runtime.memclr (0.06s)">
<text text-anchor="middle" x="2489.6257" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N8 -->
<g id="edge62" class="edge">
<title>N48&#45;&gt;N8</title>
<g id="a_edge62"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.07s)">
<path fill="none" stroke="#000000" d="M815.7556,-820.46C842.6831,-806.2249 879.0417,-787.004 909.5751,-770.8626"/>
<polygon fill="#000000" stroke="#000000" points="911.2273,-773.9483 918.4323,-766.1804 907.9558,-767.7598 911.2273,-773.9483"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.07s)">
<text text-anchor="middle" x="901.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.getitab (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="467.5565,-761.5 374.2466,-761.5 374.2466,-717.5 467.5565,-717.5 467.5565,-761.5"/>
<text text-anchor="middle" x="420.9015" y="-747.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="420.9015" y="-735.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.67%)</text>
<text text-anchor="middle" x="420.9015" y="-723.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.09s(1.21%)</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime/internal/atomic.Loadp (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="529.3547,-654.5 366.4484,-654.5 366.4484,-618.5 529.3547,-618.5 529.3547,-654.5"/>
<text text-anchor="middle" x="447.9015" y="-638.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime/internal/atomic.Loadp</text>
<text text-anchor="middle" x="447.9015" y="-626.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N78 -->
<g id="edge81" class="edge">
<title>N49&#45;&gt;N78</title>
<g id="a_edge81"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.04s)">
<path fill="none" stroke="#000000" d="M426.6937,-717.4039C430.7486,-701.9353 436.1987,-681.1443 440.5585,-664.5124"/>
<polygon fill="#000000" stroke="#000000" points="443.9598,-665.3397 443.11,-654.779 437.1886,-663.5646 443.9598,-665.3397"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.04s)">
<text text-anchor="middle" x="453.6257" y="-683.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.schedule (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3009.8504,-861.5 2917.9527,-861.5 2917.9527,-820.5 3009.8504,-820.5 3009.8504,-861.5"/>
<text text-anchor="middle" x="2963.9015" y="-848.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="2963.9015" y="-837.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.27%)</text>
<text text-anchor="middle" x="2963.9015" y="-826.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(1.21%)</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.findrunnable (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2986.7225,-757.5 2903.0806,-757.5 2903.0806,-721.5 2986.7225,-721.5 2986.7225,-757.5"/>
<text text-anchor="middle" x="2944.9015" y="-741.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="2944.9015" y="-733.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N66 -->
<g id="edge87" class="edge">
<title>N50&#45;&gt;N66</title>
<g id="a_edge87"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.04s)">
<path fill="none" stroke="#000000" d="M2960.0566,-820.46C2957.228,-805.3492 2953.3477,-784.6203 2950.2216,-767.9206"/>
<polygon fill="#000000" stroke="#000000" points="2953.5752,-766.8131 2948.2949,-757.6279 2946.6947,-768.1012 2953.5752,-766.8131"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.04s)">
<text text-anchor="middle" x="2971.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N49 -->
<g id="edge66" class="edge">
<title>N51&#45;&gt;N49</title>
<g id="a_edge66"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.06s)">
<path fill="none" stroke="#000000" d="M356.2931,-820.46C367.8666,-805.9574 383.5697,-786.28 396.5966,-769.9561"/>
<polygon fill="#000000" stroke="#000000" points="399.627,-771.7701 403.1289,-761.7707 394.1556,-767.4037 399.627,-771.7701"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.06s)">
<text text-anchor="middle" x="402.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.mcall (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3128.6714,-1087.5 3055.1316,-1087.5 3055.1316,-1051.5 3128.6714,-1051.5 3128.6714,-1087.5"/>
<text text-anchor="middle" x="3091.9015" y="-1071.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="3091.9015" y="-1063.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(0.81%)</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.park_m (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3122.6714,-972.5 3049.1316,-972.5 3049.1316,-936.5 3122.6714,-936.5 3122.6714,-972.5"/>
<text text-anchor="middle" x="3085.9015" y="-956.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.park_m</text>
<text text-anchor="middle" x="3085.9015" y="-948.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.67%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N59 -->
<g id="edge70" class="edge">
<title>N56&#45;&gt;N59</title>
<g id="a_edge70"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.05s)">
<path fill="none" stroke="#000000" d="M3090.9508,-1051.2779C3089.9897,-1032.8567 3088.4911,-1004.1329 3087.3758,-982.7569"/>
<polygon fill="#000000" stroke="#000000" points="3090.8642,-982.4409 3086.8478,-972.6368 3083.8737,-982.8056 3090.8642,-982.4409"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.05s)">
<text text-anchor="middle" x="3105.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.usleep (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1281.2971,-1398 1188.506,-1398 1188.506,-1362 1281.2971,-1362 1281.2971,-1398"/>
<text text-anchor="middle" x="1234.9015" y="-1382.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="1234.9015" y="-1369.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.06s(0.81%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N4 -->
<g id="edge83" class="edge">
<title>N58&#45;&gt;N4</title>
<g id="a_edge83"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.04s)">
<path fill="none" stroke="#000000" d="M1372.3457,-1050.4342C1378.1204,-1047.7206 1384.109,-1045.1322 1389.9015,-1043 1421.2607,-1031.4569 1436.5462,-1045.5436 1462.9015,-1025 1475.6032,-1015.0992 1473.1134,-1007.6041 1479.9015,-993 1505.5395,-937.8416 1518.1949,-925.4836 1530.9015,-866 1536.8482,-838.1619 1530.8667,-636.6387 1540.9015,-610 1546.4866,-595.1736 1555.5435,-580.9524 1565.4076,-568.367"/>
<polygon fill="#000000" stroke="#000000" points="1568.3505,-570.2974 1571.9779,-560.3429 1562.9345,-565.8627 1568.3505,-570.2974"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.04s)">
<text text-anchor="middle" x="1550.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N50 -->
<g id="edge71" class="edge">
<title>N59&#45;&gt;N50</title>
<g id="a_edge71"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.05s)">
<path fill="none" stroke="#000000" d="M3066.3001,-936.2643C3046.693,-918.0232 3016.2815,-889.7305 2993.6889,-868.712"/>
<polygon fill="#000000" stroke="#000000" points="2996.0593,-866.1368 2986.3537,-861.8879 2991.2912,-871.2619 2996.0593,-866.1368"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.05s)">
<text text-anchor="middle" x="3041.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.semasleep1 (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3213.6597,-129 3134.1434,-129 3134.1434,-93 3213.6597,-93 3213.6597,-129"/>
<text text-anchor="middle" x="3173.9015" y="-112.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="3173.9015" y="-104.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.67%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N61 -->
<g id="edge72" class="edge">
<title>N60&#45;&gt;N61</title>
<g id="a_edge72"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.05s)">
<path fill="none" stroke="#000000" d="M3173.9015,-191.4336C3173.9015,-176.9456 3173.9015,-156.3416 3173.9015,-139.6145"/>
<polygon fill="#000000" stroke="#000000" points="3177.4016,-139.2854 3173.9015,-129.2855 3170.4016,-139.2855 3177.4016,-139.2854"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.05s)">
<text text-anchor="middle" x="3190.6257" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.mach_semaphore_wait (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3257.3508,-36 3090.4523,-36 3090.4523,0 3257.3508,0 3257.3508,-36"/>
<text text-anchor="middle" x="3173.9015" y="-20.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="3173.9015" y="-8.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N70 -->
<g id="edge89" class="edge">
<title>N61&#45;&gt;N70</title>
<g id="a_edge89"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.04s)">
<path fill="none" stroke="#000000" d="M3173.9015,-92.6262C3173.9015,-79.4212 3173.9015,-61.369 3173.9015,-46.3274"/>
<polygon fill="#000000" stroke="#000000" points="3177.4016,-46.0192 3173.9015,-36.0192 3170.4016,-46.0192 3177.4016,-46.0192"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.04s)">
<text text-anchor="middle" x="3190.6257" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.makemap (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2410.3784,-973.5 2321.4247,-973.5 2321.4247,-935.5 2410.3784,-935.5 2410.3784,-973.5"/>
<text text-anchor="middle" x="2365.9015" y="-961.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="2365.9015" y="-951.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.13%)</text>
<text text-anchor="middle" x="2365.9015" y="-941.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N71 -->
<g id="edge76" class="edge">
<title>N63&#45;&gt;N71</title>
<g id="a_edge76"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.04s)">
<path fill="none" stroke="#000000" d="M2161.9802,-1051.4047C2203.6969,-1031.5807 2270.7507,-999.7163 2316.4915,-977.98"/>
<polygon fill="#000000" stroke="#000000" points="2318.0967,-981.0923 2325.6265,-973.639 2315.0922,-974.7699 2318.0967,-981.0923"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.04s)">
<text text-anchor="middle" x="2261.6257" y="-1013.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.stopm (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2977.6714,-654.5 2904.1316,-654.5 2904.1316,-618.5 2977.6714,-618.5 2977.6714,-654.5"/>
<text text-anchor="middle" x="2940.9015" y="-638.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="2940.9015" y="-630.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N77 -->
<g id="edge80" class="edge">
<title>N66&#45;&gt;N77</title>
<g id="a_edge80"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.04s)">
<path fill="none" stroke="#000000" d="M2944.1864,-721.0857C2943.5806,-705.4868 2942.7021,-682.865 2942.006,-664.9401"/>
<polygon fill="#000000" stroke="#000000" points="2945.496,-664.6115 2941.6105,-654.7549 2938.5012,-664.8832 2945.496,-664.6115"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.04s)">
<text text-anchor="middle" x="2959.6257" y="-683.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.goschedImpl (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3006.1088,-972.5 2921.6942,-972.5 2921.6942,-936.5 3006.1088,-936.5 3006.1088,-972.5"/>
<text text-anchor="middle" x="2963.9015" y="-956.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="2963.9015" y="-948.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N50 -->
<g id="edge82" class="edge">
<title>N68&#45;&gt;N50</title>
<g id="a_edge82"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.04s)">
<path fill="none" stroke="#000000" d="M2963.9015,-936.2643C2963.9015,-918.975 2963.9015,-892.6555 2963.9015,-872.0588"/>
<polygon fill="#000000" stroke="#000000" points="2967.4016,-871.8878 2963.9015,-861.8879 2960.4016,-871.8879 2967.4016,-871.8878"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.04s)">
<text text-anchor="middle" x="2980.6257" y="-886.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N5 -->
<g id="edge98" class="edge">
<title>N71&#45;&gt;N5</title>
<g id="a_edge98"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.03s)">
<path fill="none" stroke="#000000" d="M2348.9316,-935.2691C2301.9986,-883.5562 2164.0963,-741.3592 2015.9015,-681 1958.2751,-657.5289 1787.7693,-645.228 1688.2951,-639.8802"/>
<polygon fill="#000000" stroke="#000000" points="1688.1795,-636.3694 1678.0092,-639.3384 1687.8112,-643.3597 1688.1795,-636.3694"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.03s)">
<text text-anchor="middle" x="2217.6257" y="-786.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.morestack (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1373.6597,-1550 1298.1433,-1550 1298.1433,-1514 1373.6597,-1514 1373.6597,-1550"/>
<text text-anchor="middle" x="1335.9015" y="-1533.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="1335.9015" y="-1525.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.newstack (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1372.6714,-1398 1299.1316,-1398 1299.1316,-1362 1372.6714,-1362 1372.6714,-1398"/>
<text text-anchor="middle" x="1335.9015" y="-1381.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="1335.9015" y="-1373.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N73 -->
<g id="edge84" class="edge">
<title>N72&#45;&gt;N73</title>
<g id="a_edge84"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.04s)">
<path fill="none" stroke="#000000" d="M1335.9015,-1513.9667C1335.9015,-1487.7983 1335.9015,-1439.0561 1335.9015,-1408.1368"/>
<polygon fill="#000000" stroke="#000000" points="1339.4016,-1408.0098 1335.9015,-1398.0098 1332.4016,-1408.0099 1339.4016,-1408.0098"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.04s)">
<text text-anchor="middle" x="1352.6257" y="-1418.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.notesleep (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2972.6714,-538 2899.1316,-538 2899.1316,-502 2972.6714,-502 2972.6714,-538"/>
<text text-anchor="middle" x="2935.9015" y="-521.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notesleep</text>
<text text-anchor="middle" x="2935.9015" y="-513.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.semasleep (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2954.6597,-426 2879.1433,-426 2879.1433,-390 2954.6597,-390 2954.6597,-426"/>
<text text-anchor="middle" x="2916.9015" y="-409.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep</text>
<text text-anchor="middle" x="2916.9015" y="-401.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N76 -->
<g id="edge85" class="edge">
<title>N74&#45;&gt;N76</title>
<g id="a_edge85"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.04s)">
<path fill="none" stroke="#000000" d="M2932.7641,-501.5055C2929.7483,-483.7282 2925.1493,-456.6184 2921.6784,-436.1587"/>
<polygon fill="#000000" stroke="#000000" points="2925.1039,-435.4241 2919.9806,-426.1504 2918.2025,-436.5949 2925.1039,-435.4241"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.04s)">
<text text-anchor="middle" x="2941.6257" y="-450.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.osyield (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1271.6714,-1550 1198.1316,-1550 1198.1316,-1514 1271.6714,-1514 1271.6714,-1550"/>
<text text-anchor="middle" x="1234.9015" y="-1533.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="1234.9015" y="-1525.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.54%)</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N57 -->
<g id="edge86" class="edge">
<title>N75&#45;&gt;N57</title>
<g id="a_edge86"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.04s)">
<path fill="none" stroke="#000000" d="M1234.9015,-1513.9667C1234.9015,-1487.7983 1234.9015,-1439.0561 1234.9015,-1408.1368"/>
<polygon fill="#000000" stroke="#000000" points="1238.4016,-1408.0098 1234.9015,-1398.0098 1231.4016,-1408.0099 1238.4016,-1408.0098"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.04s)">
<text text-anchor="middle" x="1251.6257" y="-1418.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N7 -->
<g id="edge88" class="edge">
<title>N76&#45;&gt;N7</title>
<g id="a_edge88"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.04s)">
<path fill="none" stroke="#000000" d="M2893.4235,-389.9908C2878.3229,-378.8563 2858.0164,-364.6989 2838.9015,-354 2830.4369,-349.2622 2821.3703,-344.658 2812.2709,-340.3198"/>
<polygon fill="#000000" stroke="#000000" points="2813.7233,-337.1352 2803.1816,-336.0752 2810.7614,-343.4777 2813.7233,-337.1352"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.04s)">
<text text-anchor="middle" x="2877.6257" y="-356.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N74 -->
<g id="edge90" class="edge">
<title>N77&#45;&gt;N74</title>
<g id="a_edge90"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.04s)">
<path fill="none" stroke="#000000" d="M2940.1203,-618.2969C2939.313,-599.4882 2938.0424,-569.8828 2937.1064,-548.0738"/>
<polygon fill="#000000" stroke="#000000" points="2940.603,-547.916 2936.6773,-538.0753 2933.6094,-548.2162 2940.603,-547.916"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.04s)">
<text text-anchor="middle" x="2954.6257" y="-580.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction (7.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1174.0852,-1312 1027.7178,-1312 1027.7178,-1276 1174.0852,-1276 1174.0852,-1312"/>
<text text-anchor="middle" x="1100.9015" y="-1295.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.HandleAction</text>
<text text-anchor="middle" x="1100.9015" y="-1287.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7.10s(95.30%)</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N80 -->
<g id="edge1" class="edge">
<title>N79&#45;&gt;N80</title>
<g id="a_edge1"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (7.10s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1100.9015,-1361.7616C1100.9015,-1350.3597 1100.9015,-1335.4342 1100.9015,-1322.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1105.2766,-1322.2121 1100.9015,-1312.2121 1096.5266,-1322.2121 1105.2766,-1322.2121"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (7.10s)">
<text text-anchor="middle" x="1117.6257" y="-1332.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.10s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N2 -->
<g id="edge2" class="edge">
<title>N80&#45;&gt;N2</title>
<g id="a_edge2"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction ... main.(*machine).execute (7.10s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M1100.9015,-1275.6793C1100.9015,-1264.8316 1100.9015,-1250.5069 1100.9015,-1236.4979"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1105.2766,-1236.4072 1100.9015,-1226.4072 1096.5266,-1236.4073 1105.2766,-1236.4072"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction ... main.(*machine).execute (7.10s)">
<text text-anchor="middle" x="1117.6257" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.10s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration6.svg.











































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2063)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2063 2795.9985,-2063 2795.9985,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="288.9927,-1867 288.9927,-2051 934.9927,-2051 934.9927,-1867 288.9927,-1867"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="926.8364,-2043 297.1489,-2043 297.1489,-1875 926.8364,-1875 926.8364,-2043"/>
<text text-anchor="start" x="305.0708" y="-2013.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="305.0708" y="-1981.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="305.0708" y="-1949.4" font-family="Times,serif" font-size="32.00" fill="#000000">7.76s of 8.13s total (95.45%)</text>
<text text-anchor="start" x="305.0708" y="-1917.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 61 nodes (cum &lt;= 0.04s)</text>
<text text-anchor="start" x="305.0708" y="-1885.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 91 (cum &gt;= 0.14s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (7.83s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1022.7625,-1977 945.2228,-1977 945.2228,-1941 1022.7625,-1941 1022.7625,-1977"/>
<text text-anchor="middle" x="983.9927" y="-1960.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="983.9927" y="-1952.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7.83s(96.31%)</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.gcBgMarkWorker (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="927.3834,-1825 826.602,-1825 826.602,-1789 927.3834,-1789 927.3834,-1825"/>
<text text-anchor="middle" x="876.9927" y="-1808.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="876.9927" y="-1800.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.62%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N64 -->
<g id="edge85" class="edge">
<title>N1&#45;&gt;N64</title>
<g id="a_edge85"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.05s)">
<path fill="none" stroke="#000000" d="M977.2361,-1940.6799C969.614,-1921.3332 956.0288,-1890.4466 938.9927,-1867 929.8529,-1854.421 917.9312,-1842.1781 906.9864,-1832.0669"/>
<polygon fill="#000000" stroke="#000000" points="909.0202,-1829.1889 899.2433,-1825.1068 904.3407,-1834.3949 909.0202,-1829.1889"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.05s)">
<text text-anchor="middle" x="947.7168" y="-1845.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.main (7.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1022.7625,-1825 945.2228,-1825 945.2228,-1789 1022.7625,-1789 1022.7625,-1825"/>
<text text-anchor="middle" x="983.9927" y="-1808.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.main</text>
<text text-anchor="middle" x="983.9927" y="-1800.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7.77s(95.57%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N78 -->
<g id="edge6" class="edge">
<title>N1&#45;&gt;N78</title>
<g id="a_edge6"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (7.77s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M983.9927,-1940.9667C983.9927,-1914.7983 983.9927,-1866.0561 983.9927,-1835.1368"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="988.3678,-1835.0098 983.9927,-1825.0098 979.6178,-1835.0099 988.3678,-1835.0098"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (7.77s)">
<text text-anchor="middle" x="1000.7168" y="-1845.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.77s</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (7.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1113.036,-1309 854.9493,-1309 854.9493,-1229 1113.036,-1229 1113.036,-1309"/>
<text text-anchor="middle" x="983.9927" y="-1285.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="983.9927" y="-1261.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.06s(13.04%)</text>
<text text-anchor="middle" x="983.9927" y="-1237.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 7.77s(95.57%)</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (7.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1079.9766,-1171.5 888.0088,-1171.5 888.0088,-1130.5 1079.9766,-1130.5 1079.9766,-1171.5"/>
<text text-anchor="middle" x="983.9927" y="-1158.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="983.9927" y="-1147.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.37%)</text>
<text text-anchor="middle" x="983.9927" y="-1136.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 7.77s(95.57%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N3 -->
<g id="edge73" class="edge">
<title>N2&#45;&gt;N3</title>
<g id="a_edge73"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.06s)">
<path fill="none" stroke="#000000" d="M1014.847,-1228.972C1019.379,-1218.748 1021.4964,-1207.6349 1017.9927,-1197 1016.0816,-1191.1993 1013.1265,-1185.5308 1009.7393,-1180.2659"/>
<polygon fill="#000000" stroke="#000000" points="1012.3888,-1177.9524 1003.739,-1171.8342 1006.6855,-1182.0111 1012.3888,-1177.9524"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.06s)">
<text text-anchor="middle" x="1036.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.mapaccess2_faststr (1.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1190.7438,-1073 931.2416,-1073 931.2416,-999 1190.7438,-999 1190.7438,-1073"/>
<text text-anchor="middle" x="1060.9927" y="-1051.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="1060.9927" y="-1029.4" font-family="Times,serif" font-size="22.00" fill="#000000">0.73s(8.98%)</text>
<text text-anchor="middle" x="1060.9927" y="-1007.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 1.23s(15.13%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge10" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.80s)">
<path fill="none" stroke="#000000" d="M1049.8547,-1228.8124C1065.9734,-1215.2546 1080.9073,-1198.5198 1088.9927,-1179 1101.7785,-1148.1323 1093.9196,-1111.0541 1083.3143,-1082.3889"/>
<polygon fill="#000000" stroke="#000000" points="1086.5465,-1081.0441 1079.6383,-1073.0113 1080.0294,-1083.5989 1086.5465,-1081.0441"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (0.80s)">
<text text-anchor="middle" x="1112.7168" y="-1146.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.80s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="main.(*machine).executeMathWord (0.75s)">
<polygon fill="#f8f8f8" stroke="#000000" points="392.4614,-1173 203.5239,-1173 203.5239,-1129 392.4614,-1129 392.4614,-1173"/>
<text text-anchor="middle" x="297.9927" y="-1159.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="297.9927" y="-1147.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.62%)</text>
<text text-anchor="middle" x="297.9927" y="-1135.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.75s(9.23%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N8 -->
<g id="edge11" class="edge">
<title>N2&#45;&gt;N8</title>
<g id="a_edge11"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.75s)">
<path fill="none" stroke="#000000" d="M854.7165,-1253.2792C736.0727,-1237.8504 555.7696,-1211.8759 400.9927,-1179 395.9116,-1177.9207 390.7083,-1176.7421 385.4705,-1175.4988"/>
<polygon fill="#000000" stroke="#000000" points="385.9229,-1172.0066 375.3783,-1173.0373 384.2642,-1178.8073 385.9229,-1172.0066"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.75s)">
<text text-anchor="middle" x="577.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.75s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.convT2I (0.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="911.7176,-746 808.2677,-746 808.2677,-699 911.7176,-699 911.7176,-746"/>
<text text-anchor="middle" x="859.9927" y="-731.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="859.9927" y="-718.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.09s(1.11%)</text>
<text text-anchor="middle" x="859.9927" y="-705.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.70s(8.61%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N9 -->
<g id="edge16" class="edge">
<title>N2&#45;&gt;N9</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.55s)">
<path fill="none" stroke="#000000" d="M907.9343,-1228.7338C882.2668,-1209.3519 859.9927,-1183.2434 859.9927,-1151 859.9927,-1151 859.9927,-1151 859.9927,-824 859.9927,-801.4451 859.9927,-776.071 859.9927,-756.3351"/>
<polygon fill="#000000" stroke="#000000" points="863.4928,-756.2896 859.9927,-746.2896 856.4928,-756.2896 863.4928,-756.2896"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.55s)">
<text text-anchor="middle" x="876.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.55s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.(*CodeQuotation).cloneCode (0.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1602.7711,-1174.5 1407.2142,-1174.5 1407.2142,-1127.5 1602.7711,-1127.5 1602.7711,-1174.5"/>
<text text-anchor="middle" x="1504.9927" y="-1160.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="1504.9927" y="-1147.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.86%)</text>
<text text-anchor="middle" x="1504.9927" y="-1134.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.65s(8.00%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N10 -->
<g id="edge12" class="edge">
<title>N2&#45;&gt;N10</title>
<g id="a_edge12"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.65s)">
<path fill="none" stroke="#000000" d="M1113.0426,-1242.6605C1194.9112,-1225.5275 1302.9422,-1202.1392 1397.9927,-1179 1400.6557,-1178.3517 1403.3543,-1177.6887 1406.0764,-1177.0146"/>
<polygon fill="#000000" stroke="#000000" points="1407.1598,-1180.3515 1416.0131,-1174.5317 1405.4629,-1173.5603 1407.1598,-1180.3515"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (0.65s)">
<text text-anchor="middle" x="1336.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.65s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.(*machine).hasPrefixWord (0.59s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1389.1312,-1174.5 1204.8541,-1174.5 1204.8541,-1127.5 1389.1312,-1127.5 1389.1312,-1174.5"/>
<text text-anchor="middle" x="1296.9927" y="-1160.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="1296.9927" y="-1147.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(1.23%)</text>
<text text-anchor="middle" x="1296.9927" y="-1134.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.59s(7.26%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N11 -->
<g id="edge13" class="edge">
<title>N2&#45;&gt;N11</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.59s)">
<path fill="none" stroke="#000000" d="M1113.1769,-1238.0134C1139.3305,-1230.2947 1166.3537,-1221.2471 1190.9927,-1211 1211.6313,-1202.4166 1233.2983,-1190.6921 1251.6257,-1179.8838"/>
<polygon fill="#000000" stroke="#000000" points="1253.5534,-1182.809 1260.3354,-1174.6693 1249.9576,-1176.8031 1253.5534,-1182.809"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.59s)">
<text text-anchor="middle" x="1235.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.59s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.tryParseInt (0.59s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2070.2768,-1174.5 1967.7086,-1174.5 1967.7086,-1127.5 2070.2768,-1127.5 2070.2768,-1174.5"/>
<text text-anchor="middle" x="2018.9927" y="-1160.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="2018.9927" y="-1147.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.86%)</text>
<text text-anchor="middle" x="2018.9927" y="-1134.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.59s(7.26%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N12 -->
<g id="edge14" class="edge">
<title>N2&#45;&gt;N12</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.59s)">
<path fill="none" stroke="#000000" d="M1113.4475,-1264.3936C1321.448,-1256.3236 1720.8195,-1237.8906 1859.9927,-1211 1894.3661,-1204.3585 1931.0343,-1190.9834 1960.4853,-1178.5437"/>
<polygon fill="#000000" stroke="#000000" points="1961.9768,-1181.7122 1969.7816,-1174.5474 1959.2122,-1175.2813 1961.9768,-1181.7122"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.59s)">
<text text-anchor="middle" x="1926.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.59s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="runtime.deferreturn (0.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1949.3209,-1179 1808.6644,-1179 1808.6644,-1123 1949.3209,-1123 1949.3209,-1179"/>
<text text-anchor="middle" x="1878.9927" y="-1162.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="1878.9927" y="-1146.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.24s(2.95%)</text>
<text text-anchor="middle" x="1878.9927" y="-1130.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.48s(5.90%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge18" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.48s)">
<path fill="none" stroke="#000000" d="M1113.3198,-1263.6008C1326.0829,-1254.1442 1732.7006,-1233.4439 1794.9927,-1211 1811.0497,-1205.2146 1826.7848,-1195.4302 1840.2154,-1185.4228"/>
<polygon fill="#000000" stroke="#000000" points="1842.4951,-1188.0843 1848.2623,-1179.1967 1838.2115,-1182.548 1842.4951,-1188.0843"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.48s)">
<text text-anchor="middle" x="1839.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.48s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.tryParseFloat (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2452.0599,-1174.5 2337.9255,-1174.5 2337.9255,-1127.5 2452.0599,-1127.5 2452.0599,-1174.5"/>
<text text-anchor="middle" x="2394.9927" y="-1160.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="2394.9927" y="-1147.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.86%)</text>
<text text-anchor="middle" x="2394.9927" y="-1134.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.44s(5.41%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N15 -->
<g id="edge19" class="edge">
<title>N2&#45;&gt;N15</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.44s)">
<path fill="none" stroke="#000000" d="M1113.1752,-1264.5981C1314.6208,-1257.149 1715.6959,-1239.972 2054.9927,-1211 2177.1536,-1200.5689 2210.4685,-1210.3708 2328.9927,-1179 2330.4591,-1178.6119 2331.9356,-1178.1972 2333.4177,-1177.7595"/>
<polygon fill="#000000" stroke="#000000" points="2334.8064,-1180.9885 2343.2366,-1174.5712 2332.6445,-1174.3307 2334.8064,-1180.9885"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.44s)">
<text text-anchor="middle" x="2261.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.memeqbody (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1392.9601,-947.5 1227.0252,-947.5 1227.0252,-903.5 1392.9601,-903.5 1392.9601,-947.5"/>
<text text-anchor="middle" x="1309.9927" y="-929.1" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="1309.9927" y="-911.1" font-family="Times,serif" font-size="18.00" fill="#000000">0.35s(4.31%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N18 -->
<g id="edge30" class="edge">
<title>N2&#45;&gt;N18</title>
<g id="a_edge30"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.24s)">
<path fill="none" stroke="#000000" d="M1059.2264,-1228.9307C1069.3482,-1223.1087 1079.5051,-1217.0376 1088.9927,-1211 1140.9392,-1177.9429 1148.715,-1162.4466 1195.9927,-1123 1205.9595,-1114.684 1210.7504,-1115.0279 1218.9927,-1105 1256.669,-1059.1617 1284.4043,-995.1474 1298.8078,-957.244"/>
<polygon fill="#000000" stroke="#000000" points="1302.1372,-958.3325 1302.3473,-947.7398 1295.5773,-955.8895 1302.1372,-958.3325"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.24s)">
<text text-anchor="middle" x="1246.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="619.9614,-1173 410.0239,-1173 410.0239,-1129 619.9614,-1129 619.9614,-1173"/>
<text text-anchor="middle" x="514.9927" y="-1159.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="514.9927" y="-1147.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.49%)</text>
<text text-anchor="middle" x="514.9927" y="-1135.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.32s(3.94%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N21 -->
<g id="edge23" class="edge">
<title>N2&#45;&gt;N21</title>
<g id="a_edge23"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.32s)">
<path fill="none" stroke="#000000" d="M854.9055,-1236.5218C778.2488,-1217.235 682.6139,-1193.1734 612.3294,-1175.4898"/>
<polygon fill="#000000" stroke="#000000" points="613.1366,-1172.0839 602.5848,-1173.0381 611.4286,-1178.8724 613.1366,-1172.0839"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.32s)">
<text text-anchor="middle" x="766.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.deferproc (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2572.2841,-1173 2469.7012,-1173 2469.7012,-1129 2572.2841,-1129 2572.2841,-1173"/>
<text text-anchor="middle" x="2520.9927" y="-1159.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="2520.9927" y="-1147.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.74%)</text>
<text text-anchor="middle" x="2520.9927" y="-1135.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.31s(3.81%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N22 -->
<g id="edge25" class="edge">
<title>N2&#45;&gt;N22</title>
<g id="a_edge25"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.31s)">
<path fill="none" stroke="#000000" d="M1113.082,-1265.4065C1395.0014,-1257.2036 2058.3637,-1235.8751 2281.9927,-1211 2362.3141,-1202.0655 2383.9487,-1203.4047 2460.9927,-1179 2463.1296,-1178.3231 2465.2891,-1177.5869 2467.4553,-1176.8043"/>
<polygon fill="#000000" stroke="#000000" points="2468.8937,-1180.0004 2476.9472,-1173.1162 2466.3584,-1173.4756 2468.8937,-1180.0004"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.31s)">
<text text-anchor="middle" x="2410.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="831.7975,-1171.5 638.1879,-1171.5 638.1879,-1130.5 831.7975,-1130.5 831.7975,-1171.5"/>
<text text-anchor="middle" x="734.9927" y="-1158.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="734.9927" y="-1147.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.37%)</text>
<text text-anchor="middle" x="734.9927" y="-1136.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.26s(3.20%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N26 -->
<g id="edge29" class="edge">
<title>N2&#45;&gt;N26</title>
<g id="a_edge29"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.26s)">
<path fill="none" stroke="#000000" d="M854.6896,-1230.4724C840.1703,-1224.6246 825.8358,-1218.1295 812.5444,-1211 795.7409,-1201.9865 778.7944,-1189.3733 765.0474,-1178.0363"/>
<polygon fill="#000000" stroke="#000000" points="767.2498,-1175.3153 757.3483,-1171.5456 762.7379,-1180.6672 767.2498,-1175.3153"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.26s)">
<text text-anchor="middle" x="829.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="main.(*CodeQuotation).nextWord (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2319.54,-1171 2088.4454,-1171 2088.4454,-1131 2319.54,-1131 2319.54,-1171"/>
<text text-anchor="middle" x="2203.9927" y="-1154.2" font-family="Times,serif" font-size="16.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2203.9927" y="-1138.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.21s(2.58%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N31 -->
<g id="edge35" class="edge">
<title>N2&#45;&gt;N31</title>
<g id="a_edge35"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.21s)">
<path fill="none" stroke="#000000" d="M1113.3874,-1263.9263C1337.7339,-1254.6741 1789.9552,-1233.8921 1946.9927,-1211 2006.606,-1202.3099 2072.7788,-1186.7187 2123.0473,-1173.6077"/>
<polygon fill="#000000" stroke="#000000" points="2124.1013,-1176.9497 2132.8823,-1171.0214 2122.3209,-1170.1798 2124.1013,-1176.9497"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.21s)">
<text text-anchor="middle" x="2034.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="main.wordIsWhitespace (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1753.284,-1173 1620.7013,-1173 1620.7013,-1129 1753.284,-1129 1753.284,-1173"/>
<text text-anchor="middle" x="1686.9927" y="-1159.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="1686.9927" y="-1147.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.62%)</text>
<text text-anchor="middle" x="1686.9927" y="-1135.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.13s(1.60%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N46 -->
<g id="edge53" class="edge">
<title>N2&#45;&gt;N46</title>
<g id="a_edge53"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.13s)">
<path fill="none" stroke="#000000" d="M1113.066,-1258.6765C1241.1448,-1246.5293 1442.304,-1222.2971 1611.9927,-1179 1615.3952,-1178.1318 1618.8567,-1177.1623 1622.3323,-1176.1198"/>
<polygon fill="#000000" stroke="#000000" points="1623.654,-1179.3725 1632.1276,-1173.0126 1621.5373,-1172.7002 1623.654,-1179.3725"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.13s)">
<text text-anchor="middle" x="1545.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.ifaceeq (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1831.1182,-847.5 1730.8671,-847.5 1730.8671,-800.5 1831.1182,-800.5 1831.1182,-847.5"/>
<text text-anchor="middle" x="1780.9927" y="-833.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="1780.9927" y="-820.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.09s(1.11%)</text>
<text text-anchor="middle" x="1780.9927" y="-807.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.10s(1.23%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N48 -->
<g id="edge62" class="edge">
<title>N2&#45;&gt;N48</title>
<g id="a_edge62"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.09s)">
<path fill="none" stroke="#000000" d="M1113.1326,-1258.4615C1231.248,-1248.2695 1410.6974,-1231.395 1565.9927,-1211 1664.3548,-1198.0821 1780.9927,-1250.2067 1780.9927,-1151 1780.9927,-1151 1780.9927,-1151 1780.9927,-925.5 1780.9927,-902.9451 1780.9927,-877.571 1780.9927,-857.8351"/>
<polygon fill="#000000" stroke="#000000" points="1784.4928,-857.7896 1780.9927,-847.7896 1777.4928,-857.7896 1784.4928,-857.7896"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.09s)">
<text text-anchor="middle" x="1797.7168" y="-1031.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.eqstring (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2691.56,-1169 2590.4253,-1169 2590.4253,-1133 2691.56,-1133 2691.56,-1169"/>
<text text-anchor="middle" x="2640.9927" y="-1153.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="2640.9927" y="-1140.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.08s(0.98%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N53 -->
<g id="edge69" class="edge">
<title>N2&#45;&gt;N53</title>
<g id="a_edge69"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.07s)">
<path fill="none" stroke="#000000" d="M1113.2279,-1266.6385C1418.6254,-1260.6019 2178.1891,-1242.7974 2430.9927,-1211 2498.6266,-1202.4931 2516.3597,-1200.6632 2580.9927,-1179 2586.1017,-1177.2876 2591.3513,-1175.2635 2596.5189,-1173.0993"/>
<polygon fill="#000000" stroke="#000000" points="2597.9251,-1176.3045 2605.6837,-1169.0895 2595.1192,-1169.8914 2597.9251,-1176.3045"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.07s)">
<text text-anchor="middle" x="2535.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="main.NilWord.func1 (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2792.0044,-1169 2709.981,-1169 2709.981,-1133 2792.0044,-1133 2792.0044,-1169"/>
<text text-anchor="middle" x="2750.9927" y="-1152.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="2750.9927" y="-1144.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.62%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N62 -->
<g id="edge79" class="edge">
<title>N2&#45;&gt;N62</title>
<g id="a_edge79"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.05s)">
<path fill="none" stroke="#000000" d="M1113.2423,-1267.2344C1437.311,-1262.3242 2278.3188,-1246.4677 2555.9927,-1211 2621.4559,-1202.6383 2639.318,-1202.4859 2700.9927,-1179 2704.9674,-1177.4864 2709.009,-1175.6975 2712.9842,-1173.7675"/>
<polygon fill="#000000" stroke="#000000" points="2714.7981,-1176.7699 2722.0767,-1169.071 2711.5857,-1170.5506 2714.7981,-1176.7699"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.05s)">
<text text-anchor="middle" x="2660.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge8" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge8"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.71s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M983.9927,-1171.5709C983.9927,-1184.6006 983.9927,-1202.0564 983.9927,-1218.592"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="979.6178,-1218.7211 983.9927,-1228.7211 988.3678,-1218.7212 979.6178,-1218.7211"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.71s)">
<text text-anchor="middle" x="1000.7168" y="-1199.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.71s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.newobject (1.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1547.5992,-647.5 1434.3862,-647.5 1434.3862,-600.5 1547.5992,-600.5 1547.5992,-647.5"/>
<text text-anchor="middle" x="1490.9927" y="-633.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="1490.9927" y="-620.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.09s(1.11%)</text>
<text text-anchor="middle" x="1490.9927" y="-607.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.25s(15.38%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N5 -->
<g id="edge106" class="edge">
<title>N3&#45;&gt;N5</title>
<g id="a_edge106"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.01s)">
<path fill="none" stroke="#000000" d="M963.2891,-1130.477C933.9092,-1098.8995 887.3353,-1037.9738 921.9927,-999 944.742,-973.4174 1043.7598,-995.0181 1074.9927,-981 1122.6961,-959.5896 1129.9927,-929.2879 1129.9927,-877 1129.9927,-877 1129.9927,-877 1129.9927,-722.5 1129.9927,-662.2223 1319.6831,-637.5758 1424.0565,-628.5768"/>
<polygon fill="#000000" stroke="#000000" points="1424.5159,-632.0507 1434.1893,-627.7291 1423.9323,-625.0751 1424.5159,-632.0507"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.01s)">
<text text-anchor="middle" x="1146.7168" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.assertI2T (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="763.4653,-744.5 662.52,-744.5 662.52,-700.5 763.4653,-700.5 763.4653,-744.5"/>
<text text-anchor="middle" x="712.9927" y="-730.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="712.9927" y="-718.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.62%)</text>
<text text-anchor="middle" x="712.9927" y="-706.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.18s(2.21%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N36 -->
<g id="edge101" class="edge">
<title>N3&#45;&gt;N36</title>
<g id="a_edge101"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M1053.0304,-1130.4183C1112.8034,-1111.9065 1191.0578,-1085.726 1199.9927,-1073 1218.891,-1046.0829 1207.9435,-1030.9134 1199.9927,-999 1182.3986,-928.3803 1008.9598,-826.7414 942.9927,-796 912.6414,-781.856 830.5998,-756.7411 773.2031,-739.8565"/>
<polygon fill="#000000" stroke="#000000" points="774.0847,-736.4677 763.5039,-737.0125 772.1151,-743.1849 774.0847,-736.4677"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="1184.7168" y="-921.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="runtime.mallocgc (1.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1576.0518,-549 1405.9335,-549 1405.9335,-475 1576.0518,-475 1576.0518,-549"/>
<text text-anchor="middle" x="1490.9927" y="-527.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="1490.9927" y="-505.4" font-family="Times,serif" font-size="22.00" fill="#000000">0.70s(8.61%)</text>
<text text-anchor="middle" x="1490.9927" y="-483.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 1.25s(15.38%)</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.heapBitsSetType (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1585.0762,-425 1396.9092,-425 1396.9092,-383 1585.0762,-383 1585.0762,-425"/>
<text text-anchor="middle" x="1490.9927" y="-407.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1490.9927" y="-390.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.27s(3.32%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N25 -->
<g id="edge28" class="edge">
<title>N4&#45;&gt;N25</title>
<g id="a_edge28"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.27s)">
<path fill="none" stroke="#000000" d="M1490.9927,-474.8325C1490.9927,-461.9961 1490.9927,-447.7498 1490.9927,-435.4193"/>
<polygon fill="#000000" stroke="#000000" points="1494.4928,-435.1602 1490.9927,-425.1602 1487.4928,-435.1602 1494.4928,-435.1602"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.27s)">
<text text-anchor="middle" x="1507.7168" y="-445.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.(*mcache).nextFree (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1892.7742,-423 1763.2111,-423 1763.2111,-385 1892.7742,-385 1892.7742,-423"/>
<text text-anchor="middle" x="1827.9927" y="-411" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="1827.9927" y="-401" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.12%)</text>
<text text-anchor="middle" x="1827.9927" y="-391" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.15s(1.85%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N40 -->
<g id="edge48" class="edge">
<title>N4&#45;&gt;N40</title>
<g id="a_edge48"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.15s)">
<path fill="none" stroke="#000000" d="M1576.4677,-484.6074C1633.0084,-466.4876 1706.1766,-443.039 1759.0062,-426.1084"/>
<polygon fill="#000000" stroke="#000000" points="1760.1706,-429.4107 1768.6254,-423.0257 1758.0343,-422.7446 1760.1706,-429.4107"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.15s)">
<text text-anchor="middle" x="1716.7168" y="-445.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.memclr (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1378.8826,-422 1279.1028,-422 1279.1028,-386 1378.8826,-386 1378.8826,-422"/>
<text text-anchor="middle" x="1328.9927" y="-406.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="1328.9927" y="-393.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.86%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N56 -->
<g id="edge109" class="edge">
<title>N4&#45;&gt;N56</title>
<g id="a_edge109"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.01s)">
<path fill="none" stroke="#000000" d="M1435.2415,-474.8325C1411.8568,-459.2428 1385.3526,-441.5733 1364.6656,-427.782"/>
<polygon fill="#000000" stroke="#000000" points="1366.444,-424.7611 1356.182,-422.1262 1362.5611,-430.5855 1366.444,-424.7611"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.01s)">
<text text-anchor="middle" x="1422.7168" y="-445.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N4 -->
<g id="edge9" class="edge">
<title>N5&#45;&gt;N4</title>
<g id="a_edge9"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.16s)">
<path fill="none" stroke="#000000" d="M1490.9927,-600.2477C1490.9927,-588.3634 1490.9927,-573.5399 1490.9927,-559.4549"/>
<polygon fill="#000000" stroke="#000000" points="1494.4928,-559.3819 1490.9927,-549.3819 1487.4928,-559.382 1494.4928,-559.3819"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.16s)">
<text text-anchor="middle" x="1507.7168" y="-569.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.16s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.aeshashbody (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1102.4268,-948.5 925.5586,-948.5 925.5586,-902.5 1102.4268,-902.5 1102.4268,-948.5"/>
<text text-anchor="middle" x="1013.9927" y="-929.3" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="1013.9927" y="-910.3" font-family="Times,serif" font-size="19.00" fill="#000000">0.43s(5.29%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N16 -->
<g id="edge20" class="edge">
<title>N6&#45;&gt;N16</title>
<g id="a_edge20"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.40s)">
<path fill="none" stroke="#000000" d="M1045.2116,-998.8977C1039.6013,-985.7076 1033.3308,-970.9651 1027.8897,-958.1729"/>
<polygon fill="#000000" stroke="#000000" points="1031.0502,-956.661 1023.9153,-948.8287 1024.6086,-959.4008 1031.0502,-956.661"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.40s)">
<text text-anchor="middle" x="1054.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N18 -->
<g id="edge61" class="edge">
<title>N6&#45;&gt;N18</title>
<g id="a_edge61"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.10s)">
<path fill="none" stroke="#000000" d="M1139.3434,-998.8401C1161.9124,-988.345 1186.6274,-977.0508 1209.5444,-967 1221.2023,-961.8872 1233.6918,-956.587 1245.765,-951.5532"/>
<polygon fill="#000000" stroke="#000000" points="1247.4396,-954.6478 1255.3344,-947.5821 1244.7565,-948.1824 1247.4396,-954.6478"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.10s)">
<text text-anchor="middle" x="1226.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.systemstack (0.92s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2176.3858,-333 2037.5996,-333 2037.5996,-280 2176.3858,-280 2176.3858,-333"/>
<text text-anchor="middle" x="2106.9927" y="-317" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2106.9927" y="-302" font-family="Times,serif" font-size="15.00" fill="#000000">0.20s(2.46%)</text>
<text text-anchor="middle" x="2106.9927" y="-287" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.92s(11.32%)</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.deferproc.func1 (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2068.1065,-230 1935.8788,-230 1935.8788,-186 2068.1065,-186 2068.1065,-230"/>
<text text-anchor="middle" x="2001.9927" y="-216.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2001.9927" y="-204.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.49%)</text>
<text text-anchor="middle" x="2001.9927" y="-192.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.23s(2.83%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N29 -->
<g id="edge33" class="edge">
<title>N7&#45;&gt;N29</title>
<g id="a_edge33"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.23s)">
<path fill="none" stroke="#000000" d="M2078.5782,-279.8445C2064.407,-266.5506 2047.2468,-250.4526 2032.7648,-236.8672"/>
<polygon fill="#000000" stroke="#000000" points="2035.1537,-234.3092 2025.4658,-230.0201 2030.3644,-239.4144 2035.1537,-234.3092"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.23s)">
<text text-anchor="middle" x="2073.7168" y="-250.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.deferreturn.func1 (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2329.608,-228.5 2200.3774,-228.5 2200.3774,-187.5 2329.608,-187.5 2329.608,-228.5"/>
<text text-anchor="middle" x="2264.9927" y="-215.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="2264.9927" y="-204.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.37%)</text>
<text text-anchor="middle" x="2264.9927" y="-193.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.18s(2.21%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N37 -->
<g id="edge42" class="edge">
<title>N7&#45;&gt;N37</title>
<g id="a_edge42"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.18s)">
<path fill="none" stroke="#000000" d="M2149.7498,-279.8445C2172.5826,-265.6101 2200.5724,-248.1608 2223.2497,-234.0233"/>
<polygon fill="#000000" stroke="#000000" points="2225.3408,-236.8442 2231.9752,-228.5837 2221.6375,-230.904 2225.3408,-236.8442"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.18s)">
<text text-anchor="middle" x="2216.7168" y="-250.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1917.0431,-227 1762.9422,-227 1762.9422,-189 1917.0431,-189 1917.0431,-227"/>
<text text-anchor="middle" x="1839.9927" y="-215" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="1839.9927" y="-205" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.12%)</text>
<text text-anchor="middle" x="1839.9927" y="-195" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(1.11%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N50 -->
<g id="edge65" class="edge">
<title>N7&#45;&gt;N50</title>
<g id="a_edge65"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.09s)">
<path fill="none" stroke="#000000" d="M2037.5386,-280.8774C1995.3401,-265.3098 1941.9529,-245.6145 1901.3199,-230.6245"/>
<polygon fill="#000000" stroke="#000000" points="1902.399,-227.292 1891.8056,-227.1145 1899.9762,-233.8594 1902.399,-227.292"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.09s)">
<text text-anchor="middle" x="1997.7168" y="-250.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.semasleep.func1 (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2181.9653,-226 2086.02,-226 2086.02,-190 2181.9653,-190 2181.9653,-226"/>
<text text-anchor="middle" x="2133.9927" y="-209.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep.func1</text>
<text text-anchor="middle" x="2133.9927" y="-201.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.62%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N70 -->
<g id="edge94" class="edge">
<title>N7&#45;&gt;N70</title>
<g id="a_edge94"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.05s)">
<path fill="none" stroke="#000000" d="M2114.2993,-279.8445C2118.0079,-266.3147 2122.5128,-249.8804 2126.2774,-236.1463"/>
<polygon fill="#000000" stroke="#000000" points="2129.7184,-236.8325 2128.9866,-226.263 2122.9674,-234.9819 2129.7184,-236.8325"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.05s)">
<text text-anchor="middle" x="2138.7168" y="-250.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.mach_semrelease (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2463.79,-226 2364.1954,-226 2364.1954,-190 2463.79,-190 2463.79,-226"/>
<text text-anchor="middle" x="2413.9927" y="-209.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mach_semrelease</text>
<text text-anchor="middle" x="2413.9927" y="-201.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(1.72%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N80 -->
<g id="edge57" class="edge">
<title>N7&#45;&gt;N80</title>
<g id="a_edge57"><a xlink:title="runtime.systemstack ... runtime.mach_semrelease (0.12s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2176.6557,-284.1488C2230.3379,-266.9251 2303.7536,-243.3699 2354.6564,-227.0379"/>
<polygon fill="#000000" stroke="#000000" points="2355.7539,-230.3616 2364.2065,-223.9738 2353.6153,-223.6962 2355.7539,-230.3616"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semrelease (0.12s)">
<text text-anchor="middle" x="2303.7168" y="-250.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="main.(*machine).executeMultiply (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="401.6639,-1056.5 236.3215,-1056.5 236.3215,-1015.5 401.6639,-1015.5 401.6639,-1056.5"/>
<text text-anchor="middle" x="318.9927" y="-1043.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="318.9927" y="-1032.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.25%)</text>
<text text-anchor="middle" x="318.9927" y="-1021.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.35s(4.31%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N17 -->
<g id="edge21" class="edge">
<title>N8&#45;&gt;N17</title>
<g id="a_edge21"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.35s)">
<path fill="none" stroke="#000000" d="M302.0417,-1128.8268C305.2746,-1111.1227 309.8397,-1086.1234 313.418,-1066.5277"/>
<polygon fill="#000000" stroke="#000000" points="316.8849,-1067.0258 315.2383,-1056.5597 309.9988,-1065.7683 316.8849,-1067.0258"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.35s)">
<text text-anchor="middle" x="325.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="main.(*machine).executeSubtract (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="218.7546,-1058 41.2308,-1058 41.2308,-1014 218.7546,-1014 218.7546,-1058"/>
<text text-anchor="middle" x="129.9927" y="-1044.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="129.9927" y="-1032.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.62%)</text>
<text text-anchor="middle" x="129.9927" y="-1020.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.32s(3.94%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N20 -->
<g id="edge24" class="edge">
<title>N8&#45;&gt;N20</title>
<g id="a_edge24"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.32s)">
<path fill="none" stroke="#000000" d="M265.6006,-1128.8268C238.5244,-1110.2925 199.7681,-1083.7629 170.6168,-1063.8082"/>
<polygon fill="#000000" stroke="#000000" points="172.5142,-1060.8656 162.2853,-1058.1051 168.5602,-1066.6419 172.5142,-1060.8656"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.32s)">
<text text-anchor="middle" x="246.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N5 -->
<g id="edge17" class="edge">
<title>N9&#45;&gt;N5</title>
<g id="a_edge17"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.50s)">
<path fill="none" stroke="#000000" d="M912.1603,-707.2971C956.9828,-694.7645 1023.5258,-677.4133 1082.5444,-667 1201.9017,-645.9406 1342.8309,-633.8898 1424.0636,-628.169"/>
<polygon fill="#000000" stroke="#000000" points="1424.4186,-631.6529 1434.1526,-627.4695 1423.9344,-624.6697 1424.4186,-631.6529"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.50s)">
<text text-anchor="middle" x="1099.7168" y="-669.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.typedmemmove (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="936.738,-649 783.2474,-649 783.2474,-599 936.738,-599 936.738,-649"/>
<text text-anchor="middle" x="859.9927" y="-633.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="859.9927" y="-619.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.12s(1.48%)</text>
<text text-anchor="middle" x="859.9927" y="-605.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.30s(3.69%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N23 -->
<g id="edge59" class="edge">
<title>N9&#45;&gt;N23</title>
<g id="a_edge59"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.11s)">
<path fill="none" stroke="#000000" d="M859.9927,-698.9068C859.9927,-687.0507 859.9927,-672.4425 859.9927,-659.2841"/>
<polygon fill="#000000" stroke="#000000" points="863.4928,-659.1225 859.9927,-649.1225 856.4928,-659.1226 863.4928,-659.1225"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.11s)">
<text text-anchor="middle" x="876.4604" y="-669.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N5 -->
<g id="edge15" class="edge">
<title>N10&#45;&gt;N5</title>
<g id="a_edge15"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.58s)">
<path fill="none" stroke="#000000" d="M1500.4086,-1127.3155C1496.3256,-1104.1359 1490.9927,-1067.778 1490.9927,-1036 1490.9927,-1036 1490.9927,-1036 1490.9927,-722.5 1490.9927,-701.1008 1490.9927,-677.0864 1490.9927,-658.1268"/>
<polygon fill="#000000" stroke="#000000" points="1494.4928,-657.8847 1490.9927,-647.8847 1487.4928,-657.8847 1494.4928,-657.8847"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.58s)">
<text text-anchor="middle" x="1507.7168" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N6 -->
<g id="edge26" class="edge">
<title>N11&#45;&gt;N6</title>
<g id="a_edge26"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.28s)">
<path fill="none" stroke="#000000" d="M1293.6847,-1127.255C1290.7628,-1114.828 1285.2765,-1100.3048 1274.9927,-1091 1262.5334,-1079.7269 1233.542,-1069.7286 1200.7919,-1061.4527"/>
<polygon fill="#000000" stroke="#000000" points="1201.5415,-1058.0329 1190.9958,-1059.0527 1199.8757,-1064.8318 1201.5415,-1058.0329"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.28s)">
<text text-anchor="middle" x="1302.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="main.isPrefixChar (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1415.2356,-1055 1290.7497,-1055 1290.7497,-1017 1415.2356,-1017 1415.2356,-1055"/>
<text text-anchor="middle" x="1352.9927" y="-1039" font-family="Times,serif" font-size="15.00" fill="#000000">main.isPrefixChar</text>
<text text-anchor="middle" x="1352.9927" y="-1024" font-family="Times,serif" font-size="15.00" fill="#000000">0.15s(1.85%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N39 -->
<g id="edge45" class="edge">
<title>N11&#45;&gt;N39</title>
<g id="a_edge45"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.15s)">
<path fill="none" stroke="#000000" d="M1316.9167,-1127.1461C1321.9926,-1120.2909 1327.1052,-1112.6044 1330.9927,-1105 1337.3865,-1092.4928 1342.3896,-1077.7611 1345.9982,-1065.1285"/>
<polygon fill="#000000" stroke="#000000" points="1349.4765,-1065.6721 1348.7012,-1055.1056 1342.718,-1063.8493 1349.4765,-1065.6721"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.15s)">
<text text-anchor="middle" x="1353.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.stringiter2 (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1632.6119,-1054 1519.3735,-1054 1519.3735,-1018 1632.6119,-1018 1632.6119,-1054"/>
<text text-anchor="middle" x="1575.9927" y="-1038.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.stringiter2</text>
<text text-anchor="middle" x="1575.9927" y="-1025.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.08s(0.98%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N54 -->
<g id="edge74" class="edge">
<title>N11&#45;&gt;N54</title>
<g id="a_edge74"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.06s)">
<path fill="none" stroke="#000000" d="M1354.1257,-1127.4505C1403.597,-1107.0591 1474.6001,-1077.7926 1522.8626,-1057.8995"/>
<polygon fill="#000000" stroke="#000000" points="1524.2872,-1061.098 1532.1988,-1054.0512 1521.6196,-1054.6262 1524.2872,-1061.098"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.06s)">
<text text-anchor="middle" x="1453.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="strings.ContainsRune (0.49s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2467.2453,-1062.5 2322.74,-1062.5 2322.74,-1009.5 2467.2453,-1009.5 2467.2453,-1062.5"/>
<text text-anchor="middle" x="2394.9927" y="-1046.5" font-family="Times,serif" font-size="15.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="2394.9927" y="-1031.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.15s(1.85%)</text>
<text text-anchor="middle" x="2394.9927" y="-1016.5" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.49s(6.03%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N13 -->
<g id="edge27" class="edge">
<title>N12&#45;&gt;N13</title>
<g id="a_edge27"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.28s)">
<path fill="none" stroke="#000000" d="M2065.2243,-1127.4629C2069.7981,-1125.7332 2074.4349,-1124.1996 2078.9927,-1123 2178.1504,-1096.9015 2213.6635,-1142.7588 2308.9927,-1105 2328.846,-1097.1363 2347.727,-1083.0238 2362.7133,-1069.6016"/>
<polygon fill="#000000" stroke="#000000" points="2365.2239,-1072.0468 2370.1796,-1062.6824 2360.4658,-1066.9125 2365.2239,-1072.0468"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.28s)">
<text text-anchor="middle" x="2348.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="strconv.Atoi (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1984.676,-1056.5 1897.3094,-1056.5 1897.3094,-1015.5 1984.676,-1015.5 1984.676,-1056.5"/>
<text text-anchor="middle" x="1940.9927" y="-1043.7" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="1940.9927" y="-1032.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.25%)</text>
<text text-anchor="middle" x="1940.9927" y="-1021.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.24s(2.95%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N27 -->
<g id="edge31" class="edge">
<title>N12&#45;&gt;N27</title>
<g id="a_edge31"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.24s)">
<path fill="none" stroke="#000000" d="M2003.02,-1127.4505C1990.8064,-1109.4433 1973.8984,-1084.5149 1960.8198,-1065.2324"/>
<polygon fill="#000000" stroke="#000000" points="1963.6207,-1063.1265 1955.1108,-1056.8152 1957.8275,-1067.0558 1963.6207,-1063.1265"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.24s)">
<text text-anchor="middle" x="2002.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="strings.IndexRune (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2450.4536,-949 2339.5317,-949 2339.5317,-902 2450.4536,-902 2450.4536,-949"/>
<text text-anchor="middle" x="2394.9927" y="-934.6" font-family="Times,serif" font-size="13.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="2394.9927" y="-921.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.86%)</text>
<text text-anchor="middle" x="2394.9927" y="-908.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.34s(4.18%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N19 -->
<g id="edge22" class="edge">
<title>N13&#45;&gt;N19</title>
<g id="a_edge22"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.34s)">
<path fill="none" stroke="#000000" d="M2394.9927,-1009.251C2394.9927,-994.1611 2394.9927,-975.1652 2394.9927,-959.0808"/>
<polygon fill="#000000" stroke="#000000" points="2398.4928,-959.0018 2394.9927,-949.0018 2391.4928,-959.0019 2398.4928,-959.0018"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.34s)">
<text text-anchor="middle" x="2411.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N7 -->
<g id="edge41" class="edge">
<title>N14&#45;&gt;N7</title>
<g id="a_edge41"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.18s)">
<path fill="none" stroke="#000000" d="M1949.5829,-1126.0248C1952.7576,-1124.9864 1955.9052,-1123.9734 1958.9927,-1123 2031.7624,-1100.0567 2106.9927,-1112.3009 2106.9927,-1036 2106.9927,-1036 2106.9927,-1036 2106.9927,-404 2106.9927,-384.0485 2106.9927,-361.8005 2106.9927,-343.6002"/>
<polygon fill="#000000" stroke="#000000" points="2110.4928,-343.3997 2106.9927,-333.3998 2103.4928,-343.3998 2110.4928,-343.3997"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.18s)">
<text text-anchor="middle" x="2123.7168" y="-718.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.memmove (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1540.7161,-130 1411.2692,-130 1411.2692,-92 1540.7161,-92 1540.7161,-130"/>
<text text-anchor="middle" x="1475.9927" y="-114" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="1475.9927" y="-99" font-family="Times,serif" font-size="15.00" fill="#000000">0.20s(2.46%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N35 -->
<g id="edge98" class="edge">
<title>N14&#45;&gt;N35</title>
<g id="a_edge98"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.03s)">
<path fill="none" stroke="#000000" d="M1877.1494,-1122.7502C1872.9363,-1062.4052 1861.2851,-916.5901 1839.9927,-796 1805.1852,-598.8672 1734.9927,-558.1821 1734.9927,-358 1734.9927,-358 1734.9927,-358 1734.9927,-208 1734.9927,-168.4237 1627.5961,-139.595 1551.1168,-124.083"/>
<polygon fill="#000000" stroke="#000000" points="1551.5056,-120.5918 1541.015,-122.0744 1550.1404,-127.4574 1551.5056,-120.5918"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.03s)">
<text text-anchor="middle" x="1817.7168" y="-619.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N13 -->
<g id="edge36" class="edge">
<title>N15&#45;&gt;N13</title>
<g id="a_edge36"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.21s)">
<path fill="none" stroke="#000000" d="M2394.9927,-1127.4505C2394.9927,-1111.7401 2394.9927,-1090.7616 2394.9927,-1072.8604"/>
<polygon fill="#000000" stroke="#000000" points="2398.4928,-1072.7391 2394.9927,-1062.7391 2391.4928,-1072.7392 2398.4928,-1072.7391"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.21s)">
<text text-anchor="middle" x="2411.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="strconv.ParseFloat (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2262.2976,-1054 2187.6877,-1054 2187.6877,-1018 2262.2976,-1018 2262.2976,-1054"/>
<text text-anchor="middle" x="2224.9927" y="-1037.6" font-family="Times,serif" font-size="8.00" fill="#000000">strconv.ParseFloat</text>
<text text-anchor="middle" x="2224.9927" y="-1029.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.16s(1.97%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N79 -->
<g id="edge43" class="edge">
<title>N15&#45;&gt;N79</title>
<g id="a_edge43"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (0.16s)">
<path fill="none" stroke="#000000" d="M2340.3808,-1127.4519C2336.5399,-1125.9127 2332.7161,-1124.4144 2328.9927,-1123 2305.5607,-1114.0988 2295.7735,-1119.8012 2275.5444,-1105 2260.5028,-1093.9943 2248.0593,-1077.1952 2239.2819,-1062.9287"/>
<polygon fill="#000000" stroke="#000000" points="2242.1285,-1060.8636 2234.0527,-1054.0055 2236.0891,-1064.4028 2242.1285,-1060.8636"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (0.16s)">
<text text-anchor="middle" x="2291.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.assertI2I (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="299.632,-947.5 202.3533,-947.5 202.3533,-903.5 299.632,-903.5 299.632,-947.5"/>
<text text-anchor="middle" x="250.9927" y="-933.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="250.9927" y="-921.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.49%)</text>
<text text-anchor="middle" x="250.9927" y="-909.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.23s(2.83%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N28 -->
<g id="edge49" class="edge">
<title>N17&#45;&gt;N28</title>
<g id="a_edge49"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.14s)">
<path fill="none" stroke="#000000" d="M306.3618,-1015.4748C296.1493,-998.8796 281.6114,-975.2554 269.9947,-956.3783"/>
<polygon fill="#000000" stroke="#000000" points="272.9459,-954.4958 264.7241,-947.8135 266.9843,-958.1645 272.9459,-954.4958"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.14s)">
<text text-anchor="middle" x="301.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="main.(*Integer).Multiply (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="433.9683,-944.5 318.0171,-944.5 318.0171,-906.5 433.9683,-906.5 433.9683,-944.5"/>
<text text-anchor="middle" x="375.9927" y="-932.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="375.9927" y="-922.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.12%)</text>
<text text-anchor="middle" x="375.9927" y="-912.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.13s(1.60%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N45 -->
<g id="edge54" class="edge">
<title>N17&#45;&gt;N45</title>
<g id="a_edge54"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*Integer).Multiply (0.13s)">
<path fill="none" stroke="#000000" d="M329.5643,-1015.4658C336.6317,-1001.7422 346.1401,-983.2864 354.5444,-967 356.7968,-962.6351 359.1839,-958.0129 361.5159,-953.4993"/>
<polygon fill="#000000" stroke="#000000" points="364.6826,-954.9952 366.1644,-944.5045 358.4639,-951.7814 364.6826,-954.9952"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*Integer).Multiply (0.13s)">
<text text-anchor="middle" x="371.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.convI2I (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="184.1954,-944.5 103.79,-944.5 103.79,-906.5 184.1954,-906.5 184.1954,-944.5"/>
<text text-anchor="middle" x="143.9927" y="-932.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="143.9927" y="-922.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.12%)</text>
<text text-anchor="middle" x="143.9927" y="-912.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(1.11%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N51 -->
<g id="edge96" class="edge">
<title>N17&#45;&gt;N51</title>
<g id="a_edge96"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.convI2I (0.04s)">
<path fill="none" stroke="#000000" d="M289.1101,-1015.4788C274.1823,-1005.1854 255.8674,-992.4929 239.5444,-981 230.8056,-974.847 229.0444,-972.6827 219.9927,-967 210.537,-961.0637 200.1715,-955.0791 190.2198,-949.5738"/>
<polygon fill="#000000" stroke="#000000" points="191.689,-946.3883 181.2348,-944.6678 188.3343,-952.5321 191.689,-946.3883"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.convI2I (0.04s)">
<text text-anchor="middle" x="256.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="main.(*machine).popValue (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="608.2775,-943.5 451.7079,-943.5 451.7079,-907.5 608.2775,-907.5 608.2775,-943.5"/>
<text text-anchor="middle" x="529.9927" y="-928.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="529.9927" y="-915.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.86%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N55 -->
<g id="edge100" class="edge">
<title>N17&#45;&gt;N55</title>
<g id="a_edge100"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M370.6505,-1015.4465C393.5223,-1005.7948 420.5062,-993.6423 443.9927,-981 449.2529,-978.1685 472.7163,-962.998 493.8077,-949.2327"/>
<polygon fill="#000000" stroke="#000000" points="495.8803,-952.0594 502.3367,-943.659 492.051,-946.1996 495.8803,-952.0594"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="481.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.indexbytebody (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2492.549,-843 2337.4364,-843 2337.4364,-805 2492.549,-805 2492.549,-843"/>
<text text-anchor="middle" x="2414.9927" y="-827" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.indexbytebody</text>
<text text-anchor="middle" x="2414.9927" y="-812" font-family="Times,serif" font-size="15.00" fill="#000000">0.20s(2.46%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N33 -->
<g id="edge39" class="edge">
<title>N19&#45;&gt;N33</title>
<g id="a_edge39"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.20s)">
<path fill="none" stroke="#000000" d="M2399.6313,-901.9587C2402.5003,-887.3986 2406.2052,-868.5962 2409.2577,-853.1049"/>
<polygon fill="#000000" stroke="#000000" points="2412.7491,-853.4901 2411.2484,-843.002 2405.8811,-852.1367 2412.7491,-853.4901"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.20s)">
<text text-anchor="middle" x="2421.7168" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="strings.IndexByte (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2319.0655,-842 2210.9199,-842 2210.9199,-806 2319.0655,-806 2319.0655,-842"/>
<text text-anchor="middle" x="2264.9927" y="-826.6" font-family="Times,serif" font-size="13.00" fill="#000000">strings.IndexByte</text>
<text text-anchor="middle" x="2264.9927" y="-813.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.86%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N58 -->
<g id="edge72" class="edge">
<title>N19&#45;&gt;N58</title>
<g id="a_edge72"><a xlink:title="strings.IndexRune &#45;&gt; strings.IndexByte (0.07s)">
<path fill="none" stroke="#000000" d="M2364.8413,-901.9587C2344.1817,-885.8284 2316.8536,-864.4914 2296.0109,-848.2181"/>
<polygon fill="#000000" stroke="#000000" points="2298.1203,-845.4246 2288.0843,-842.0292 2293.8124,-850.9421 2298.1203,-845.4246"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; strings.IndexByte (0.07s)">
<text text-anchor="middle" x="2357.7168" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N28 -->
<g id="edge64" class="edge">
<title>N20&#45;&gt;N28</title>
<g id="a_edge64"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.09s)">
<path fill="none" stroke="#000000" d="M145.2572,-1013.9707C155.8442,-999.6158 170.822,-981.0183 186.5444,-967 191.9393,-962.1899 197.946,-957.5528 204.062,-953.2318"/>
<polygon fill="#000000" stroke="#000000" points="206.1197,-956.0652 212.4225,-947.549 202.1846,-950.2759 206.1197,-956.0652"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.09s)">
<text text-anchor="middle" x="203.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="main.Integer.Add (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="85.978,-944.5 .0073,-944.5 .0073,-906.5 85.978,-906.5 85.978,-944.5"/>
<text text-anchor="middle" x="42.9927" y="-932.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="42.9927" y="-922.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.12%)</text>
<text text-anchor="middle" x="42.9927" y="-912.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(1.11%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N49 -->
<g id="edge63" class="edge">
<title>N20&#45;&gt;N49</title>
<g id="a_edge63"><a xlink:title="main.(*machine).executeSubtract ... main.Integer.Add (0.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M112.596,-1013.9043C98.6871,-996.2383 79.1281,-971.3962 64.2841,-952.5426"/>
<polygon fill="#000000" stroke="#000000" points="66.9736,-950.3006 58.0375,-944.6087 61.4737,-954.6309 66.9736,-950.3006"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.(*machine).executeSubtract ... main.Integer.Add (0.09s)">
<text text-anchor="middle" x="103.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N51 -->
<g id="edge80" class="edge">
<title>N20&#45;&gt;N51</title>
<g id="a_edge80"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.convI2I (0.05s)">
<path fill="none" stroke="#000000" d="M128.463,-1013.7927C127.948,-1000.196 128.0336,-982.491 130.5444,-967 131.226,-962.7947 132.2574,-958.4338 133.4519,-954.1887"/>
<polygon fill="#000000" stroke="#000000" points="136.7995,-955.2104 136.4473,-944.6215 130.1192,-953.1189 136.7995,-955.2104"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.convI2I (0.05s)">
<text text-anchor="middle" x="147.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N55 -->
<g id="edge104" class="edge">
<title>N20&#45;&gt;N55</title>
<g id="a_edge104"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M180.5718,-1013.9391C195.2995,-1008.2774 211.5783,-1002.7374 226.9927,-999 296.9666,-982.0339 321.0983,-1007.6334 387.9927,-981 397.5896,-977.1791 397.408,-971.8193 406.5444,-967 421.2015,-959.2688 437.5841,-952.5629 453.5029,-946.9289"/>
<polygon fill="#000000" stroke="#000000" points="455.0096,-950.1125 463.3352,-943.5599 452.7406,-943.4904 455.0096,-950.1125"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="423.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.mapassign1 (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="831.5591,-1059.5 710.4263,-1059.5 710.4263,-1012.5 831.5591,-1012.5 831.5591,-1059.5"/>
<text text-anchor="middle" x="770.9927" y="-1045.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="770.9927" y="-1032.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.08s(0.98%)</text>
<text text-anchor="middle" x="770.9927" y="-1019.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.20s(2.46%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N34 -->
<g id="edge37" class="edge">
<title>N21&#45;&gt;N34</title>
<g id="a_edge37"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.20s)">
<path fill="none" stroke="#000000" d="M594.9379,-1128.9671C615.8357,-1122.2162 638.0777,-1114.1264 657.9927,-1105 682.311,-1093.8557 707.8713,-1078.5846 728.5189,-1065.2417"/>
<polygon fill="#000000" stroke="#000000" points="730.5984,-1068.0637 737.0492,-1059.659 726.7652,-1062.2065 730.5984,-1068.0637"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.20s)">
<text text-anchor="middle" x="700.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N36 -->
<g id="edge81" class="edge">
<title>N21&#45;&gt;N36</title>
<g id="a_edge81"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.05s)">
<path fill="none" stroke="#000000" d="M567.8341,-1128.8372C603.4592,-1109.9753 643.9927,-1079.0544 643.9927,-1036 643.9927,-1036 643.9927,-1036 643.9927,-824 643.9927,-796.4065 661.6493,-770.7567 679.0991,-752.145"/>
<polygon fill="#000000" stroke="#000000" points="681.9914,-754.196 686.5128,-744.6144 677.0031,-749.2851 681.9914,-754.196"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.05s)">
<text text-anchor="middle" x="660.7168" y="-921.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N55 -->
<g id="edge97" class="edge">
<title>N21&#45;&gt;N55</title>
<g id="a_edge97"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M516.4583,-1128.9675C519.195,-1087.8256 525.0785,-999.3759 528.1068,-953.8515"/>
<polygon fill="#000000" stroke="#000000" points="531.6054,-953.987 528.7769,-943.7767 524.6208,-953.5224 531.6054,-953.987"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="541.7168" y="-1031.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N7 -->
<g id="edge32" class="edge">
<title>N22&#45;&gt;N7</title>
<g id="a_edge32"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.23s)">
<path fill="none" stroke="#000000" d="M2520.9927,-1128.9537C2520.9927,-1105.8044 2520.9927,-1068.3438 2520.9927,-1036 2520.9927,-1036 2520.9927,-1036 2520.9927,-404 2520.9927,-336.1065 2307.3744,-315.4431 2187.0312,-309.1891"/>
<polygon fill="#000000" stroke="#000000" points="2186.9155,-305.6791 2176.754,-308.6782 2186.5678,-312.6705 2186.9155,-305.6791"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.23s)">
<text text-anchor="middle" x="2537.7168" y="-718.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N35 -->
<g id="edge58" class="edge">
<title>N23&#45;&gt;N35</title>
<g id="a_edge58"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.12s)">
<path fill="none" stroke="#000000" d="M936.7326,-605.1295C1009.8948,-584.8328 1108.9927,-550.2762 1108.9927,-512 1108.9927,-512 1108.9927,-512 1108.9927,-208 1108.9927,-148.1465 1293.7544,-124.3957 1401.0886,-115.6479"/>
<polygon fill="#000000" stroke="#000000" points="1401.5318,-119.1239 1411.2252,-114.8475 1400.9807,-112.1456 1401.5318,-119.1239"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.12s)">
<text text-anchor="middle" x="1125.7168" y="-353.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.heapBitsBulkBarrier (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="937.6279,-534 782.3575,-534 782.3575,-490 937.6279,-490 937.6279,-534"/>
<text text-anchor="middle" x="859.9927" y="-520.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.heapBitsBulkBarrier</text>
<text text-anchor="middle" x="859.9927" y="-508.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.62%)</text>
<text text-anchor="middle" x="859.9927" y="-496.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.06s(0.74%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N60 -->
<g id="edge77" class="edge">
<title>N23&#45;&gt;N60</title>
<g id="a_edge77"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.06s)">
<path fill="none" stroke="#000000" d="M859.9927,-598.865C859.9927,-582.7353 859.9927,-561.6374 859.9927,-544.2734"/>
<polygon fill="#000000" stroke="#000000" points="863.4928,-544.0221 859.9927,-534.0221 856.4928,-544.0222 863.4928,-544.0221"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.06s)">
<text text-anchor="middle" x="876.7168" y="-569.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.getitab (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="310.5326,-852 191.4527,-852 191.4527,-796 310.5326,-796 310.5326,-852"/>
<text text-anchor="middle" x="250.9927" y="-835.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="250.9927" y="-819.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.25s(3.08%)</text>
<text text-anchor="middle" x="250.9927" y="-803.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.27s(3.32%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N6 -->
<g id="edge46" class="edge">
<title>N26&#45;&gt;N6</title>
<g id="a_edge46"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.15s)">
<path fill="none" stroke="#000000" d="M793.2749,-1130.4403C835.7745,-1115.4481 894.7446,-1094.6458 946.5249,-1076.3797"/>
<polygon fill="#000000" stroke="#000000" points="947.8381,-1079.6279 956.1042,-1073.0005 945.5094,-1073.0266 947.8381,-1079.6279"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.15s)">
<text text-anchor="middle" x="914.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N36 -->
<g id="edge70" class="edge">
<title>N26&#45;&gt;N36</title>
<g id="a_edge70"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.07s)">
<path fill="none" stroke="#000000" d="M711.9781,-1130.1516C705.541,-1122.896 699.3824,-1114.2397 695.9927,-1105 693.8497,-1099.1585 695.8493,-1097.2206 695.9927,-1091 698.8601,-966.6206 707.1649,-818.8146 711.0037,-754.7572"/>
<polygon fill="#000000" stroke="#000000" points="714.5138,-754.6943 711.6232,-744.5015 707.5265,-754.2722 714.5138,-754.6943"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.07s)">
<text text-anchor="middle" x="719.7168" y="-921.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N55 -->
<g id="edge105" class="edge">
<title>N26&#45;&gt;N55</title>
<g id="a_edge105"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M702.8735,-1130.4871C691.5606,-1122.8647 678.942,-1113.899 667.9927,-1105 613.438,-1060.661 567.7566,-990.6675 545.1762,-952.5043"/>
<polygon fill="#000000" stroke="#000000" points="548.001,-950.4001 539.9418,-943.5226 541.9531,-953.9248 548.001,-950.4001"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="650.7168" y="-1031.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="strconv.ParseInt (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1987.1182,-949 1886.8671,-949 1886.8671,-902 1987.1182,-902 1987.1182,-949"/>
<text text-anchor="middle" x="1936.9927" y="-934.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="1936.9927" y="-921.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.07s(0.86%)</text>
<text text-anchor="middle" x="1936.9927" y="-908.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.22s(2.71%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N30 -->
<g id="edge34" class="edge">
<title>N27&#45;&gt;N30</title>
<g id="a_edge34"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.22s)">
<path fill="none" stroke="#000000" d="M1940.2497,-1015.4748C1939.6804,-999.7495 1938.8827,-977.7127 1938.2193,-959.3842"/>
<polygon fill="#000000" stroke="#000000" points="1941.7164,-959.2395 1937.8568,-949.3727 1934.721,-959.4928 1941.7164,-959.2395"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.22s)">
<text text-anchor="middle" x="1955.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N24 -->
<g id="edge40" class="edge">
<title>N28&#45;&gt;N24</title>
<g id="a_edge40"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.19s)">
<path fill="none" stroke="#000000" d="M250.9927,-903.476C250.9927,-891.4889 250.9927,-876.3138 250.9927,-862.4437"/>
<polygon fill="#000000" stroke="#000000" points="254.4928,-862.1659 250.9927,-852.166 247.4928,-862.166 254.4928,-862.1659"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.19s)">
<text text-anchor="middle" x="267.7168" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N35 -->
<g id="edge83" class="edge">
<title>N29&#45;&gt;N35</title>
<g id="a_edge83"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.05s)">
<path fill="none" stroke="#000000" d="M1935.8099,-188.2631C1932.5005,-187.4581 1929.2147,-186.6978 1925.9927,-186 1871.8029,-174.2639 1856.8825,-179.0289 1802.5444,-168 1778.4353,-163.1066 1773.0734,-159.0312 1748.9927,-154 1682.4504,-140.0974 1605.943,-128.4125 1550.8827,-120.7489"/>
<polygon fill="#000000" stroke="#000000" points="1551.2433,-117.2656 1540.8585,-119.3652 1550.286,-124.1999 1551.2433,-117.2656"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.05s)">
<text text-anchor="middle" x="1819.7168" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.newdefer (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2059.6138,-129 1944.3715,-129 1944.3715,-93 2059.6138,-93 2059.6138,-129"/>
<text text-anchor="middle" x="2001.9927" y="-113.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2001.9927" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.14s(1.72%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N43 -->
<g id="edge50" class="edge">
<title>N29&#45;&gt;N43</title>
<g id="a_edge50"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.14s)">
<path fill="none" stroke="#000000" d="M2001.9927,-185.9892C2001.9927,-172.1356 2001.9927,-154.1225 2001.9927,-139.223"/>
<polygon fill="#000000" stroke="#000000" points="2005.4928,-139.0282 2001.9927,-129.0283 1998.4928,-139.0283 2005.4928,-139.0282"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.14s)">
<text text-anchor="middle" x="2018.7168" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="strconv.ParseUint (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1987.3658,-846 1886.6195,-846 1886.6195,-802 1987.3658,-802 1987.3658,-846"/>
<text text-anchor="middle" x="1936.9927" y="-832.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="1936.9927" y="-820.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.74%)</text>
<text text-anchor="middle" x="1936.9927" y="-808.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.14s(1.72%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N44 -->
<g id="edge52" class="edge">
<title>N30&#45;&gt;N44</title>
<g id="a_edge52"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.14s)">
<path fill="none" stroke="#000000" d="M1936.9927,-901.9587C1936.9927,-888.3868 1936.9927,-871.129 1936.9927,-856.3027"/>
<polygon fill="#000000" stroke="#000000" points="1940.4928,-856.024 1936.9927,-846.024 1933.4928,-856.024 1940.4928,-856.024"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.14s)">
<text text-anchor="middle" x="1953.7168" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N48 -->
<g id="edge110" class="edge">
<title>N30&#45;&gt;N48</title>
<g id="a_edge110"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.01s)">
<path fill="none" stroke="#000000" d="M1900.811,-901.9587C1878.4455,-887.4068 1849.5673,-868.6175 1825.7658,-853.1312"/>
<polygon fill="#000000" stroke="#000000" points="1827.5388,-850.1092 1817.248,-847.5892 1823.7212,-855.9766 1827.5388,-850.1092"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.01s)">
<text text-anchor="middle" x="1889.7168" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime._System (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1984.7626,-422 1911.2228,-422 1911.2228,-386 1984.7626,-386 1984.7626,-422"/>
<text text-anchor="middle" x="1947.9927" y="-405.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="1947.9927" y="-397.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.20s(2.46%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N7 -->
<g id="edge38" class="edge">
<title>N32&#45;&gt;N7</title>
<g id="a_edge38"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.20s)">
<path fill="none" stroke="#000000" d="M1968.3774,-385.7896C1981.1137,-374.9246 1998.1566,-361.2874 2014.5444,-351 2021.8885,-346.3898 2029.7823,-341.9239 2037.7513,-337.714"/>
<polygon fill="#000000" stroke="#000000" points="2039.4683,-340.7667 2046.7553,-333.0757 2036.2626,-334.5438 2039.4683,-340.7667"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.20s)">
<text text-anchor="middle" x="2030.7168" y="-353.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N16 -->
<g id="edge99" class="edge">
<title>N34&#45;&gt;N16</title>
<g id="a_edge99"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.03s)">
<path fill="none" stroke="#000000" d="M776.5285,-1012.2171C781.3486,-996.9214 789.93,-977.9287 804.5444,-967 843.3215,-938.0025 864.5015,-958.4397 911.9927,-949 913.0844,-948.783 914.1822,-948.5629 915.2853,-948.3401"/>
<polygon fill="#000000" stroke="#000000" points="916.2438,-951.7161 925.3294,-946.2661 914.8282,-944.8607 916.2438,-951.7161"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.03s)">
<text text-anchor="middle" x="821.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N23 -->
<g id="edge76" class="edge">
<title>N34&#45;&gt;N23</title>
<g id="a_edge76"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.06s)">
<path fill="none" stroke="#000000" d="M774.4282,-1012.2065C776.9901,-998.5253 781.2401,-981.2753 787.9927,-967 815.2831,-909.3067 841.7433,-907.0751 873.9927,-852 900.033,-807.5286 910.3166,-796.4165 920.9927,-746 925.3201,-725.5643 927.5983,-718.8169 920.9927,-699 915.8116,-683.4569 905.7123,-668.8623 895.1988,-656.7528"/>
<polygon fill="#000000" stroke="#000000" points="897.604,-654.1961 888.2777,-649.1691 892.4335,-658.9148 897.604,-654.1961"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.06s)">
<text text-anchor="middle" x="922.7168" y="-819.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N23 -->
<g id="edge55" class="edge">
<title>N36&#45;&gt;N23</title>
<g id="a_edge55"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.13s)">
<path fill="none" stroke="#000000" d="M745.9823,-700.3947C766.0099,-686.9749 791.8731,-669.6447 813.9022,-654.8837"/>
<polygon fill="#000000" stroke="#000000" points="816.0904,-657.6306 822.4496,-649.1564 812.1938,-651.8154 816.0904,-657.6306"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.13s)">
<text text-anchor="middle" x="812.7168" y="-669.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.freedefer (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2311.5424,-136 2198.443,-136 2198.443,-86 2311.5424,-86 2311.5424,-136"/>
<text text-anchor="middle" x="2254.9927" y="-120.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="2254.9927" y="-106.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.14s(1.72%)</text>
<text text-anchor="middle" x="2254.9927" y="-92.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.15s(1.85%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N41 -->
<g id="edge47" class="edge">
<title>N37&#45;&gt;N41</title>
<g id="a_edge47"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.15s)">
<path fill="none" stroke="#000000" d="M2262.8719,-187.4288C2261.6384,-175.4635 2260.0502,-160.0578 2258.6232,-146.2163"/>
<polygon fill="#000000" stroke="#000000" points="2262.0791,-145.6076 2257.572,-136.0193 2255.116,-146.3255 2262.0791,-145.6076"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.15s)">
<text text-anchor="middle" x="2276.7168" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="strconv.atof64 (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2236.676,-946 2149.3094,-946 2149.3094,-905 2236.676,-905 2236.676,-946"/>
<text text-anchor="middle" x="2192.9927" y="-933.2" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="2192.9927" y="-922.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.37%)</text>
<text text-anchor="middle" x="2192.9927" y="-911.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.16s(1.97%)</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N5 -->
<g id="edge78" class="edge">
<title>N38&#45;&gt;N5</title>
<g id="a_edge78"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.06s)">
<path fill="none" stroke="#000000" d="M2181.2642,-904.9866C2158.8455,-868.1685 2105.9442,-792.0982 2036.9927,-764 2002.0372,-749.7555 1990.553,-755.3878 1953.9927,-746 1883.0315,-727.7788 1866.6961,-718.1972 1795.9927,-699 1714.3658,-676.8369 1619.6808,-653.9967 1557.7301,-639.4367"/>
<polygon fill="#000000" stroke="#000000" points="1558.231,-635.9593 1547.696,-637.0836 1556.6327,-642.7744 1558.231,-635.9593"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.06s)">
<text text-anchor="middle" x="2079.7168" y="-766.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.duffzero (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2445.2469,-36 2348.7385,-36 2348.7385,0 2445.2469,0 2445.2469,-36"/>
<text text-anchor="middle" x="2396.9927" y="-20.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="2396.9927" y="-8.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.74%)</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N59 -->
<g id="edge95" class="edge">
<title>N38&#45;&gt;N59</title>
<g id="a_edge95"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.05s)">
<path fill="none" stroke="#000000" d="M2190.6954,-904.9222C2188.5843,-878.6499 2187.6533,-832.2561 2201.9927,-796 2294.357,-562.464 2558.9927,-609.1379 2558.9927,-358 2558.9927,-358 2558.9927,-358 2558.9927,-111 2558.9927,-61.7527 2501.9884,-38.207 2455.609,-27.2"/>
<polygon fill="#000000" stroke="#000000" points="2456.1193,-23.7281 2445.598,-24.9744 2454.6001,-30.5612 2456.1193,-23.7281"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.05s)">
<text text-anchor="middle" x="2561.7168" y="-445.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N7 -->
<g id="edge60" class="edge">
<title>N40&#45;&gt;N7</title>
<g id="a_edge60"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.10s)">
<path fill="none" stroke="#000000" d="M1871.6501,-384.879C1896.5788,-374.2798 1928.5518,-361.2188 1957.5444,-351 1980.1085,-343.0471 2004.9039,-335.2818 2027.701,-328.5225"/>
<polygon fill="#000000" stroke="#000000" points="2028.7298,-331.8683 2037.3365,-325.6897 2026.7553,-325.1525 2028.7298,-331.8683"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.10s)">
<text text-anchor="middle" x="1974.7168" y="-353.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N59 -->
<g id="edge108" class="edge">
<title>N41&#45;&gt;N59</title>
<g id="a_edge108"><a xlink:title="runtime.freedefer &#45;&gt; runtime.duffzero (0.01s)">
<path fill="none" stroke="#000000" d="M2293.4199,-85.8329C2314.4058,-72.0886 2340.2389,-55.1697 2360.8555,-41.6673"/>
<polygon fill="#000000" stroke="#000000" points="2362.8946,-44.5157 2369.3425,-36.1089 2359.0593,-38.6599 2362.8946,-44.5157"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="runtime.freedefer &#45;&gt; runtime.duffzero (0.01s)">
<text text-anchor="middle" x="2354.7168" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.mach_semaphore_signal (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2530.9385,-129 2329.0469,-129 2329.0469,-93 2530.9385,-93 2530.9385,-129"/>
<text text-anchor="middle" x="2429.9927" y="-113.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2429.9927" y="-99.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.14s(1.72%)</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N5 -->
<g id="edge68" class="edge">
<title>N44&#45;&gt;N5</title>
<g id="a_edge68"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.08s)">
<path fill="none" stroke="#000000" d="M1887.5588,-801.8323C1805.6348,-765.0951 1641.922,-691.6813 1552.6009,-651.627"/>
<polygon fill="#000000" stroke="#000000" points="1553.961,-648.4012 1543.4043,-647.503 1551.0967,-654.7884 1553.961,-648.4012"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.08s)">
<text text-anchor="middle" x="1775.7168" y="-718.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="main.Integer.Multiply (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="529.039,-844.5 416.9464,-844.5 416.9464,-803.5 529.039,-803.5 529.039,-844.5"/>
<text text-anchor="middle" x="472.9927" y="-831.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="472.9927" y="-820.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.37%)</text>
<text text-anchor="middle" x="472.9927" y="-809.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(1.48%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N47 -->
<g id="edge56" class="edge">
<title>N45&#45;&gt;N47</title>
<g id="a_edge56"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.12s)">
<path fill="none" stroke="#000000" d="M394.2376,-906.4086C408.8005,-891.1701 429.4228,-869.5911 445.9118,-852.3372"/>
<polygon fill="#000000" stroke="#000000" points="448.7817,-854.4001 453.1604,-844.7524 443.721,-849.5638 448.7817,-854.4001"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.12s)">
<text text-anchor="middle" x="444.7168" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N54 -->
<g id="edge103" class="edge">
<title>N46&#45;&gt;N54</title>
<g id="a_edge103"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.02s)">
<path fill="none" stroke="#000000" d="M1665.5908,-1128.8268C1647.0445,-1109.6123 1620.2043,-1081.8049 1600.7393,-1061.6384"/>
<polygon fill="#000000" stroke="#000000" points="1603.1361,-1059.0819 1593.673,-1054.3174 1598.0995,-1063.9433 1603.1361,-1059.0819"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.02s)">
<text text-anchor="middle" x="1658.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="unicode.IsSpace (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1745.2979,-1054 1650.6875,-1054 1650.6875,-1018 1745.2979,-1018 1745.2979,-1054"/>
<text text-anchor="middle" x="1697.9927" y="-1038.4" font-family="Times,serif" font-size="12.00" fill="#000000">unicode.IsSpace</text>
<text text-anchor="middle" x="1697.9927" y="-1026.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.74%)</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N61 -->
<g id="edge75" class="edge">
<title>N46&#45;&gt;N61</title>
<g id="a_edge75"><a xlink:title="main.wordIsWhitespace &#45;&gt; unicode.IsSpace (0.06s)">
<path fill="none" stroke="#000000" d="M1689.1136,-1128.8268C1690.8705,-1110.4588 1693.3786,-1084.2382 1695.2813,-1064.3467"/>
<polygon fill="#000000" stroke="#000000" points="1698.7724,-1064.6053 1696.2406,-1054.3174 1691.8042,-1063.9387 1698.7724,-1064.6053"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; unicode.IsSpace (0.06s)">
<text text-anchor="middle" x="1709.7168" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N9 -->
<g id="edge71" class="edge">
<title>N47&#45;&gt;N9</title>
<g id="a_edge71"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.07s)">
<path fill="none" stroke="#000000" d="M529.228,-809.4332C589.3449,-793.8368 687.4439,-768.3171 771.9927,-746 780.4353,-743.7715 789.3301,-741.411 798.0892,-739.0792"/>
<polygon fill="#000000" stroke="#000000" points="799.1282,-742.4245 807.8895,-736.4672 797.3254,-735.6606 799.1282,-742.4245"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.07s)">
<text text-anchor="middle" x="715.7168" y="-766.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N36 -->
<g id="edge102" class="edge">
<title>N47&#45;&gt;N36</title>
<g id="a_edge102"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M512.5463,-803.4183C536.5448,-791.2771 567.9588,-775.9921 596.5444,-764 614.5788,-756.4343 634.5285,-748.9966 652.745,-742.5543"/>
<polygon fill="#000000" stroke="#000000" points="654.0957,-745.7898 662.3777,-739.1823 651.7829,-739.1829 654.0957,-745.7898"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="613.7168" y="-766.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N9 -->
<g id="edge82" class="edge">
<title>N49&#45;&gt;N9</title>
<g id="a_edge82"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.05s)">
<path fill="none" stroke="#000000" d="M62.3332,-906.2785C76.4418,-891.8656 95.6902,-871.3698 110.9927,-852 129.5692,-828.4859 122.6899,-811.1508 148.5444,-796 268.4606,-725.7289 635.0189,-769.5818 771.9927,-746 780.5979,-744.5185 789.5851,-742.5828 798.3892,-740.4577"/>
<polygon fill="#000000" stroke="#000000" points="799.373,-743.8194 808.2213,-737.992 797.6703,-737.0296 799.373,-743.8194"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.05s)">
<text text-anchor="middle" x="165.7168" y="-819.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N36 -->
<g id="edge107" class="edge">
<title>N49&#45;&gt;N36</title>
<g id="a_edge107"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.01s)">
<path fill="none" stroke="#000000" d="M44.2715,-906.3639C46.8599,-879.6223 54.6027,-830.4849 77.5444,-796 90.4351,-776.6234 97.2415,-772.2769 118.9927,-764 167.8894,-745.3935 510.8824,-730.2636 652.2786,-724.7466"/>
<polygon fill="#000000" stroke="#000000" points="652.6504,-728.2349 662.5074,-724.3506 652.3795,-721.2402 652.6504,-728.2349"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.01s)">
<text text-anchor="middle" x="94.7168" y="-819.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.(*mcache).refill (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1896.6754,-130 1783.3099,-130 1783.3099,-92 1896.6754,-92 1896.6754,-130"/>
<text text-anchor="middle" x="1839.9927" y="-118" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="1839.9927" y="-108" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.12%)</text>
<text text-anchor="middle" x="1839.9927" y="-98" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.08s(0.98%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N52 -->
<g id="edge66" class="edge">
<title>N50&#45;&gt;N52</title>
<g id="a_edge66"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.08s)">
<path fill="none" stroke="#000000" d="M1839.9927,-188.8359C1839.9927,-175.019 1839.9927,-156.114 1839.9927,-140.3955"/>
<polygon fill="#000000" stroke="#000000" points="1843.4928,-140.1242 1839.9927,-130.1243 1836.4928,-140.1243 1843.4928,-140.1242"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.08s)">
<text text-anchor="middle" x="1856.7168" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N24 -->
<g id="edge67" class="edge">
<title>N51&#45;&gt;N24</title>
<g id="a_edge67"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.08s)">
<path fill="none" stroke="#000000" d="M164.1186,-906.4086C178.0829,-893.1621 197.0981,-875.1243 213.7785,-859.3013"/>
<polygon fill="#000000" stroke="#000000" points="216.4053,-861.6338 221.2516,-852.2123 211.5878,-856.5552 216.4053,-861.6338"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.08s)">
<text text-anchor="middle" x="217.7168" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.schedule (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2078.7626,-842 2005.2228,-842 2005.2228,-806 2078.7626,-806 2078.7626,-842"/>
<text text-anchor="middle" x="2041.9927" y="-825.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="2041.9927" y="-817.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(0.86%)</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.findrunnable (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2046.8136,-740.5 1963.1717,-740.5 1963.1717,-704.5 2046.8136,-704.5 2046.8136,-740.5"/>
<text text-anchor="middle" x="2004.9927" y="-724.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="2004.9927" y="-716.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.62%)</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N63 -->
<g id="edge89" class="edge">
<title>N57&#45;&gt;N63</title>
<g id="a_edge89"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.05s)">
<path fill="none" stroke="#000000" d="M2021.7374,-805.8106C2014.5467,-798.0403 2007.3079,-788.3711 2003.5444,-778 2000.425,-769.4038 1999.8167,-759.5563 2000.2866,-750.5658"/>
<polygon fill="#000000" stroke="#000000" points="2003.7782,-750.8197 2001.2477,-740.5315 1996.8101,-750.1522 2003.7782,-750.8197"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.05s)">
<text text-anchor="middle" x="2019.7168" y="-766.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.stopm (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2051.7626,-642 1978.2228,-642 1978.2228,-606 2051.7626,-606 2051.7626,-642"/>
<text text-anchor="middle" x="2014.9927" y="-625.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="2014.9927" y="-617.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.62%)</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N72 -->
<g id="edge84" class="edge">
<title>N63&#45;&gt;N72</title>
<g id="a_edge84"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.05s)">
<path fill="none" stroke="#000000" d="M2006.8268,-704.4336C2008.2977,-689.9456 2010.3895,-669.3416 2012.0877,-652.6145"/>
<polygon fill="#000000" stroke="#000000" points="2015.6083,-652.5879 2013.1363,-642.2855 2008.6441,-651.8808 2015.6083,-652.5879"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.05s)">
<text text-anchor="middle" x="2026.7168" y="-669.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.mach_semaphore_wait (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2217.4419,-36 2050.5434,-36 2050.5434,0 2217.4419,0 2217.4419,-36"/>
<text text-anchor="middle" x="2133.9927" y="-20.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="2133.9927" y="-8.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.62%)</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.mcall (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2078.7626,-1054 2005.2228,-1054 2005.2228,-1018 2078.7626,-1018 2078.7626,-1054"/>
<text text-anchor="middle" x="2041.9927" y="-1037.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="2041.9927" y="-1029.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.62%)</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.park_m (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2078.7626,-943.5 2005.2228,-943.5 2005.2228,-907.5 2078.7626,-907.5 2078.7626,-943.5"/>
<text text-anchor="middle" x="2041.9927" y="-927.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.park_m</text>
<text text-anchor="middle" x="2041.9927" y="-919.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.62%)</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N68 -->
<g id="edge86" class="edge">
<title>N66&#45;&gt;N68</title>
<g id="a_edge86"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.05s)">
<path fill="none" stroke="#000000" d="M2041.9927,-1017.7532C2041.9927,-1000.3984 2041.9927,-974.0286 2041.9927,-953.9203"/>
<polygon fill="#000000" stroke="#000000" points="2045.4928,-953.7739 2041.9927,-943.7739 2038.4928,-953.774 2045.4928,-953.7739"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.05s)">
<text text-anchor="middle" x="2058.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.notesleep (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2057.7626,-530 1984.2228,-530 1984.2228,-494 2057.7626,-494 2057.7626,-530"/>
<text text-anchor="middle" x="2020.9927" y="-513.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notesleep</text>
<text text-anchor="middle" x="2020.9927" y="-505.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.62%)</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.semasleep (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2078.7509,-422 2003.2345,-422 2003.2345,-386 2078.7509,-386 2078.7509,-422"/>
<text text-anchor="middle" x="2040.9927" y="-405.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep</text>
<text text-anchor="middle" x="2040.9927" y="-397.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.62%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N69 -->
<g id="edge87" class="edge">
<title>N67&#45;&gt;N69</title>
<g id="a_edge87"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.05s)">
<path fill="none" stroke="#000000" d="M2024.3854,-493.6793C2027.5073,-476.821 2032.1843,-451.5651 2035.7803,-432.147"/>
<polygon fill="#000000" stroke="#000000" points="2039.2706,-432.5203 2037.6501,-422.0502 2032.3876,-431.2456 2039.2706,-432.5203"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.05s)">
<text text-anchor="middle" x="2049.7168" y="-445.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N57 -->
<g id="edge88" class="edge">
<title>N68&#45;&gt;N57</title>
<g id="a_edge88"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.05s)">
<path fill="none" stroke="#000000" d="M2041.9927,-907.3538C2041.9927,-892.1487 2041.9927,-870.1722 2041.9927,-852.6019"/>
<polygon fill="#000000" stroke="#000000" points="2045.4928,-852.3313 2041.9927,-842.3313 2038.4928,-852.3313 2045.4928,-852.3313"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.05s)">
<text text-anchor="middle" x="2058.7168" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N7 -->
<g id="edge90" class="edge">
<title>N69&#45;&gt;N7</title>
<g id="a_edge90"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.05s)">
<path fill="none" stroke="#000000" d="M2045.0262,-385.8399C2047.9541,-375.1224 2052.6301,-361.6211 2059.5444,-351 2061.8319,-347.4862 2064.4538,-344.0558 2067.2649,-340.7583"/>
<polygon fill="#000000" stroke="#000000" points="2069.905,-343.0581 2074.0997,-333.3289 2064.7534,-338.3187 2069.905,-343.0581"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.05s)">
<text text-anchor="middle" x="2075.7168" y="-353.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.semasleep1 (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2173.7509,-129 2094.2345,-129 2094.2345,-93 2173.7509,-93 2173.7509,-129"/>
<text text-anchor="middle" x="2133.9927" y="-112.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="2133.9927" y="-104.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(0.62%)</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N71 -->
<g id="edge91" class="edge">
<title>N70&#45;&gt;N71</title>
<g id="a_edge91"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.05s)">
<path fill="none" stroke="#000000" d="M2133.9927,-189.755C2133.9927,-175.5291 2133.9927,-155.521 2133.9927,-139.2321"/>
<polygon fill="#000000" stroke="#000000" points="2137.4928,-139.1631 2133.9927,-129.1631 2130.4928,-139.1632 2137.4928,-139.1631"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.05s)">
<text text-anchor="middle" x="2150.7168" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N65 -->
<g id="edge92" class="edge">
<title>N71&#45;&gt;N65</title>
<g id="a_edge92"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.05s)">
<path fill="none" stroke="#000000" d="M2133.9927,-92.6262C2133.9927,-79.4212 2133.9927,-61.369 2133.9927,-46.3274"/>
<polygon fill="#000000" stroke="#000000" points="2137.4928,-46.0192 2133.9927,-36.0192 2130.4928,-46.0192 2137.4928,-46.0192"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.05s)">
<text text-anchor="middle" x="2150.7168" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N67 -->
<g id="edge93" class="edge">
<title>N72&#45;&gt;N67</title>
<g id="a_edge93"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.05s)">
<path fill="none" stroke="#000000" d="M2015.9835,-605.5055C2016.9358,-587.7282 2018.3881,-560.6184 2019.4842,-540.1587"/>
<polygon fill="#000000" stroke="#000000" points="2022.9803,-540.3233 2020.0203,-530.1504 2015.9903,-539.9488 2022.9803,-540.3233"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.05s)">
<text text-anchor="middle" x="2034.7168" y="-569.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run (7.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1053.7429,-1653 914.2425,-1653 914.2425,-1617 1053.7429,-1617 1053.7429,-1653"/>
<text text-anchor="middle" x="983.9927" y="-1636.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.(*App).Run</text>
<text text-anchor="middle" x="983.9927" y="-1628.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7.77s(95.57%)</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction (7.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1057.1764,-1567 910.809,-1567 910.809,-1531 1057.1764,-1531 1057.1764,-1567"/>
<text text-anchor="middle" x="983.9927" y="-1550.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.HandleAction</text>
<text text-anchor="middle" x="983.9927" y="-1542.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7.77s(95.57%)</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N74 -->
<g id="edge1" class="edge">
<title>N73&#45;&gt;N74</title>
<g id="a_edge1"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (7.77s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M983.9927,-1616.7616C983.9927,-1605.3597 983.9927,-1590.4342 983.9927,-1577.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="988.3678,-1577.2121 983.9927,-1567.2121 979.6178,-1577.2121 988.3678,-1577.2121"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (7.77s)">
<text text-anchor="middle" x="1000.7168" y="-1587.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.77s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="main.handleFlags (7.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1022.7625,-1481 945.2228,-1481 945.2228,-1445 1022.7625,-1445 1022.7625,-1481"/>
<text text-anchor="middle" x="983.9927" y="-1464.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.handleFlags</text>
<text text-anchor="middle" x="983.9927" y="-1456.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7.77s(95.57%)</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N76 -->
<g id="edge2" class="edge">
<title>N74&#45;&gt;N76</title>
<g id="a_edge2"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (7.77s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M983.9927,-1530.7616C983.9927,-1519.3597 983.9927,-1504.4342 983.9927,-1491.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="988.3678,-1491.2121 983.9927,-1481.2121 979.6178,-1491.2121 988.3678,-1491.2121"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (7.77s)">
<text text-anchor="middle" x="1000.7168" y="-1501.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.77s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="main.(*machine).executeString (7.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1042.3996,-1395 925.5857,-1395 925.5857,-1359 1042.3996,-1359 1042.3996,-1395"/>
<text text-anchor="middle" x="983.9927" y="-1378.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeString</text>
<text text-anchor="middle" x="983.9927" y="-1370.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7.77s(95.57%)</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N2 -->
<g id="edge3" class="edge">
<title>N75&#45;&gt;N2</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (7.77s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M983.9927,-1358.6793C983.9927,-1347.8316 983.9927,-1333.5069 983.9927,-1319.4979"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="988.3678,-1319.4072 983.9927,-1309.4072 979.6178,-1319.4073 988.3678,-1319.4072"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (7.77s)">
<text text-anchor="middle" x="1000.7168" y="-1329.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.77s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N75 -->
<g id="edge4" class="edge">
<title>N76&#45;&gt;N75</title>
<g id="a_edge4"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (7.77s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M983.9927,-1444.7616C983.9927,-1433.3597 983.9927,-1418.4342 983.9927,-1405.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="988.3678,-1405.2121 983.9927,-1395.2121 979.6178,-1405.2121 988.3678,-1405.2121"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (7.77s)">
<text text-anchor="middle" x="1000.7168" y="-1415.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.77s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="main.main (7.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1022.7625,-1739 945.2228,-1739 945.2228,-1703 1022.7625,-1703 1022.7625,-1739"/>
<text text-anchor="middle" x="983.9927" y="-1722.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.main</text>
<text text-anchor="middle" x="983.9927" y="-1714.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7.77s(95.57%)</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N73 -->
<g id="edge5" class="edge">
<title>N77&#45;&gt;N73</title>
<g id="a_edge5"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (7.77s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M983.9927,-1702.7616C983.9927,-1691.3597 983.9927,-1676.4342 983.9927,-1663.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="988.3678,-1663.2121 983.9927,-1653.2121 979.6178,-1663.2121 988.3678,-1663.2121"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (7.77s)">
<text text-anchor="middle" x="1000.7168" y="-1673.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.77s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N77 -->
<g id="edge7" class="edge">
<title>N78&#45;&gt;N77</title>
<g id="a_edge7"><a xlink:title="runtime.main &#45;&gt; main.main (7.77s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M983.9927,-1788.7616C983.9927,-1777.3597 983.9927,-1762.4342 983.9927,-1749.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="988.3678,-1749.2121 983.9927,-1739.2121 979.6178,-1749.2121 988.3678,-1749.2121"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="runtime.main &#45;&gt; main.main (7.77s)">
<text text-anchor="middle" x="1000.7168" y="-1759.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.77s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N38 -->
<g id="edge44" class="edge">
<title>N79&#45;&gt;N38</title>
<g id="a_edge44"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (0.16s)">
<path fill="none" stroke="#000000" d="M2219.7085,-1017.7532C2214.8409,-1000.9448 2207.5245,-975.6802 2201.7783,-955.8378"/>
<polygon fill="#000000" stroke="#000000" points="2205.0814,-954.661 2198.9378,-946.0293 2198.3576,-956.6082 2205.0814,-954.661"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (0.16s)">
<text text-anchor="middle" x="2225.7168" y="-969.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N42 -->
<g id="edge51" class="edge">
<title>N80&#45;&gt;N42</title>
<g id="a_edge51"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.14s)">
<path fill="none" stroke="#000000" d="M2417.0022,-189.755C2419.3487,-175.5291 2422.649,-155.521 2425.3358,-139.2321"/>
<polygon fill="#000000" stroke="#000000" points="2428.8225,-139.5995 2426.9967,-129.1631 2421.9158,-138.4602 2428.8225,-139.5995"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.14s)">
<text text-anchor="middle" x="2438.7168" y="-156.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration7.svg.





























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2311)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2311 2578.1484,-2311 2578.1484,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="23,-2115 23,-2299 669,-2299 669,-2115 23,-2115"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="660.8438,-2291 31.1562,-2291 31.1562,-2123 660.8438,-2123 660.8438,-2291"/>
<text text-anchor="start" x="39.0781" y="-2261.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="39.0781" y="-2229.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="39.0781" y="-2197.4" font-family="Times,serif" font-size="32.00" fill="#000000">3.76s of 4.07s total (92.38%)</text>
<text text-anchor="start" x="39.0781" y="-2165.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 46 nodes (cum &lt;= 0.02s)</text>
<text text-anchor="start" x="39.0781" y="-2133.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 87 (cum &gt;= 0.10s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (3.80s)">
<polygon fill="#f8f8f8" stroke="#000000" points="756.7699,-2225 679.2301,-2225 679.2301,-2189 756.7699,-2189 756.7699,-2225"/>
<text text-anchor="middle" x="718" y="-2208.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="718" y="-2200.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.80s(93.37%)</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.gcBgMarkWorker (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="661.3907,-2073 560.6093,-2073 560.6093,-2037 661.3907,-2037 661.3907,-2073"/>
<text text-anchor="middle" x="611" y="-2056.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="611" y="-2048.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(2.46%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N33 -->
<g id="edge57" class="edge">
<title>N1&#45;&gt;N33</title>
<g id="a_edge57"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.10s)">
<path fill="none" stroke="#000000" d="M711.2435,-2188.6799C703.6213,-2169.3332 690.0361,-2138.4466 673,-2115 663.8602,-2102.421 651.9385,-2090.1781 640.9938,-2080.0669"/>
<polygon fill="#000000" stroke="#000000" points="643.0276,-2077.1889 633.2507,-2073.1068 638.348,-2082.3949 643.0276,-2077.1889"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.10s)">
<text text-anchor="middle" x="681.7241" y="-2093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.main (3.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="756.7699,-2073 679.2301,-2073 679.2301,-2037 756.7699,-2037 756.7699,-2073"/>
<text text-anchor="middle" x="718" y="-2056.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.main</text>
<text text-anchor="middle" x="718" y="-2048.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.70s(90.91%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N62 -->
<g id="edge6" class="edge">
<title>N1&#45;&gt;N62</title>
<g id="a_edge6"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (3.70s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M718,-2188.9667C718,-2162.7983 718,-2114.0561 718,-2083.1368"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="722.3751,-2083.0098 718,-2073.0098 713.6251,-2083.0099 722.3751,-2083.0098"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (3.70s)">
<text text-anchor="middle" x="734.7241" y="-2093.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.70s</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (3.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="822.0132,-1552 613.9868,-1552 613.9868,-1487 822.0132,-1487 822.0132,-1552"/>
<text text-anchor="middle" x="718" y="-1532.8" font-family="Times,serif" font-size="19.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="718" y="-1513.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.25s(6.14%)</text>
<text text-anchor="middle" x="718" y="-1494.8" font-family="Times,serif" font-size="19.00" fill="#000000">of 3.70s(90.91%)</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (3.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="622.9824,-1431 415.0176,-1431 415.0176,-1387 622.9824,-1387 622.9824,-1431"/>
<text text-anchor="middle" x="519" y="-1417.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="519" y="-1405.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.74%)</text>
<text text-anchor="middle" x="519" y="-1393.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 3.70s(90.91%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N3 -->
<g id="edge82" class="edge">
<title>N2&#45;&gt;N3</title>
<g id="a_edge82"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.03s)">
<path fill="none" stroke="#000000" d="M670.4995,-1486.9611C654.1556,-1476.2798 635.5485,-1464.6761 618,-1455 605.7134,-1448.2253 592.2538,-1441.522 579.3272,-1435.4153"/>
<polygon fill="#000000" stroke="#000000" points="580.5755,-1432.1357 570.0332,-1431.0817 577.6173,-1438.4799 580.5755,-1432.1357"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.03s)">
<text text-anchor="middle" x="657.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).execute.func6 (3.69s)">
<polygon fill="#f8f8f8" stroke="#000000" points="795.4609,-1429.5 640.5391,-1429.5 640.5391,-1388.5 795.4609,-1388.5 795.4609,-1429.5"/>
<text text-anchor="middle" x="718" y="-1416.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).execute.func6</text>
<text text-anchor="middle" x="718" y="-1405.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.25%)</text>
<text text-anchor="middle" x="718" y="-1394.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 3.69s(90.66%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N4 -->
<g id="edge75" class="edge">
<title>N2&#45;&gt;N4</title>
<g id="a_edge75"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func6 (0.04s)">
<path fill="none" stroke="#000000" d="M746.8447,-1486.9597C752.4209,-1477.0048 755.5648,-1465.8205 752,-1455 750.0889,-1449.1993 747.1338,-1443.5308 743.7466,-1438.2659"/>
<polygon fill="#000000" stroke="#000000" points="746.3961,-1435.9524 737.7463,-1429.8342 740.6928,-1440.0111 746.3961,-1435.9524"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func6 (0.04s)">
<text text-anchor="middle" x="770.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.(*machine).execute.func7 (2.69s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1018.9928,-1435.5 813.0072,-1435.5 813.0072,-1382.5 1018.9928,-1382.5 1018.9928,-1435.5"/>
<text text-anchor="middle" x="916" y="-1419.5" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*machine).execute.func7</text>
<text text-anchor="middle" x="916" y="-1404.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.09s(2.21%)</text>
<text text-anchor="middle" x="916" y="-1389.5" font-family="Times,serif" font-size="15.00" fill="#000000">of 2.69s(66.09%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N5 -->
<g id="edge10" class="edge">
<title>N2&#45;&gt;N5</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (1.46s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M822.41,-1496.6408C841.0073,-1489.67 859.3981,-1480.6473 875,-1469 883.8107,-1462.4226 891.374,-1453.3701 897.5183,-1444.2899"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="900.5904,-1445.9801 902.9687,-1435.6556 894.671,-1442.2435 900.5904,-1445.9801"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (1.46s)">
<text text-anchor="middle" x="905.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.46s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.convT2I (0.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1123.5974,-1128 1010.4026,-1128 1010.4026,-1078 1123.5974,-1078 1123.5974,-1128"/>
<text text-anchor="middle" x="1067" y="-1112.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1067" y="-1098.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.47%)</text>
<text text-anchor="middle" x="1067" y="-1084.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.65s(15.97%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N10 -->
<g id="edge98" class="edge">
<title>N2&#45;&gt;N10</title>
<g id="a_edge98"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.01s)">
<path fill="none" stroke="#000000" d="M822.1185,-1509.5196C961.3182,-1495.1096 1193.6156,-1466.9063 1219,-1437 1299.1876,-1342.5279 1169.7806,-1198.8048 1102.9813,-1135.2063"/>
<polygon fill="#000000" stroke="#000000" points="1105.2343,-1132.5205 1095.5526,-1128.2175 1100.4378,-1137.6189 1105.2343,-1132.5205"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.01s)">
<text text-anchor="middle" x="1254.7241" y="-1300.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="runtime.deferreturn (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="397.3282,-1437 256.6718,-1437 256.6718,-1381 397.3282,-1381 397.3282,-1437"/>
<text text-anchor="middle" x="327" y="-1420.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="327" y="-1404.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.11s(2.70%)</text>
<text text-anchor="middle" x="327" y="-1388.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.31s(7.62%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N12 -->
<g id="edge26" class="edge">
<title>N2&#45;&gt;N12</title>
<g id="a_edge26"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.31s)">
<path fill="none" stroke="#000000" d="M613.7483,-1494.2125C555.4449,-1479.5284 481.3422,-1459.9709 407.4846,-1437.3848"/>
<polygon fill="#000000" stroke="#000000" points="408.1265,-1433.9204 397.5394,-1434.3244 406.0677,-1440.6108 408.1265,-1433.9204"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.31s)">
<text text-anchor="middle" x="533.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2021.8048,-1429.5 1828.1952,-1429.5 1828.1952,-1388.5 2021.8048,-1388.5 2021.8048,-1429.5"/>
<text text-anchor="middle" x="1925" y="-1416.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="1925" y="-1405.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.49%)</text>
<text text-anchor="middle" x="1925" y="-1394.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.26s(6.39%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N13 -->
<g id="edge27" class="edge">
<title>N2&#45;&gt;N13</title>
<g id="a_edge27"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.26s)">
<path fill="none" stroke="#000000" d="M822.3164,-1514.4596C975.9039,-1506.6975 1271.8566,-1490.4418 1523,-1469 1654.8424,-1457.7437 1688.8867,-1461.0762 1819,-1437 1826.9171,-1435.535 1835.112,-1433.7897 1843.2767,-1431.8966"/>
<polygon fill="#000000" stroke="#000000" points="1844.2886,-1435.2534 1853.2001,-1429.5232 1842.6602,-1428.4454 1844.2886,-1435.2534"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.26s)">
<text text-anchor="middle" x="1712.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2574.2971,-1434 2331.7029,-1434 2331.7029,-1384 2574.2971,-1384 2574.2971,-1434"/>
<text text-anchor="middle" x="2453" y="-1418.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2453" y="-1404.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.08s(1.97%)</text>
<text text-anchor="middle" x="2453" y="-1390.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.25s(6.14%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge28" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge28"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.25s)">
<path fill="none" stroke="#000000" d="M822.1328,-1517.2698C1101.099,-1511.0479 1861.0196,-1492.4098 2111,-1469 2183.0688,-1462.251 2262.7721,-1448.6329 2327.0925,-1436.0743"/>
<polygon fill="#000000" stroke="#000000" points="2328.1442,-1439.4346 2337.2799,-1434.0691 2326.7922,-1432.5663 2328.1442,-1439.4346"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.25s)">
<text text-anchor="middle" x="2231.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.executeMultiply (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1405.7453,-1434 1266.2547,-1434 1266.2547,-1384 1405.7453,-1384 1405.7453,-1434"/>
<text text-anchor="middle" x="1336" y="-1418.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.executeMultiply</text>
<text text-anchor="middle" x="1336" y="-1404.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.07s(1.72%)</text>
<text text-anchor="middle" x="1336" y="-1390.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.25s(6.14%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N15 -->
<g id="edge29" class="edge">
<title>N2&#45;&gt;N15</title>
<g id="a_edge29"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.25s)">
<path fill="none" stroke="#000000" d="M822.1922,-1516.0671C954.7874,-1510.5935 1175.7725,-1497.4548 1252,-1469 1269.4037,-1462.5034 1286.4855,-1451.4308 1300.6526,-1440.5531"/>
<polygon fill="#000000" stroke="#000000" points="1302.9865,-1443.169 1308.6376,-1434.2071 1298.6312,-1437.6889 1302.9865,-1443.169"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.25s)">
<text text-anchor="middle" x="1295.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.deferproc (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="238.1733,-1434 121.8267,-1434 121.8267,-1384 238.1733,-1384 238.1733,-1434"/>
<text text-anchor="middle" x="180" y="-1418.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="180" y="-1404.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.47%)</text>
<text text-anchor="middle" x="180" y="-1390.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.23s(5.65%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N16 -->
<g id="edge30" class="edge">
<title>N2&#45;&gt;N16</title>
<g id="a_edge30"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.23s)">
<path fill="none" stroke="#000000" d="M613.8438,-1507.805C517.6141,-1495.4577 371.3307,-1472.7561 248,-1437 247.9004,-1436.9711 247.8007,-1436.9421 247.701,-1436.913"/>
<polygon fill="#000000" stroke="#000000" points="248.9075,-1433.6237 238.3178,-1433.9539 246.8021,-1440.2996 248.9075,-1433.6237"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.23s)">
<text text-anchor="middle" x="392.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="main.executeSubtract (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1560.3936,-1434 1423.6064,-1434 1423.6064,-1384 1560.3936,-1384 1560.3936,-1434"/>
<text text-anchor="middle" x="1492" y="-1418.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.executeSubtract</text>
<text text-anchor="middle" x="1492" y="-1404.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.07s(1.72%)</text>
<text text-anchor="middle" x="1492" y="-1390.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.21s(5.16%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N18 -->
<g id="edge32" class="edge">
<title>N2&#45;&gt;N18</title>
<g id="a_edge32"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.21s)">
<path fill="none" stroke="#000000" d="M822.031,-1513.5867C967.5663,-1504.8212 1224.3893,-1487.4217 1316,-1469 1351.5653,-1461.8483 1389.8203,-1449.4139 1421.5504,-1437.7126"/>
<polygon fill="#000000" stroke="#000000" points="1423.0381,-1440.8931 1431.1781,-1434.1114 1420.5856,-1434.3368 1423.0381,-1440.8931"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.21s)">
<text text-anchor="middle" x="1386.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="main.(*CodeQuotation).nextWord (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1809.5473,-1429 1578.4527,-1429 1578.4527,-1389 1809.5473,-1389 1809.5473,-1429"/>
<text text-anchor="middle" x="1694" y="-1412.2" font-family="Times,serif" font-size="16.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="1694" y="-1396.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.14s(3.44%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N23 -->
<g id="edge41" class="edge">
<title>N2&#45;&gt;N23</title>
<g id="a_edge41"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.14s)">
<path fill="none" stroke="#000000" d="M822.2955,-1515.8141C957.6067,-1510.1268 1200.774,-1496.8202 1407,-1469 1473.3871,-1460.0443 1547.3618,-1444.4408 1603.58,-1431.3908"/>
<polygon fill="#000000" stroke="#000000" points="1604.568,-1434.7542 1613.5088,-1429.0697 1602.9746,-1427.938 1604.568,-1434.7542"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.14s)">
<text text-anchor="middle" x="1502.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1209.8304,-1429.5 1036.1696,-1429.5 1036.1696,-1388.5 1209.8304,-1388.5 1209.8304,-1429.5"/>
<text text-anchor="middle" x="1123" y="-1416.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(intPusher).(main.pushInt)&#45;fm</text>
<text text-anchor="middle" x="1123" y="-1405.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.25%)</text>
<text text-anchor="middle" x="1123" y="-1394.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.10s(2.46%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N31 -->
<g id="edge51" class="edge">
<title>N2&#45;&gt;N31</title>
<g id="a_edge51"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.10s)">
<path fill="none" stroke="#000000" d="M822.2509,-1495.4302C855.5092,-1487.4198 892.3959,-1478.1886 926,-1469 966.9965,-1457.7901 1012.3982,-1444.0531 1049.2737,-1432.5533"/>
<polygon fill="#000000" stroke="#000000" points="1050.4471,-1435.8535 1058.946,-1429.5273 1048.3571,-1429.1728 1050.4471,-1435.8535"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.10s)">
<text text-anchor="middle" x="990.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.ifaceeq (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2140.1256,-1432.5 2039.8744,-1432.5 2039.8744,-1385.5 2140.1256,-1385.5 2140.1256,-1432.5"/>
<text text-anchor="middle" x="2090" y="-1418.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="2090" y="-1405.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.23%)</text>
<text text-anchor="middle" x="2090" y="-1392.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.07s(1.72%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N40 -->
<g id="edge65" class="edge">
<title>N2&#45;&gt;N40</title>
<g id="a_edge65"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.07s)">
<path fill="none" stroke="#000000" d="M822.2337,-1516.284C1006.2776,-1510.1659 1400.7838,-1495.0801 1733,-1469 1865.7973,-1458.575 1902.8007,-1473.1765 2031,-1437 2032.2276,-1436.6536 2033.4612,-1436.2835 2034.698,-1435.8926"/>
<polygon fill="#000000" stroke="#000000" points="2035.9338,-1439.1681 2044.1931,-1432.5323 2033.5984,-1432.5691 2035.9338,-1439.1681"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.07s)">
<text text-anchor="middle" x="1967.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="main.(*machine).execute.func1 (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2313.4609,-1429.5 2158.5391,-1429.5 2158.5391,-1388.5 2313.4609,-1388.5 2313.4609,-1429.5"/>
<text text-anchor="middle" x="2236" y="-1416.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="2236" y="-1405.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.49%)</text>
<text text-anchor="middle" x="2236" y="-1394.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.03s(0.74%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N50 -->
<g id="edge81" class="edge">
<title>N2&#45;&gt;N50</title>
<g id="a_edge81"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.03s)">
<path fill="none" stroke="#000000" d="M822.3865,-1517.4554C1084.1208,-1511.9898 1763.3952,-1495.6206 1988,-1469 2060.4482,-1460.4133 2078.3816,-1455.3169 2149,-1437 2154.2796,-1435.6306 2159.71,-1434.1241 2165.1555,-1432.542"/>
<polygon fill="#000000" stroke="#000000" points="2166.3599,-1435.8353 2174.9444,-1429.6259 2164.3613,-1429.1266 2166.3599,-1435.8353"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.03s)">
<text text-anchor="middle" x="2090.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge8" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge8"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (3.67s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M539.1608,-1431.2398C551.3437,-1443.653 567.7316,-1458.653 584.5518,-1469 592.5381,-1473.9128 601.0801,-1478.4769 609.839,-1482.6879"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="608.1183,-1486.7124 619.031,-1486.9482 611.7979,-1478.7736 608.1183,-1486.7124"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (3.67s)">
<text text-anchor="middle" x="601.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.67s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N2 -->
<g id="edge9" class="edge">
<title>N4&#45;&gt;N2</title>
<g id="a_edge9"><a xlink:title="main.(*machine).execute.func6 &#45;&gt; main.(*machine).execute (3.65s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M718,-1429.5091C718,-1442.7227 718,-1460.3975 718,-1476.584"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="713.6251,-1476.944 718,-1486.944 722.3751,-1476.9441 713.6251,-1476.944"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).execute.func6 &#45;&gt; main.(*machine).execute (3.65s)">
<text text-anchor="middle" x="734.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.65s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="main.(*CodeQuotation).cloneCode (0.97s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1020.6078,-1329.5 811.3922,-1329.5 811.3922,-1279.5 1020.6078,-1279.5 1020.6078,-1329.5"/>
<text text-anchor="middle" x="916" y="-1314.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="916" y="-1300.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.07s(1.72%)</text>
<text text-anchor="middle" x="916" y="-1286.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.97s(23.83%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N9 -->
<g id="edge83" class="edge">
<title>N4&#45;&gt;N9</title>
<g id="a_edge83"><a xlink:title="main.(*machine).execute.func6 &#45;&gt; main.(*CodeQuotation).cloneCode (0.03s)">
<path fill="none" stroke="#000000" d="M757.1184,-1388.3542C786.3751,-1372.9132 826.8078,-1351.5737 859.5627,-1334.2864"/>
<polygon fill="#000000" stroke="#000000" points="861.3717,-1337.2892 868.5819,-1329.5262 858.1044,-1331.0985 861.3717,-1337.2892"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.(*machine).execute.func6 &#45;&gt; main.(*CodeQuotation).cloneCode (0.03s)">
<text text-anchor="middle" x="845.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N2 -->
<g id="edge12" class="edge">
<title>N5&#45;&gt;N2</title>
<g id="a_edge12"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (1.23s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M868.393,-1435.5685C843.4289,-1449.5005 812.4321,-1466.7992 785.077,-1482.0656"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="783.3622,-1479.0144 776.3356,-1486.944 786.7735,-1485.127 783.3622,-1479.0144"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (1.23s)">
<text text-anchor="middle" x="845.7241" y="-1457.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.23s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N9 -->
<g id="edge13" class="edge">
<title>N5&#45;&gt;N9</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (0.94s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M916,-1382.3599C916,-1369.4457 916,-1353.7585 916,-1339.8585"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="919.5001,-1339.6529 916,-1329.6529 912.5001,-1339.653 919.5001,-1339.6529"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (0.94s)">
<text text-anchor="middle" x="932.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.94s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N10 -->
<g id="edge16" class="edge">
<title>N5&#45;&gt;N10</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; runtime.convT2I (0.43s)">
<path fill="none" stroke="#000000" d="M972.7881,-1382.4166C993.9187,-1369.7432 1016.1127,-1352.5768 1030,-1331 1068.2359,-1271.5926 1071.3681,-1185.971 1069.6039,-1138.3511"/>
<polygon fill="#000000" stroke="#000000" points="1073.0939,-1138.0529 1069.1327,-1128.2264 1066.1015,-1138.3784 1073.0939,-1138.0529"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; runtime.convT2I (0.43s)">
<text text-anchor="middle" x="1078.7241" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.newobject (1.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="965.0769,-1025 844.9231,-1025 844.9231,-975 965.0769,-975 965.0769,-1025"/>
<text text-anchor="middle" x="905" y="-1009.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="905" y="-995.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.47%)</text>
<text text-anchor="middle" x="905" y="-981.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.36s(33.42%)</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.mallocgc (1.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="997.1098,-922 812.8902,-922 812.8902,-842 997.1098,-842 997.1098,-922"/>
<text text-anchor="middle" x="905" y="-898.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="905" y="-874.8" font-family="Times,serif" font-size="24.00" fill="#000000">0.57s(14.00%)</text>
<text text-anchor="middle" x="905" y="-850.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 1.32s(32.43%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N7 -->
<g id="edge11" class="edge">
<title>N6&#45;&gt;N7</title>
<g id="a_edge11"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.30s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M905,-974.9752C905,-962.5526 905,-947.0817 905,-932.3468"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="908.5001,-932.3098 905,-922.3098 901.5001,-932.3098 908.5001,-932.3098"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.30s)">
<text text-anchor="middle" x="921.7241" y="-942.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.30s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.heapBitsSetType (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="850.3289,-792 641.6711,-792 641.6711,-746 850.3289,-746 850.3289,-792"/>
<text text-anchor="middle" x="746" y="-772.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="746" y="-753.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.23s(5.65%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N17 -->
<g id="edge31" class="edge">
<title>N7&#45;&gt;N17</title>
<g id="a_edge31"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.23s)">
<path fill="none" stroke="#000000" d="M848.4949,-841.8423C828.2147,-827.4293 805.7502,-811.464 787.0335,-798.1622"/>
<polygon fill="#000000" stroke="#000000" points="788.8978,-795.1932 778.719,-792.2531 784.8426,-800.8991 788.8978,-795.1932"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.23s)">
<text text-anchor="middle" x="837.7241" y="-812.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.profilealloc (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1039.817,-787 960.183,-787 960.183,-751 1039.817,-751 1039.817,-787"/>
<text text-anchor="middle" x="1000" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.profilealloc</text>
<text text-anchor="middle" x="1000" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.74%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N56 -->
<g id="edge89" class="edge">
<title>N7&#45;&gt;N56</title>
<g id="a_edge89"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.profilealloc (0.03s)">
<path fill="none" stroke="#000000" d="M938.7609,-841.8423C951.868,-826.2518 966.5021,-808.8449 978.1773,-794.9576"/>
<polygon fill="#000000" stroke="#000000" points="980.9195,-797.1347 984.6756,-787.228 975.5614,-792.6301 980.9195,-797.1347"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.profilealloc (0.03s)">
<text text-anchor="middle" x="979.7241" y="-812.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.gcStart (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="941.7699,-787 868.2301,-787 868.2301,-751 941.7699,-751 941.7699,-787"/>
<text text-anchor="middle" x="905" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcStart</text>
<text text-anchor="middle" x="905" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.32s(7.86%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N68 -->
<g id="edge23" class="edge">
<title>N7&#45;&gt;N68</title>
<g id="a_edge23"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.32s)">
<path fill="none" stroke="#000000" d="M905,-841.8423C905,-827.126 905,-810.7913 905,-797.326"/>
<polygon fill="#000000" stroke="#000000" points="908.5001,-797.2279 905,-787.228 901.5001,-797.228 908.5001,-797.2279"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.32s)">
<text text-anchor="middle" x="921.7241" y="-812.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.(*mcache).nextFree (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="624.1257,-787 517.8743,-787 517.8743,-751 624.1257,-751 624.1257,-787"/>
<text text-anchor="middle" x="571" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="571" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.17s(4.18%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N70 -->
<g id="edge34" class="edge">
<title>N7&#45;&gt;N70</title>
<g id="a_edge34"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.17s)">
<path fill="none" stroke="#000000" d="M812.814,-852.4017C760.0159,-835.2238 692.6086,-812.9107 633,-792 631.612,-791.5131 630.2076,-791.0173 628.7919,-790.5147"/>
<polygon fill="#000000" stroke="#000000" points="629.9343,-787.2062 619.3398,-787.1221 627.5694,-793.7946 629.9343,-787.2062"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.17s)">
<text text-anchor="middle" x="739.7241" y="-812.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.systemstack (1.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="591.586,-696 444.414,-696 444.414,-640 591.586,-640 591.586,-696"/>
<text text-anchor="middle" x="518" y="-679.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="518" y="-663.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.12s(2.95%)</text>
<text text-anchor="middle" x="518" y="-647.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 1.05s(25.80%)</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.deferproc.func1 (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="739.3314,-590 596.6686,-590 596.6686,-543 739.3314,-543 739.3314,-590"/>
<text text-anchor="middle" x="668" y="-575.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="668" y="-562.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(0.98%)</text>
<text text-anchor="middle" x="668" y="-549.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.15s(3.69%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N21 -->
<g id="edge40" class="edge">
<title>N8&#45;&gt;N21</title>
<g id="a_edge40"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.15s)">
<path fill="none" stroke="#000000" d="M559.3852,-639.996C579.5686,-626.3386 603.8471,-609.9101 624.3266,-596.0523"/>
<polygon fill="#000000" stroke="#000000" points="626.5273,-598.7892 632.8479,-590.2862 622.6044,-592.9917 626.5273,-598.7892"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.15s)">
<text text-anchor="middle" x="623.7241" y="-610.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.deferreturn.func1 (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="293.6153,-587 164.3847,-587 164.3847,-546 293.6153,-546 293.6153,-587"/>
<text text-anchor="middle" x="229" y="-574.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="229" y="-563.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.25%)</text>
<text text-anchor="middle" x="229" y="-552.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(2.95%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N27 -->
<g id="edge46" class="edge">
<title>N8&#45;&gt;N27</title>
<g id="a_edge46"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.12s)">
<path fill="none" stroke="#000000" d="M444.3253,-642.1246C398.9871,-626.2014 341.2903,-605.9376 297.0347,-590.3945"/>
<polygon fill="#000000" stroke="#000000" points="298.115,-587.0644 287.5202,-587.0529 295.7954,-593.6689 298.115,-587.0644"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.12s)">
<text text-anchor="middle" x="399.7241" y="-610.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.startTheWorldWithSema (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="579.3482,-584.5 456.6518,-584.5 456.6518,-548.5 579.3482,-548.5 579.3482,-584.5"/>
<text text-anchor="middle" x="518" y="-568.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.startTheWorldWithSema</text>
<text text-anchor="middle" x="518" y="-560.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.32s(7.86%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N69 -->
<g id="edge25" class="edge">
<title>N8&#45;&gt;N69</title>
<g id="a_edge25"><a xlink:title="runtime.systemstack &#45;&gt; runtime.startTheWorldWithSema (0.32s)">
<path fill="none" stroke="#000000" d="M518,-639.996C518,-625.8746 518,-608.7908 518,-594.6492"/>
<polygon fill="#000000" stroke="#000000" points="521.5001,-594.5064 518,-584.5064 514.5001,-594.5064 521.5001,-594.5064"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.startTheWorldWithSema (0.32s)">
<text text-anchor="middle" x="534.7241" y="-610.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="438.3399,-584.5 311.6601,-584.5 311.6601,-548.5 438.3399,-548.5 438.3399,-584.5"/>
<text text-anchor="middle" x="375" y="-568.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="375" y="-560.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(3.69%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N71 -->
<g id="edge39" class="edge">
<title>N8&#45;&gt;N71</title>
<g id="a_edge39"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.15s)">
<path fill="none" stroke="#000000" d="M478.5461,-639.996C456.603,-624.421 429.5825,-605.2421 408.6465,-590.382"/>
<polygon fill="#000000" stroke="#000000" points="410.5491,-587.4404 400.3686,-584.5064 406.4974,-593.1486 410.5491,-587.4404"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.15s)">
<text text-anchor="middle" x="467.7241" y="-610.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.semasleep.func1 (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="852.9727,-584.5 757.0273,-584.5 757.0273,-548.5 852.9727,-548.5 852.9727,-584.5"/>
<text text-anchor="middle" x="805" y="-568.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep.func1</text>
<text text-anchor="middle" x="805" y="-560.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(3.44%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N74 -->
<g id="edge43" class="edge">
<title>N8&#45;&gt;N74</title>
<g id="a_edge43"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.14s)">
<path fill="none" stroke="#000000" d="M591.71,-644.3365C637.0461,-629.4526 696.1875,-609.4434 748,-590 749.5846,-589.4053 751.191,-588.7945 752.8103,-588.1717"/>
<polygon fill="#000000" stroke="#000000" points="754.1332,-591.4125 762.1659,-584.5041 751.5783,-584.8954 754.1332,-591.4125"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.14s)">
<text text-anchor="middle" x="714.7241" y="-610.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N6 -->
<g id="edge14" class="edge">
<title>N9&#45;&gt;N6</title>
<g id="a_edge14"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.86s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M915.0905,-1279.3224C913.1344,-1225.1744 908.5233,-1097.5304 906.2759,-1035.32"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="909.7694,-1035.0741 905.9106,-1025.207 902.774,-1035.3269 909.7694,-1035.0741"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.86s)">
<text text-anchor="middle" x="926.7241" y="-1148.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.86s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.duffcopy (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1039.385,-1221 932.615,-1221 932.615,-1185 1039.385,-1185 1039.385,-1221"/>
<text text-anchor="middle" x="986" y="-1205.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.duffcopy</text>
<text text-anchor="middle" x="986" y="-1192.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(0.98%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N46 -->
<g id="edge74" class="edge">
<title>N9&#45;&gt;N46</title>
<g id="a_edge74"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.duffcopy (0.04s)">
<path fill="none" stroke="#000000" d="M933.3034,-1279.4101C943.7273,-1264.2954 956.9933,-1245.0597 967.607,-1229.6699"/>
<polygon fill="#000000" stroke="#000000" points="970.712,-1231.3325 973.5081,-1221.1132 964.9495,-1227.3583 970.712,-1231.3325"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.duffcopy (0.04s)">
<text text-anchor="middle" x="971.7241" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N6 -->
<g id="edge15" class="edge">
<title>N10&#45;&gt;N6</title>
<g id="a_edge15"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.49s)">
<path fill="none" stroke="#000000" d="M1027.3703,-1077.8034C1004.9287,-1063.5349 976.6955,-1045.5842 953.0046,-1030.5214"/>
<polygon fill="#000000" stroke="#000000" points="954.8176,-1027.5267 944.501,-1025.1148 951.0618,-1033.4338 954.8176,-1027.5267"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.49s)">
<text text-anchor="middle" x="1011.7241" y="-1048.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.49s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.typedmemmove (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1193.3516,-1028 1020.6484,-1028 1020.6484,-972 1193.3516,-972 1193.3516,-1028"/>
<text text-anchor="middle" x="1107" y="-1011.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="1107" y="-995.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.13s(3.19%)</text>
<text text-anchor="middle" x="1107" y="-979.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.21s(5.16%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N19 -->
<g id="edge55" class="edge">
<title>N10&#45;&gt;N19</title>
<g id="a_edge55"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.10s)">
<path fill="none" stroke="#000000" d="M1076.7851,-1077.8034C1081.4752,-1065.7264 1087.1897,-1051.0114 1092.3816,-1037.6425"/>
<polygon fill="#000000" stroke="#000000" points="1095.69,-1038.7915 1096.0475,-1028.2027 1089.1647,-1036.2574 1095.69,-1038.7915"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.10s)">
<text text-anchor="middle" x="1104.7241" y="-1048.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="runtime.mach_semaphore_signal (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="665.168,-50 370.832,-50 370.832,0 665.168,0 665.168,-50"/>
<text text-anchor="middle" x="518" y="-29.2" font-family="Times,serif" font-size="21.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="518" y="-8.2" font-family="Times,serif" font-size="21.00" fill="#000000">0.35s(8.60%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N8 -->
<g id="edge45" class="edge">
<title>N12&#45;&gt;N8</title>
<g id="a_edge45"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.12s)">
<path fill="none" stroke="#000000" d="M392.3591,-1380.8433C437.707,-1359.1593 490,-1328.8708 490,-1304.5 490,-1304.5 490,-1304.5 490,-769 490,-747.5606 495.9313,-724.4613 502.3341,-705.7716"/>
<polygon fill="#000000" stroke="#000000" points="505.7012,-706.7515 505.8002,-696.1571 499.1161,-704.3774 505.7012,-706.7515"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.12s)">
<text text-anchor="middle" x="506.7241" y="-1048.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.memmove (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1151.7234,-492 1022.2766,-492 1022.2766,-454 1151.7234,-454 1151.7234,-492"/>
<text text-anchor="middle" x="1087" y="-476" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="1087" y="-461" font-family="Times,serif" font-size="15.00" fill="#000000">0.10s(2.46%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N35 -->
<g id="edge95" class="edge">
<title>N12&#45;&gt;N35</title>
<g id="a_edge95"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.02s)">
<path fill="none" stroke="#000000" d="M397.3871,-1383.8183C422.6435,-1374.6428 446.3322,-1365.8193 452,-1363 698.8164,-1240.2256 806.301,-1246.7897 974,-1028 1017.4042,-971.3724 1068,-792.3486 1068,-721 1068,-721 1068,-721 1068,-566.5 1068,-544.5198 1073.1049,-520.2048 1078.0225,-501.8809"/>
<polygon fill="#000000" stroke="#000000" points="1081.4325,-502.684 1080.7787,-492.1093 1074.6953,-500.7836 1081.4325,-502.684"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.02s)">
<text text-anchor="middle" x="1033.7241" y="-942.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.getcallersp (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="388.6801,-1322.5 265.3199,-1322.5 265.3199,-1286.5 388.6801,-1286.5 388.6801,-1322.5"/>
<text text-anchor="middle" x="327" y="-1307.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.getcallersp</text>
<text text-anchor="middle" x="327" y="-1293.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.47%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N42 -->
<g id="edge71" class="edge">
<title>N12&#45;&gt;N42</title>
<g id="a_edge71"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.getcallersp (0.05s)">
<path fill="none" stroke="#000000" d="M327,-1380.9959C327,-1366.1092 327,-1347.8486 327,-1332.9024"/>
<polygon fill="#000000" stroke="#000000" points="330.5001,-1332.7006 327,-1322.7006 323.5001,-1332.7007 330.5001,-1332.7006"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.getcallersp (0.05s)">
<text text-anchor="middle" x="343.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.mapassign1 (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1828.6485,-1329.5 1699.3515,-1329.5 1699.3515,-1279.5 1828.6485,-1279.5 1828.6485,-1329.5"/>
<text text-anchor="middle" x="1764" y="-1314.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="1764" y="-1300.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.08s(1.97%)</text>
<text text-anchor="middle" x="1764" y="-1286.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.16s(3.93%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N20 -->
<g id="edge35" class="edge">
<title>N13&#45;&gt;N20</title>
<g id="a_edge35"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.16s)">
<path fill="none" stroke="#000000" d="M1893.1916,-1388.3542C1869.8087,-1373.1771 1837.6463,-1352.3015 1811.2622,-1335.1764"/>
<polygon fill="#000000" stroke="#000000" points="1812.8507,-1332.0348 1802.5571,-1329.5262 1809.0396,-1337.9064 1812.8507,-1332.0348"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.16s)">
<text text-anchor="middle" x="1865.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.assertI2T (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2088.6348,-1128 1973.3652,-1128 1973.3652,-1078 2088.6348,-1078 2088.6348,-1128"/>
<text text-anchor="middle" x="2031" y="-1112.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="2031" y="-1098.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.47%)</text>
<text text-anchor="middle" x="2031" y="-1084.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.13s(3.19%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N25 -->
<g id="edge69" class="edge">
<title>N13&#45;&gt;N25</title>
<g id="a_edge69"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.05s)">
<path fill="none" stroke="#000000" d="M1958.5069,-1388.3897C1977.6622,-1374.6612 2000.1663,-1354.7941 2012,-1331 2042.932,-1268.8048 2040.47,-1185.1869 2035.8036,-1138.438"/>
<polygon fill="#000000" stroke="#000000" points="2039.252,-1137.7735 2034.6878,-1128.2122 2032.2933,-1138.5329 2039.252,-1137.7735"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.05s)">
<text text-anchor="middle" x="2051.7241" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="main.(*machine).popValue (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2003.2848,-1322.5 1846.7152,-1322.5 1846.7152,-1286.5 2003.2848,-1286.5 2003.2848,-1322.5"/>
<text text-anchor="middle" x="1925" y="-1307.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="1925" y="-1294.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.23%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N43 -->
<g id="edge84" class="edge">
<title>N13&#45;&gt;N43</title>
<g id="a_edge84"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M1925,-1388.3542C1925,-1372.4931 1925,-1350.4082 1925,-1332.8846"/>
<polygon fill="#000000" stroke="#000000" points="1928.5001,-1332.6596 1925,-1322.6596 1921.5001,-1332.6596 1928.5001,-1332.6596"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="1941.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N25 -->
<g id="edge70" class="edge">
<title>N14&#45;&gt;N25</title>
<g id="a_edge70"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.05s)">
<path fill="none" stroke="#000000" d="M2456.1384,-1383.8221C2458.2953,-1355.2274 2457.3745,-1308.5837 2434,-1278 2351.9654,-1170.6643 2190.5481,-1128.0844 2098.8532,-1112.0345"/>
<polygon fill="#000000" stroke="#000000" points="2099.2869,-1108.5582 2088.8428,-1110.3393 2098.118,-1115.4599 2099.2869,-1108.5582"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.05s)">
<text text-anchor="middle" x="2432.7241" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.mapaccess2_faststr (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2425.194,-1331 2242.806,-1331 2242.806,-1278 2425.194,-1278 2425.194,-1331"/>
<text text-anchor="middle" x="2334" y="-1315" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="2334" y="-1300" font-family="Times,serif" font-size="15.00" fill="#000000">0.10s(2.46%)</text>
<text text-anchor="middle" x="2334" y="-1285" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.11s(2.70%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N30 -->
<g id="edge47" class="edge">
<title>N14&#45;&gt;N30</title>
<g id="a_edge47"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.11s)">
<path fill="none" stroke="#000000" d="M2424.4965,-1383.9696C2408.7548,-1370.146 2388.9971,-1352.7957 2371.9621,-1337.8365"/>
<polygon fill="#000000" stroke="#000000" points="2374.1746,-1335.1214 2364.3511,-1331.1528 2369.5557,-1340.3812 2374.1746,-1335.1214"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.11s)">
<text text-anchor="middle" x="2413.4678" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N43 -->
<g id="edge99" class="edge">
<title>N14&#45;&gt;N43</title>
<g id="a_edge99"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M2336.5992,-1383.9929C2331.6685,-1382.9739 2326.7861,-1381.9725 2322,-1381 2216.1268,-1359.487 2094.0531,-1336.1891 2013.5315,-1321.0292"/>
<polygon fill="#000000" stroke="#000000" points="2013.9071,-1317.5386 2003.4324,-1319.1295 2012.6129,-1324.4179 2013.9071,-1317.5386"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="2240.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.assertI2I (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1526.6393,-1326.5 1429.3607,-1326.5 1429.3607,-1282.5 1526.6393,-1282.5 1526.6393,-1326.5"/>
<text text-anchor="middle" x="1478" y="-1312.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="1478" y="-1300.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.74%)</text>
<text text-anchor="middle" x="1478" y="-1288.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.07s(1.72%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N39 -->
<g id="edge76" class="edge">
<title>N15&#45;&gt;N39</title>
<g id="a_edge76"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.04s)">
<path fill="none" stroke="#000000" d="M1356.3585,-1383.7806C1366.4557,-1372.2749 1379.3085,-1359.0166 1392.5518,-1349 1401.131,-1342.511 1410.7925,-1336.4739 1420.451,-1331.0712"/>
<polygon fill="#000000" stroke="#000000" points="1422.1569,-1334.1277 1429.2891,-1326.293 1418.8278,-1327.97 1422.1569,-1334.1277"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.04s)">
<text text-anchor="middle" x="1408.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.convI2I (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1631.6833,-1325 1544.3167,-1325 1544.3167,-1284 1631.6833,-1284 1631.6833,-1325"/>
<text text-anchor="middle" x="1588" y="-1312.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="1588" y="-1301.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.49%)</text>
<text text-anchor="middle" x="1588" y="-1290.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.06s(1.47%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N41 -->
<g id="edge85" class="edge">
<title>N15&#45;&gt;N41</title>
<g id="a_edge85"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<path fill="none" stroke="#000000" d="M1386.8485,-1383.9407C1399.7337,-1377.3372 1413.4705,-1370.075 1426,-1363 1436.2727,-1357.1993 1437.5929,-1353.368 1448.5518,-1349 1485.4123,-1334.308 1498.5534,-1344.1265 1536,-1331 1537.6435,-1330.4239 1539.3007,-1329.8057 1540.9623,-1329.1537"/>
<polygon fill="#000000" stroke="#000000" points="1542.635,-1332.2455 1550.4635,-1325.1066 1539.8917,-1325.8054 1542.635,-1332.2455"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<text text-anchor="middle" x="1464.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N43 -->
<g id="edge101" class="edge">
<title>N15&#45;&gt;N43</title>
<g id="a_edge101"><a xlink:title="main.executeMultiply &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M1405.6879,-1383.9679C1408.8283,-1382.9449 1411.9432,-1381.9507 1415,-1381 1444.4425,-1371.8427 1454.296,-1376.5354 1482,-1363 1491.2811,-1358.4655 1490.848,-1352.5408 1500.5518,-1349 1571.0972,-1323.2586 1764.0451,-1344.0362 1838,-1331 1846.2704,-1329.5421 1854.8597,-1327.5462 1863.2783,-1325.2986"/>
<polygon fill="#000000" stroke="#000000" points="1864.3673,-1328.6284 1873.0533,-1322.5618 1862.4799,-1321.8876 1864.3673,-1328.6284"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="1516.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="main.(*Integer).Multiply (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1383.9805,-1322.5 1288.0195,-1322.5 1288.0195,-1286.5 1383.9805,-1286.5 1383.9805,-1322.5"/>
<text text-anchor="middle" x="1336" y="-1306.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="1336" y="-1298.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(2.46%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N77 -->
<g id="edge52" class="edge">
<title>N15&#45;&gt;N77</title>
<g id="a_edge52"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.10s)">
<path fill="none" stroke="#000000" d="M1336,-1383.9696C1336,-1368.6629 1336,-1349.0321 1336,-1333.1115"/>
<polygon fill="#000000" stroke="#000000" points="1339.5001,-1332.7809 1336,-1322.781 1332.5001,-1332.781 1339.5001,-1332.7809"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.10s)">
<text text-anchor="middle" x="1352.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N8 -->
<g id="edge38" class="edge">
<title>N16&#45;&gt;N8</title>
<g id="a_edge38"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.15s)">
<path fill="none" stroke="#000000" d="M202.8556,-1383.9987C218.7135,-1364.0108 237,-1334.4653 237,-1304.5 237,-1304.5 237,-1304.5 237,-769 237,-726.657 351.4233,-697.2268 434.2377,-681.4716"/>
<polygon fill="#000000" stroke="#000000" points="434.9823,-684.8932 444.1706,-679.6181 433.6982,-678.0119 434.9823,-684.8932"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.15s)">
<text text-anchor="middle" x="253.7241" y="-1048.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N42 -->
<g id="edge103" class="edge">
<title>N16&#45;&gt;N42</title>
<g id="a_edge103"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallersp (0.01s)">
<path fill="none" stroke="#000000" d="M217.6078,-1383.9767C227.5484,-1377.249 238.2286,-1369.9182 248,-1363 263.6023,-1351.9535 280.676,-1339.3737 294.9462,-1328.7173"/>
<polygon fill="#000000" stroke="#000000" points="297.0861,-1331.4874 302.992,-1322.6914 292.8899,-1325.8846 297.0861,-1331.4874"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallersp (0.01s)">
<text text-anchor="middle" x="282.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N39 -->
<g id="edge86" class="edge">
<title>N18&#45;&gt;N39</title>
<g id="a_edge86"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.03s)">
<path fill="none" stroke="#000000" d="M1527.6001,-1383.8501C1537.5714,-1373.6162 1544.1965,-1361.3105 1538,-1349 1535.0918,-1343.2224 1531.0394,-1338.0069 1526.399,-1333.3539"/>
<polygon fill="#000000" stroke="#000000" points="1528.5,-1330.5384 1518.7029,-1326.505 1523.8465,-1335.7676 1528.5,-1330.5384"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.03s)">
<text text-anchor="middle" x="1556.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N41 -->
<g id="edge87" class="edge">
<title>N18&#45;&gt;N41</title>
<g id="a_edge87"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.03s)">
<path fill="none" stroke="#000000" d="M1554.3208,-1383.9834C1562.9835,-1378.2085 1570.9673,-1371.2686 1577,-1363 1582.8149,-1355.0298 1585.8226,-1344.8684 1587.3081,-1335.2586"/>
<polygon fill="#000000" stroke="#000000" points="1590.803,-1335.492 1588.3834,-1325.1771 1583.8425,-1334.7495 1590.803,-1335.492"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.03s)">
<text text-anchor="middle" x="1599.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N35 -->
<g id="edge68" class="edge">
<title>N19&#45;&gt;N35</title>
<g id="a_edge68"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.06s)">
<path fill="none" stroke="#000000" d="M1106.6276,-971.8671C1106.3433,-947.9606 1106,-912.7303 1106,-882 1106,-882 1106,-882 1106,-566.5 1106,-544.5198 1100.8951,-520.2048 1095.9775,-501.8809"/>
<polygon fill="#000000" stroke="#000000" points="1099.3047,-500.7836 1093.2213,-492.1093 1092.5675,-502.684 1099.3047,-500.7836"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.06s)">
<text text-anchor="middle" x="1122.7241" y="-716.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N19 -->
<g id="edge79" class="edge">
<title>N20&#45;&gt;N19</title>
<g id="a_edge79"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.04s)">
<path fill="none" stroke="#000000" d="M1749.318,-1279.2745C1727.544,-1244.1076 1683.3542,-1180.7634 1629,-1146 1496.3895,-1061.1859 1314.204,-1024.8742 1203.8516,-1009.8923"/>
<polygon fill="#000000" stroke="#000000" points="1204.1035,-1006.3951 1193.7303,-1008.5506 1203.1836,-1013.3344 1204.1035,-1006.3951"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.04s)">
<text text-anchor="middle" x="1664.7241" y="-1148.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N35 -->
<g id="edge94" class="edge">
<title>N21&#45;&gt;N35</title>
<g id="a_edge94"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<path fill="none" stroke="#000000" d="M702.3973,-542.9194C720.9015,-531.3983 744.5873,-518.4446 767.5518,-511 811.5595,-496.7335 932.3865,-485.0181 1012.1798,-478.5264"/>
<polygon fill="#000000" stroke="#000000" points="1012.4963,-482.0124 1022.1837,-477.7224 1011.9354,-475.0349 1012.4963,-482.0124"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<text text-anchor="middle" x="784.7241" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.newdefer (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="729.2013,-492 606.7987,-492 606.7987,-454 729.2013,-454 729.2013,-492"/>
<text text-anchor="middle" x="668" y="-476" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="668" y="-461" font-family="Times,serif" font-size="15.00" fill="#000000">0.09s(2.21%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N37 -->
<g id="edge62" class="edge">
<title>N21&#45;&gt;N37</title>
<g id="a_edge62"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.09s)">
<path fill="none" stroke="#000000" d="M668,-542.906C668,-530.6492 668,-515.5515 668,-502.5271"/>
<polygon fill="#000000" stroke="#000000" points="671.5001,-502.182 668,-492.1821 664.5001,-502.1821 671.5001,-502.182"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.09s)">
<text text-anchor="middle" x="684.7241" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.schedule (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="456.7699,-1018 383.2301,-1018 383.2301,-982 456.7699,-982 456.7699,-1018"/>
<text text-anchor="middle" x="420" y="-1001.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="420" y="-993.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(3.69%)</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.findrunnable (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="461.8209,-900 378.1791,-900 378.1791,-864 461.8209,-864 461.8209,-900"/>
<text text-anchor="middle" x="420" y="-883.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="420" y="-875.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(2.46%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N79 -->
<g id="edge60" class="edge">
<title>N22&#45;&gt;N79</title>
<g id="a_edge60"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.10s)">
<path fill="none" stroke="#000000" d="M420,-981.8211C420,-962.7094 420,-932.3891 420,-910.1751"/>
<polygon fill="#000000" stroke="#000000" points="423.5001,-910.0059 420,-900.0059 416.5001,-910.006 423.5001,-910.0059"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.10s)">
<text text-anchor="middle" x="436.7241" y="-942.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.semasleep1 (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="844.7582,-491 765.2418,-491 765.2418,-455 844.7582,-455 844.7582,-491"/>
<text text-anchor="middle" x="805" y="-474.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="805" y="-466.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(3.44%)</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.mach_semaphore_wait (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="907.1868,-403 702.8132,-403 702.8132,-365 907.1868,-365 907.1868,-403"/>
<text text-anchor="middle" x="805" y="-387" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="805" y="-372" font-family="Times,serif" font-size="15.00" fill="#000000">0.09s(2.21%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N36 -->
<g id="edge63" class="edge">
<title>N24&#45;&gt;N36</title>
<g id="a_edge63"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.09s)">
<path fill="none" stroke="#000000" d="M805,-454.9895C805,-443.0087 805,-427.0001 805,-413.2178"/>
<polygon fill="#000000" stroke="#000000" points="808.5001,-413.2158 805,-403.2158 801.5001,-413.2158 808.5001,-413.2158"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.09s)">
<text text-anchor="middle" x="821.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.mach_semaphore_timedwait (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1134.6338,-402 925.3662,-402 925.3662,-366 1134.6338,-366 1134.6338,-402"/>
<text text-anchor="middle" x="1030" y="-386.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_timedwait</text>
<text text-anchor="middle" x="1030" y="-373.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.23%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N45 -->
<g id="edge73" class="edge">
<title>N24&#45;&gt;N45</title>
<g id="a_edge73"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_timedwait (0.05s)">
<path fill="none" stroke="#000000" d="M844.9662,-457.1911C881.0911,-442.9018 934.6107,-421.7318 974.8101,-405.8307"/>
<polygon fill="#000000" stroke="#000000" points="976.1942,-409.0471 984.2057,-402.1142 973.6193,-402.5379 976.1942,-409.0471"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_timedwait (0.05s)">
<text text-anchor="middle" x="946.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N19 -->
<g id="edge67" class="edge">
<title>N25&#45;&gt;N19</title>
<g id="a_edge67"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.07s)">
<path fill="none" stroke="#000000" d="M1973.1766,-1092.6713C1901.1863,-1080.118 1774.3561,-1059.0057 1665,-1046 1503.7718,-1026.8251 1315.3817,-1013.0891 1203.9151,-1005.8577"/>
<polygon fill="#000000" stroke="#000000" points="1203.9082,-1002.3501 1193.7037,-1005.1995 1203.4579,-1009.3356 1203.9082,-1002.3501"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.07s)">
<text text-anchor="middle" x="1781.7241" y="-1048.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime._System (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="369.7699,-787 296.2301,-787 296.2301,-751 369.7699,-751 369.7699,-787"/>
<text text-anchor="middle" x="333" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="333" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(2.95%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N8 -->
<g id="edge44" class="edge">
<title>N26&#45;&gt;N8</title>
<g id="a_edge44"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.12s)">
<path fill="none" stroke="#000000" d="M350.9008,-750.8069C363.1869,-739.0971 380.3287,-724.2129 397.5518,-714 409.1717,-707.1096 422.007,-700.9115 434.8389,-695.4621"/>
<polygon fill="#000000" stroke="#000000" points="436.247,-698.6675 444.1645,-691.6273 433.5848,-692.1935 436.247,-698.6675"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.12s)">
<text text-anchor="middle" x="414.7241" y="-716.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.freedefer (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="292.9853,-493 165.0147,-493 165.0147,-453 292.9853,-453 292.9853,-493"/>
<text text-anchor="middle" x="229" y="-476.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="229" y="-460.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.11s(2.70%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N29 -->
<g id="edge49" class="edge">
<title>N27&#45;&gt;N29</title>
<g id="a_edge49"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.11s)">
<path fill="none" stroke="#000000" d="M229,-545.7493C229,-533.2306 229,-517.0649 229,-503.1527"/>
<polygon fill="#000000" stroke="#000000" points="232.5001,-503.0509 229,-493.0509 225.5001,-503.051 232.5001,-503.0509"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.11s)">
<text text-anchor="middle" x="245.4678" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.mcall (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="456.7699,-1221 383.2301,-1221 383.2301,-1185 456.7699,-1185 456.7699,-1221"/>
<text text-anchor="middle" x="420" y="-1204.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="420" y="-1196.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(2.95%)</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.park_m (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="456.7699,-1121 383.2301,-1121 383.2301,-1085 456.7699,-1085 456.7699,-1121"/>
<text text-anchor="middle" x="420" y="-1104.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.park_m</text>
<text text-anchor="middle" x="420" y="-1096.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(2.46%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N80 -->
<g id="edge58" class="edge">
<title>N28&#45;&gt;N80</title>
<g id="a_edge58"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.10s)">
<path fill="none" stroke="#000000" d="M420,-1184.6585C420,-1169.7164 420,-1148.3665 420,-1131.2446"/>
<polygon fill="#000000" stroke="#000000" points="423.5001,-1131.2252 420,-1121.2253 416.5001,-1131.2253 423.5001,-1131.2252"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.10s)">
<text text-anchor="middle" x="436.7241" y="-1148.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N10 -->
<g id="edge61" class="edge">
<title>N31&#45;&gt;N10</title>
<g id="a_edge61"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.09s)">
<path fill="none" stroke="#000000" d="M1121.0801,-1388.2558C1116.6321,-1343.4597 1104.1889,-1234.5664 1081,-1146 1080.3152,-1143.3845 1079.5613,-1140.6945 1078.7693,-1137.9975"/>
<polygon fill="#000000" stroke="#000000" points="1082.0773,-1136.847 1075.7895,-1128.3198 1075.3872,-1138.907 1082.0773,-1136.847"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.09s)">
<text text-anchor="middle" x="1120.7241" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="main.Integer.Multiply (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1392.0463,-1223.5 1279.9537,-1223.5 1279.9537,-1182.5 1392.0463,-1182.5 1392.0463,-1223.5"/>
<text text-anchor="middle" x="1336" y="-1210.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="1336" y="-1199.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.25%)</text>
<text text-anchor="middle" x="1336" y="-1188.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.10s(2.46%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N10 -->
<g id="edge66" class="edge">
<title>N32&#45;&gt;N10</title>
<g id="a_edge66"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.07s)">
<path fill="none" stroke="#000000" d="M1310.6304,-1182.4179C1294.4351,-1170.2142 1272.5083,-1155.3519 1251,-1146 1213.7388,-1129.7987 1169.463,-1119.209 1133.6819,-1112.5933"/>
<polygon fill="#000000" stroke="#000000" points="1134.2878,-1109.1462 1123.8279,-1110.8314 1133.0557,-1116.0369 1134.2878,-1109.1462"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.07s)">
<text text-anchor="middle" x="1291.7241" y="-1148.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N25 -->
<g id="edge100" class="edge">
<title>N32&#45;&gt;N25</title>
<g id="a_edge100"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.01s)">
<path fill="none" stroke="#000000" d="M1392.0901,-1188.6772C1444.4147,-1175.7949 1524.8117,-1157.2204 1595.5518,-1146 1724.7867,-1125.5015 1877.2474,-1113.1207 1963.1722,-1107.2137"/>
<polygon fill="#000000" stroke="#000000" points="1963.5749,-1110.6945 1973.3149,-1106.5253 1963.1009,-1103.7106 1963.5749,-1110.6945"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.01s)">
<text text-anchor="middle" x="1611.7241" y="-1148.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.gcFlushBgCredit (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="363.1324,-1987 234.8676,-1987 234.8676,-1946 363.1324,-1946 363.1324,-1987"/>
<text text-anchor="middle" x="299" y="-1974.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="299" y="-1963.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.25%)</text>
<text text-anchor="middle" x="299" y="-1952.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.04s(0.98%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N47 -->
<g id="edge93" class="edge">
<title>N33&#45;&gt;N47</title>
<g id="a_edge93"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcFlushBgCredit (0.03s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M560.525,-2040.6826C509.7398,-2026.2771 430.8656,-2003.9042 373.0102,-1987.4933"/>
<polygon fill="#000000" stroke="#000000" points="373.7653,-1984.0694 363.1897,-1984.7077 371.855,-1990.8038 373.7653,-1984.0694"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcFlushBgCredit (0.03s)">
<text text-anchor="middle" x="499.7241" y="-2007.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.memclr (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="431.2185,-138 318.7815,-138 318.7815,-100 431.2185,-100 431.2185,-138"/>
<text text-anchor="middle" x="375" y="-122" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="375" y="-107" font-family="Times,serif" font-size="15.00" fill="#000000">0.10s(2.46%)</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.getitab (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1598.0974,-1228 1491.9026,-1228 1491.9026,-1178 1598.0974,-1178 1598.0974,-1228"/>
<text text-anchor="middle" x="1545" y="-1212.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="1545" y="-1198.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.47%)</text>
<text text-anchor="middle" x="1545" y="-1184.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.08s(1.97%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N38 -->
<g id="edge77" class="edge">
<title>N39&#45;&gt;N38</title>
<g id="a_edge77"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.04s)">
<path fill="none" stroke="#000000" d="M1492.538,-1282.476C1501.3533,-1269.1215 1512.7805,-1251.8101 1522.7186,-1236.7546"/>
<polygon fill="#000000" stroke="#000000" points="1525.7789,-1238.4718 1528.3669,-1228.1979 1519.9369,-1234.6154 1525.7789,-1238.4718"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.04s)">
<text text-anchor="middle" x="1531.7241" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N38 -->
<g id="edge78" class="edge">
<title>N41&#45;&gt;N38</title>
<g id="a_edge78"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.04s)">
<path fill="none" stroke="#000000" d="M1579.2983,-1283.96C1573.6486,-1270.6241 1566.1452,-1252.9125 1559.5973,-1237.4564"/>
<polygon fill="#000000" stroke="#000000" points="1562.7925,-1236.0261 1555.6689,-1228.1836 1556.3471,-1238.7567 1562.7925,-1236.0261"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.04s)">
<text text-anchor="middle" x="1585.7241" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.goschedImpl (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="209.2073,-1121 124.7927,-1121 124.7927,-1085 209.2073,-1085 209.2073,-1121"/>
<text text-anchor="middle" x="167" y="-1104.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="167" y="-1096.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(1.23%)</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N22 -->
<g id="edge72" class="edge">
<title>N44&#45;&gt;N22</title>
<g id="a_edge72"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.05s)">
<path fill="none" stroke="#000000" d="M209.2111,-1086.1247C228.9122,-1078.226 252.6708,-1068.6683 274,-1060 307.4155,-1046.4197 345.0646,-1030.9432 373.7606,-1019.1102"/>
<polygon fill="#000000" stroke="#000000" points="375.2206,-1022.2941 383.1301,-1015.245 372.551,-1015.8231 375.2206,-1022.2941"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.05s)">
<text text-anchor="middle" x="323.7241" y="-1048.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.lock (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="184.6833,-315 97.3167,-315 97.3167,-274 184.6833,-274 184.6833,-315"/>
<text text-anchor="middle" x="141" y="-302.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="141" y="-291.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.25%)</text>
<text text-anchor="middle" x="141" y="-280.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.03s(0.74%)</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N52 -->
<g id="edge96" class="edge">
<title>N47&#45;&gt;N52</title>
<g id="a_edge96"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.02s)">
<path fill="none" stroke="#000000" d="M234.857,-1960.5307C147.001,-1950.5486 0,-1926.5869 0,-1878 0,-1878 0,-1878 0,-384 0,-340.8751 47.5963,-317.6496 87.4819,-305.7577"/>
<polygon fill="#000000" stroke="#000000" points="88.4769,-309.1137 97.1596,-303.0425 86.5859,-302.374 88.4769,-309.1137"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.02s)">
<text text-anchor="middle" x="16.7241" y="-1148.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.osyield (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="177.7699,-224 104.2301,-224 104.2301,-188 177.7699,-188 177.7699,-224"/>
<text text-anchor="middle" x="141" y="-207.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="141" y="-199.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(0.98%)</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.usleep (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="187.3956,-137 94.6044,-137 94.6044,-101 187.3956,-101 187.3956,-137"/>
<text text-anchor="middle" x="141" y="-121.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="141" y="-108.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(0.98%)</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N49 -->
<g id="edge80" class="edge">
<title>N48&#45;&gt;N49</title>
<g id="a_edge80"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.04s)">
<path fill="none" stroke="#000000" d="M141,-187.9735C141,-176.1918 141,-160.5607 141,-147.1581"/>
<polygon fill="#000000" stroke="#000000" points="144.5001,-147.0033 141,-137.0034 137.5001,-147.0034 144.5001,-147.0033"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.04s)">
<text text-anchor="middle" x="157.7241" y="-158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.gopreempt_m (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="161.817,-1221 74.183,-1221 74.183,-1185 161.817,-1185 161.817,-1221"/>
<text text-anchor="middle" x="118" y="-1204.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="118" y="-1196.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.74%)</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N44 -->
<g id="edge88" class="edge">
<title>N51&#45;&gt;N44</title>
<g id="a_edge88"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.03s)">
<path fill="none" stroke="#000000" d="M126.9874,-1184.6585C134.4471,-1169.4345 145.1663,-1147.5585 153.6328,-1130.28"/>
<polygon fill="#000000" stroke="#000000" points="156.8124,-1131.7452 158.0696,-1121.2253 150.5264,-1128.6651 156.8124,-1131.7452"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.03s)">
<text text-anchor="middle" x="162.7241" y="-1148.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N48 -->
<g id="edge97" class="edge">
<title>N52&#45;&gt;N48</title>
<g id="a_edge97"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.02s)">
<path fill="none" stroke="#000000" d="M141,-273.9739C141,-262.1658 141,-247.1577 141,-234.2491"/>
<polygon fill="#000000" stroke="#000000" points="144.5001,-234.0159 141,-224.016 137.5001,-234.016 144.5001,-234.0159"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.02s)">
<text text-anchor="middle" x="157.7241" y="-244.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.mProf_Malloc (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1039.5441,-686 950.4559,-686 950.4559,-650 1039.5441,-650 1039.5441,-686"/>
<text text-anchor="middle" x="995" y="-669.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mProf_Malloc</text>
<text text-anchor="middle" x="995" y="-661.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.74%)</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.morestack (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="103.7582,-1427 28.2418,-1427 28.2418,-1391 103.7582,-1391 103.7582,-1427"/>
<text text-anchor="middle" x="66" y="-1410.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="66" y="-1402.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.74%)</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.newstack (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="127.7699,-1322.5 54.2301,-1322.5 54.2301,-1286.5 127.7699,-1286.5 127.7699,-1322.5"/>
<text text-anchor="middle" x="91" y="-1306.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="91" y="-1298.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.74%)</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N55 -->
<g id="edge90" class="edge">
<title>N54&#45;&gt;N55</title>
<g id="a_edge90"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.03s)">
<path fill="none" stroke="#000000" d="M70.3547,-1390.7975C74.1849,-1374.7873 79.8223,-1351.2229 84.2388,-1332.7616"/>
<polygon fill="#000000" stroke="#000000" points="87.6885,-1333.3845 86.6114,-1322.8445 80.8806,-1331.7557 87.6885,-1333.3845"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.03s)">
<text text-anchor="middle" x="96.7241" y="-1351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N51 -->
<g id="edge91" class="edge">
<title>N55&#45;&gt;N51</title>
<g id="a_edge91"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.03s)">
<path fill="none" stroke="#000000" d="M95.8271,-1286.3538C99.9099,-1271.0053 105.8282,-1248.757 110.5236,-1231.1059"/>
<polygon fill="#000000" stroke="#000000" points="113.9353,-1231.895 113.1237,-1221.3313 107.1705,-1230.0954 113.9353,-1231.895"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.03s)">
<text text-anchor="middle" x="123.7241" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N53 -->
<g id="edge92" class="edge">
<title>N56&#45;&gt;N53</title>
<g id="a_edge92"><a xlink:title="runtime.profilealloc &#45;&gt; runtime.mProf_Malloc (0.03s)">
<path fill="none" stroke="#000000" d="M999.1061,-750.9432C998.3571,-735.813 997.2745,-713.9448 996.409,-696.461"/>
<polygon fill="#000000" stroke="#000000" points="999.8933,-696.0557 995.903,-686.241 992.9018,-696.4018 999.8933,-696.0557"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.profilealloc &#45;&gt; runtime.mProf_Malloc (0.03s)">
<text text-anchor="middle" x="1013.7241" y="-716.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run (3.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="787.7502,-1896 648.2498,-1896 648.2498,-1860 787.7502,-1860 787.7502,-1896"/>
<text text-anchor="middle" x="718" y="-1879.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.(*App).Run</text>
<text text-anchor="middle" x="718" y="-1871.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.70s(90.91%)</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction (3.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="791.1837,-1810 644.8163,-1810 644.8163,-1774 791.1837,-1774 791.1837,-1810"/>
<text text-anchor="middle" x="718" y="-1793.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.HandleAction</text>
<text text-anchor="middle" x="718" y="-1785.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.70s(90.91%)</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N58 -->
<g id="edge1" class="edge">
<title>N57&#45;&gt;N58</title>
<g id="a_edge1"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (3.70s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M718,-1859.7616C718,-1848.3597 718,-1833.4342 718,-1820.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="722.3751,-1820.2121 718,-1810.2121 713.6251,-1820.2121 722.3751,-1820.2121"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (3.70s)">
<text text-anchor="middle" x="734.7241" y="-1830.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.70s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="main.handleFlags (3.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="756.7699,-1724 679.2301,-1724 679.2301,-1688 756.7699,-1688 756.7699,-1724"/>
<text text-anchor="middle" x="718" y="-1707.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.handleFlags</text>
<text text-anchor="middle" x="718" y="-1699.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.70s(90.91%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N60 -->
<g id="edge2" class="edge">
<title>N58&#45;&gt;N60</title>
<g id="a_edge2"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (3.70s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M718,-1773.7616C718,-1762.3597 718,-1747.4342 718,-1734.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="722.3751,-1734.2121 718,-1724.2121 713.6251,-1734.2121 722.3751,-1734.2121"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (3.70s)">
<text text-anchor="middle" x="734.7241" y="-1744.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.70s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="main.(*machine).executeString (3.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="776.407,-1638 659.593,-1638 659.593,-1602 776.407,-1602 776.407,-1638"/>
<text text-anchor="middle" x="718" y="-1621.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeString</text>
<text text-anchor="middle" x="718" y="-1613.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.70s(90.91%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N2 -->
<g id="edge3" class="edge">
<title>N59&#45;&gt;N2</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (3.70s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M718,-1601.5668C718,-1590.5486 718,-1576.0634 718,-1562.3335"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="722.3751,-1562.0513 718,-1552.0514 713.6251,-1562.0514 722.3751,-1562.0513"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (3.70s)">
<text text-anchor="middle" x="734.7241" y="-1572.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.70s</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N59 -->
<g id="edge4" class="edge">
<title>N60&#45;&gt;N59</title>
<g id="a_edge4"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (3.70s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M718,-1687.7616C718,-1676.3597 718,-1661.4342 718,-1648.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="722.3751,-1648.2121 718,-1638.2121 713.6251,-1648.2121 722.3751,-1648.2121"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (3.70s)">
<text text-anchor="middle" x="734.7241" y="-1658.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.70s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="main.main (3.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="756.7699,-1984.5 679.2301,-1984.5 679.2301,-1948.5 756.7699,-1948.5 756.7699,-1984.5"/>
<text text-anchor="middle" x="718" y="-1968.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.main</text>
<text text-anchor="middle" x="718" y="-1960.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.70s(90.91%)</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N57 -->
<g id="edge5" class="edge">
<title>N61&#45;&gt;N57</title>
<g id="a_edge5"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (3.70s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M718,-1948.1627C718,-1936.0979 718,-1920.065 718,-1906.3712"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="722.3751,-1906.0109 718,-1896.011 713.6251,-1906.011 722.3751,-1906.0109"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (3.70s)">
<text text-anchor="middle" x="734.7241" y="-1916.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.70s</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N61 -->
<g id="edge7" class="edge">
<title>N62&#45;&gt;N61</title>
<g id="a_edge7"><a xlink:title="runtime.main &#45;&gt; main.main (3.70s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M718,-2036.6627C718,-2024.5979 718,-2008.565 718,-1994.8712"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="722.3751,-1994.5109 718,-1984.511 713.6251,-1994.511 722.3751,-1994.5109"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="runtime.main &#45;&gt; main.main (3.70s)">
<text text-anchor="middle" x="734.7241" y="-2007.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.70s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.mach_semrelease (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="567.7973,-137 468.2027,-137 468.2027,-101 567.7973,-101 567.7973,-137"/>
<text text-anchor="middle" x="518" y="-120.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mach_semrelease</text>
<text text-anchor="middle" x="518" y="-112.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.35s(8.60%)</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N11 -->
<g id="edge17" class="edge">
<title>N63&#45;&gt;N11</title>
<g id="a_edge17"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.35s)">
<path fill="none" stroke="#000000" d="M518,-100.8759C518,-89.3972 518,-74.1669 518,-60.365"/>
<polygon fill="#000000" stroke="#000000" points="521.5001,-60.1748 518,-50.1748 514.5001,-60.1749 521.5001,-60.1748"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.35s)">
<text text-anchor="middle" x="534.7241" y="-70.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.notewakeup (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="558.5365,-312.5 477.4635,-312.5 477.4635,-276.5 558.5365,-276.5 558.5365,-312.5"/>
<text text-anchor="middle" x="518" y="-296.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notewakeup</text>
<text text-anchor="middle" x="518" y="-288.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.35s(8.60%)</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.semawakeup (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="560.1995,-224 475.8005,-224 475.8005,-188 560.1995,-188 560.1995,-224"/>
<text text-anchor="middle" x="518" y="-207.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semawakeup</text>
<text text-anchor="middle" x="518" y="-199.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.35s(8.60%)</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N65 -->
<g id="edge18" class="edge">
<title>N64&#45;&gt;N65</title>
<g id="a_edge18"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (0.35s)">
<path fill="none" stroke="#000000" d="M518,-276.1627C518,-264.0979 518,-248.065 518,-234.3712"/>
<polygon fill="#000000" stroke="#000000" points="521.5001,-234.0109 518,-224.011 514.5001,-234.011 521.5001,-234.0109"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (0.35s)">
<text text-anchor="middle" x="534.7241" y="-244.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N63 -->
<g id="edge19" class="edge">
<title>N65&#45;&gt;N63</title>
<g id="a_edge19"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (0.35s)">
<path fill="none" stroke="#000000" d="M518,-187.9735C518,-176.1918 518,-160.5607 518,-147.1581"/>
<polygon fill="#000000" stroke="#000000" points="521.5001,-147.0033 518,-137.0034 514.5001,-147.0034 521.5001,-147.0033"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (0.35s)">
<text text-anchor="middle" x="534.7241" y="-158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.startm (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="554.9781,-402 481.0219,-402 481.0219,-366 554.9781,-366 554.9781,-402"/>
<text text-anchor="middle" x="518" y="-385.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.startm</text>
<text text-anchor="middle" x="518" y="-377.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.33s(8.11%)</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N64 -->
<g id="edge20" class="edge">
<title>N66&#45;&gt;N64</title>
<g id="a_edge20"><a xlink:title="runtime.startm &#45;&gt; runtime.notewakeup (0.33s)">
<path fill="none" stroke="#000000" d="M518,-365.8883C518,-353.5146 518,-336.8686 518,-322.7632"/>
<polygon fill="#000000" stroke="#000000" points="521.5001,-322.5847 518,-312.5847 514.5001,-322.5848 521.5001,-322.5847"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.startm &#45;&gt; runtime.notewakeup (0.33s)">
<text text-anchor="middle" x="534.7241" y="-335.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.wakep (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="554.9781,-491 481.0219,-491 481.0219,-455 554.9781,-455 554.9781,-491"/>
<text text-anchor="middle" x="518" y="-474.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.wakep</text>
<text text-anchor="middle" x="518" y="-466.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.33s(8.11%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N66 -->
<g id="edge21" class="edge">
<title>N67&#45;&gt;N66</title>
<g id="a_edge21"><a xlink:title="runtime.wakep &#45;&gt; runtime.startm (0.33s)">
<path fill="none" stroke="#000000" d="M518,-454.9895C518,-442.7658 518,-426.3495 518,-412.3824"/>
<polygon fill="#000000" stroke="#000000" points="521.5001,-412.2891 518,-402.2892 514.5001,-412.2892 521.5001,-412.2891"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="runtime.wakep &#45;&gt; runtime.startm (0.33s)">
<text text-anchor="middle" x="534.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N8 -->
<g id="edge22" class="edge">
<title>N68&#45;&gt;N8</title>
<g id="a_edge22"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.32s)">
<path fill="none" stroke="#000000" d="M871.235,-750.9872C867.173,-749.1591 863.0343,-747.4465 859,-746 773.591,-715.3778 671.7299,-693.9318 601.7093,-681.3812"/>
<polygon fill="#000000" stroke="#000000" points="602.0723,-677.8911 591.6152,-679.594 600.8518,-684.7839 602.0723,-677.8911"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.32s)">
<text text-anchor="middle" x="812.7241" y="-716.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N67 -->
<g id="edge24" class="edge">
<title>N69&#45;&gt;N67</title>
<g id="a_edge24"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.wakep (0.32s)">
<path fill="none" stroke="#000000" d="M518,-548.4723C518,-535.1062 518,-516.6259 518,-501.2979"/>
<polygon fill="#000000" stroke="#000000" points="521.5001,-501.2914 518,-491.2914 514.5001,-501.2915 521.5001,-501.2914"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.wakep (0.32s)">
<text text-anchor="middle" x="534.7241" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N8 -->
<g id="edge33" class="edge">
<title>N70&#45;&gt;N8</title>
<g id="a_edge33"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.17s)">
<path fill="none" stroke="#000000" d="M561.5247,-750.9432C554.8542,-738.2316 545.688,-720.7639 537.4872,-705.136"/>
<polygon fill="#000000" stroke="#000000" points="540.5424,-703.4256 532.7965,-696.1971 534.3439,-706.6783 540.5424,-703.4256"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.17s)">
<text text-anchor="middle" x="566.7241" y="-716.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.(*mcache).refill (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="421.7464,-491 328.2536,-491 328.2536,-455 421.7464,-455 421.7464,-491"/>
<text text-anchor="middle" x="375" y="-474.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="375" y="-466.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(3.69%)</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N72 -->
<g id="edge36" class="edge">
<title>N71&#45;&gt;N72</title>
<g id="a_edge36"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.15s)">
<path fill="none" stroke="#000000" d="M375,-548.4723C375,-535.1062 375,-516.6259 375,-501.2979"/>
<polygon fill="#000000" stroke="#000000" points="378.5001,-501.2914 375,-491.2914 371.5001,-501.2915 378.5001,-501.2914"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.15s)">
<text text-anchor="middle" x="391.7241" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.(*mcentral).cacheSpan (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="433.3991,-402 316.6009,-402 316.6009,-366 433.3991,-366 433.3991,-402"/>
<text text-anchor="middle" x="375" y="-385.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="375" y="-377.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(3.69%)</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N73 -->
<g id="edge37" class="edge">
<title>N72&#45;&gt;N73</title>
<g id="a_edge37"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.15s)">
<path fill="none" stroke="#000000" d="M375,-454.9895C375,-442.7658 375,-426.3495 375,-412.3824"/>
<polygon fill="#000000" stroke="#000000" points="378.5001,-412.2891 375,-402.2892 371.5001,-412.2892 378.5001,-412.2891"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.15s)">
<text text-anchor="middle" x="391.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N52 -->
<g id="edge102" class="edge">
<title>N73&#45;&gt;N52</title>
<g id="a_edge102"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.01s)">
<path fill="none" stroke="#000000" d="M327.9281,-365.996C289.2553,-351.2045 234.4824,-330.255 194.2205,-314.8557"/>
<polygon fill="#000000" stroke="#000000" points="195.4234,-311.5686 184.8329,-311.2651 192.9226,-318.1066 195.4234,-311.5686"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.01s)">
<text text-anchor="middle" x="289.7241" y="-335.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.(*mcentral).grow (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="424.1374,-312.5 325.8626,-312.5 325.8626,-276.5 424.1374,-276.5 424.1374,-312.5"/>
<text text-anchor="middle" x="375" y="-296.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="375" y="-288.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(2.70%)</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N75 -->
<g id="edge48" class="edge">
<title>N73&#45;&gt;N75</title>
<g id="a_edge48"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.11s)">
<path fill="none" stroke="#000000" d="M375,-365.8883C375,-353.5146 375,-336.8686 375,-322.7632"/>
<polygon fill="#000000" stroke="#000000" points="378.5001,-322.5847 375,-312.5847 371.5001,-322.5848 378.5001,-322.5847"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.11s)">
<text text-anchor="middle" x="391.4678" y="-335.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N24 -->
<g id="edge42" class="edge">
<title>N74&#45;&gt;N24</title>
<g id="a_edge42"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.14s)">
<path fill="none" stroke="#000000" d="M805,-548.4723C805,-535.1062 805,-516.6259 805,-501.2979"/>
<polygon fill="#000000" stroke="#000000" points="808.5001,-501.2914 805,-491.2914 801.5001,-501.2915 808.5001,-501.2914"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.14s)">
<text text-anchor="middle" x="821.7241" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.(*mheap).alloc (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="420.5821,-224 329.4179,-224 329.4179,-188 420.5821,-188 420.5821,-224"/>
<text text-anchor="middle" x="375" y="-207.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="375" y="-199.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(2.46%)</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N78 -->
<g id="edge53" class="edge">
<title>N75&#45;&gt;N78</title>
<g id="a_edge53"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.10s)">
<path fill="none" stroke="#000000" d="M375,-276.1627C375,-264.0979 375,-248.065 375,-234.3712"/>
<polygon fill="#000000" stroke="#000000" points="378.5001,-234.0109 375,-224.011 371.5001,-234.011 378.5001,-234.0109"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.10s)">
<text text-anchor="middle" x="391.7241" y="-244.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.stopm (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="461.9781,-787 388.0219,-787 388.0219,-751 461.9781,-751 461.9781,-787"/>
<text text-anchor="middle" x="425" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="425" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(2.70%)</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N8 -->
<g id="edge64" class="edge">
<title>N76&#45;&gt;N8</title>
<g id="a_edge64"><a xlink:title="runtime.stopm ... runtime.systemstack (0.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M427.453,-750.8838C429.7669,-739.3519 434.1906,-724.6387 442.5518,-714 445.7289,-709.9574 449.3674,-706.1848 453.2919,-702.681"/>
<polygon fill="#000000" stroke="#000000" points="455.6096,-705.3071 461.1454,-696.2735 451.1844,-699.8832 455.6096,-705.3071"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.stopm ... runtime.systemstack (0.09s)">
<text text-anchor="middle" x="459.7241" y="-716.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N32 -->
<g id="edge50" class="edge">
<title>N77&#45;&gt;N32</title>
<g id="a_edge50"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.10s)">
<path fill="none" stroke="#000000" d="M1336,-1286.3538C1336,-1271.8098 1336,-1251.0704 1336,-1233.9178"/>
<polygon fill="#000000" stroke="#000000" points="1339.5001,-1233.7888 1336,-1223.7888 1332.5001,-1233.7888 1339.5001,-1233.7888"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.10s)">
<text text-anchor="middle" x="1352.7241" y="-1248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N34 -->
<g id="edge54" class="edge">
<title>N78&#45;&gt;N34</title>
<g id="a_edge54"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.10s)">
<path fill="none" stroke="#000000" d="M375,-187.9735C375,-176.506 375,-161.3916 375,-148.2349"/>
<polygon fill="#000000" stroke="#000000" points="378.5001,-148.2103 375,-138.2103 371.5001,-148.2104 378.5001,-148.2103"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.10s)">
<text text-anchor="middle" x="391.7241" y="-158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N76 -->
<g id="edge56" class="edge">
<title>N79&#45;&gt;N76</title>
<g id="a_edge56"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.10s)">
<path fill="none" stroke="#000000" d="M420.8033,-863.8446C421.5979,-845.8877 422.8254,-818.1466 423.7479,-797.2969"/>
<polygon fill="#000000" stroke="#000000" points="427.2531,-797.2553 424.1987,-787.1103 420.2599,-796.9458 427.2531,-797.2553"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.10s)">
<text text-anchor="middle" x="440.7241" y="-812.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N22 -->
<g id="edge59" class="edge">
<title>N80&#45;&gt;N22</title>
<g id="a_edge59"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.10s)">
<path fill="none" stroke="#000000" d="M420,-1084.5857C420,-1068.9868 420,-1046.365 420,-1028.4401"/>
<polygon fill="#000000" stroke="#000000" points="423.5001,-1028.2549 420,-1018.2549 416.5001,-1028.2549 423.5001,-1028.2549"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.10s)">
<text text-anchor="middle" x="436.7241" y="-1048.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration8.svg.





































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2298)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2298 2702.7969,-2298 2702.7969,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="8,-2102 8,-2286 654,-2286 654,-2102 8,-2102"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="645.8438,-2278 16.1562,-2278 16.1562,-2110 645.8438,-2110 645.8438,-2278"/>
<text text-anchor="start" x="24.0781" y="-2248.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="24.0781" y="-2216.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="24.0781" y="-2184.4" font-family="Times,serif" font-size="32.00" fill="#000000">4.12s of 4.32s total (95.37%)</text>
<text text-anchor="start" x="24.0781" y="-2152.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 41 nodes (cum &lt;= 0.02s)</text>
<text text-anchor="start" x="24.0781" y="-2120.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 87 (cum &gt;= 0.06s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (4.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="741.7699,-2212 664.2301,-2212 664.2301,-2176 741.7699,-2176 741.7699,-2212"/>
<text text-anchor="middle" x="703" y="-2195.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="703" y="-2187.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 4.09s(94.68%)</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.main (4.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="741.7699,-2060 664.2301,-2060 664.2301,-2024 741.7699,-2024 741.7699,-2060"/>
<text text-anchor="middle" x="703" y="-2043.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.main</text>
<text text-anchor="middle" x="703" y="-2035.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 4.02s(93.06%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N64 -->
<g id="edge6" class="edge">
<title>N1&#45;&gt;N64</title>
<g id="a_edge6"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (4.02s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-2175.9667C703,-2149.7983 703,-2101.0561 703,-2070.1368"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-2070.0098 703,-2060.0098 698.6251,-2070.0099 707.3751,-2070.0098"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (4.02s)">
<text text-anchor="middle" x="719.7241" y="-2080.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.02s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.gcBgMarkWorker (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="860.3907,-2060 759.6093,-2060 759.6093,-2024 860.3907,-2024 860.3907,-2060"/>
<text text-anchor="middle" x="810" y="-2043.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="810" y="-2035.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.62%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N78 -->
<g id="edge67" class="edge">
<title>N1&#45;&gt;N78</title>
<g id="a_edge67"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.07s)">
<path fill="none" stroke="#000000" d="M715.6945,-2175.9667C734.4374,-2149.3412 769.6311,-2099.3464 791.3221,-2068.5331"/>
<polygon fill="#000000" stroke="#000000" points="794.4277,-2070.2017 797.322,-2060.0098 788.7037,-2066.1723 794.4277,-2070.2017"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.07s)">
<text text-anchor="middle" x="800.7241" y="-2080.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (4.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="807.0132,-1544 598.9868,-1544 598.9868,-1479 807.0132,-1479 807.0132,-1544"/>
<text text-anchor="middle" x="703" y="-1524.8" font-family="Times,serif" font-size="19.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="703" y="-1505.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.33s(7.64%)</text>
<text text-anchor="middle" x="703" y="-1486.8" font-family="Times,serif" font-size="19.00" fill="#000000">of 4.02s(93.06%)</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (4.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1436.9883,-1420.5 1293.0117,-1420.5 1293.0117,-1384.5 1436.9883,-1384.5 1436.9883,-1420.5"/>
<text text-anchor="middle" x="1365" y="-1404.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="1365" y="-1396.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 4.02s(93.06%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N3 -->
<g id="edge88" class="edge">
<title>N2&#45;&gt;N3</title>
<g id="a_edge88"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.03s)">
<path fill="none" stroke="#000000" d="M807.2823,-1508.9162C976.312,-1503.8863 1295.5898,-1490.5703 1338,-1461 1348.2903,-1453.8251 1354.7464,-1441.7096 1358.7527,-1430.3592"/>
<polygon fill="#000000" stroke="#000000" points="1362.1216,-1431.3105 1361.6776,-1420.725 1355.4234,-1429.277 1362.1216,-1431.3105"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.03s)">
<text text-anchor="middle" x="1366.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).execute.func7 (4s)">
<polygon fill="#f8f8f8" stroke="#000000" points="761.5625,-1420.5 644.4375,-1420.5 644.4375,-1384.5 761.5625,-1384.5 761.5625,-1420.5"/>
<text text-anchor="middle" x="703" y="-1404.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).execute.func7</text>
<text text-anchor="middle" x="703" y="-1396.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 4s(92.59%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N4 -->
<g id="edge53" class="edge">
<title>N2&#45;&gt;N4</title>
<g id="a_edge53"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (0.09s)">
<path fill="none" stroke="#000000" d="M674.371,-1478.9573C670.7542,-1473.2961 667.6058,-1467.2185 665.5518,-1461 661.7399,-1449.4601 666.7331,-1437.9398 674.1895,-1428.2121"/>
<polygon fill="#000000" stroke="#000000" points="676.9733,-1430.3445 680.8929,-1420.5014 671.6905,-1425.7519 676.9733,-1430.3445"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (0.09s)">
<text text-anchor="middle" x="682.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.(*machine).execute.func8 (2.84s)">
<polygon fill="#f8f8f8" stroke="#000000" points="626.9928,-1429 421.0072,-1429 421.0072,-1376 626.9928,-1376 626.9928,-1429"/>
<text text-anchor="middle" x="524" y="-1413" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*machine).execute.func8</text>
<text text-anchor="middle" x="524" y="-1398" font-family="Times,serif" font-size="15.00" fill="#000000">0.11s(2.55%)</text>
<text text-anchor="middle" x="524" y="-1383" font-family="Times,serif" font-size="15.00" fill="#000000">of 2.84s(65.74%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N5 -->
<g id="edge10" class="edge">
<title>N2&#45;&gt;N5</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func8 (1.52s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M598.7644,-1490.3487C569.1988,-1482.3031 542.3537,-1472.313 532.5518,-1461 527.306,-1454.9456 524.4639,-1447.1454 523.0475,-1439.2267"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="526.5227,-1438.809 521.9422,-1429.2555 519.5654,-1439.5802 526.5227,-1438.809"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func8 (1.52s)">
<text text-anchor="middle" x="549.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.52s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.newobject (1.55s)">
<polygon fill="#f8f8f8" stroke="#000000" points="569.0769,-1021.5 448.9231,-1021.5 448.9231,-971.5 569.0769,-971.5 569.0769,-1021.5"/>
<text text-anchor="middle" x="509" y="-1006.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="509" y="-992.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.08s(1.85%)</text>
<text text-anchor="middle" x="509" y="-978.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.55s(35.88%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge105" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge105"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.01s)">
<path fill="none" stroke="#000000" d="M737.9829,-1478.7629C762.9832,-1451.2216 789.237,-1410.8677 771,-1376 752.9436,-1341.4776 730.5758,-1348.821 699,-1326 658.2387,-1296.5403 638.7855,-1298.1906 608.5518,-1258 594.3508,-1239.1223 544.256,-1097.96 521.0119,-1031.2411"/>
<polygon fill="#000000" stroke="#000000" points="524.2432,-1029.877 517.653,-1021.5812 517.6315,-1032.176 524.2432,-1029.877"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.01s)">
<text text-anchor="middle" x="625.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.convT2I (0.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="698.5974,-1123 585.4026,-1123 585.4026,-1073 698.5974,-1073 698.5974,-1123"/>
<text text-anchor="middle" x="642" y="-1107.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="642" y="-1093.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.08s(1.85%)</text>
<text text-anchor="middle" x="642" y="-1079.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.63s(14.58%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N10 -->
<g id="edge89" class="edge">
<title>N2&#45;&gt;N10</title>
<g id="a_edge89"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.03s)">
<path fill="none" stroke="#000000" d="M807.3104,-1480.071C823.8034,-1474.2461 840.5147,-1467.826 856,-1461 882.5843,-1449.2815 891.3539,-1448.3777 913,-1429 934.5954,-1409.6677 926.8799,-1392.0724 951,-1376 980.6069,-1356.2715 1005.1638,-1384.4123 1029,-1358 1084.1384,-1296.9026 1076.8392,-1233.4576 1021,-1173 979.6832,-1128.266 806.3128,-1109.2591 708.9984,-1101.9885"/>
<polygon fill="#000000" stroke="#000000" points="709.1889,-1098.4932 698.9617,-1101.2601 708.6821,-1105.4748 709.1889,-1098.4932"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.03s)">
<text text-anchor="middle" x="1082.7241" y="-1296.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1681.1329,-1426 1454.8671,-1426 1454.8671,-1379 1681.1329,-1379 1681.1329,-1426"/>
<text text-anchor="middle" x="1568" y="-1411.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="1568" y="-1398.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.16%)</text>
<text text-anchor="middle" x="1568" y="-1385.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.31s(7.18%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N12 -->
<g id="edge26" class="edge">
<title>N2&#45;&gt;N12</title>
<g id="a_edge26"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.31s)">
<path fill="none" stroke="#000000" d="M807.0423,-1506.8643C970.2522,-1499.0771 1278.9785,-1482.1279 1387,-1461 1424.3152,-1453.7015 1464.6767,-1441.1351 1497.7967,-1429.5155"/>
<polygon fill="#000000" stroke="#000000" points="1499.1328,-1432.7552 1507.3832,-1426.1081 1496.7884,-1426.1594 1499.1328,-1432.7552"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.31s)">
<text text-anchor="middle" x="1458.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="runtime.deferreturn (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2145.5264,-1429 2012.4736,-1429 2012.4736,-1376 2145.5264,-1376 2145.5264,-1429"/>
<text text-anchor="middle" x="2079" y="-1413" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="2079" y="-1398" font-family="Times,serif" font-size="15.00" fill="#000000">0.13s(3.01%)</text>
<text text-anchor="middle" x="2079" y="-1383" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.31s(7.18%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N13 -->
<g id="edge27" class="edge">
<title>N2&#45;&gt;N13</title>
<g id="a_edge27"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.31s)">
<path fill="none" stroke="#000000" d="M807.1875,-1510.1649C1091.0355,-1506.1331 1864.2274,-1492.3781 1975,-1461 1995.198,-1455.2786 2015.7015,-1444.9202 2033.1038,-1434.4925"/>
<polygon fill="#000000" stroke="#000000" points="2035.2347,-1437.2902 2041.9033,-1429.0573 2031.5561,-1431.3346 2035.2347,-1437.2902"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.31s)">
<text text-anchor="middle" x="2024.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="runtime.deferproc (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="394.983,-1426 285.017,-1426 285.017,-1379 394.983,-1379 394.983,-1426"/>
<text text-anchor="middle" x="340" y="-1411.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="340" y="-1398.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.16%)</text>
<text text-anchor="middle" x="340" y="-1385.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.30s(6.94%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge28" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge28"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.30s)">
<path fill="none" stroke="#000000" d="M598.8352,-1490.1392C563.5276,-1482.0625 524.052,-1472.1066 488.5518,-1461 460.2795,-1452.1547 429.7225,-1440.499 403.7158,-1429.921"/>
<polygon fill="#000000" stroke="#000000" points="404.9331,-1426.6374 394.353,-1426.0798 402.2762,-1433.1135 404.9331,-1426.6374"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.30s)">
<text text-anchor="middle" x="505.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1925.1329,-1426 1698.8671,-1426 1698.8671,-1379 1925.1329,-1379 1925.1329,-1426"/>
<text text-anchor="middle" x="1812" y="-1411.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="1812" y="-1398.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.06s(1.39%)</text>
<text text-anchor="middle" x="1812" y="-1385.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.22s(5.09%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N16 -->
<g id="edge30" class="edge">
<title>N2&#45;&gt;N16</title>
<g id="a_edge30"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.22s)">
<path fill="none" stroke="#000000" d="M807.1092,-1507.5562C956.2644,-1501.2634 1239.2419,-1486.9341 1479,-1461 1573.3,-1450.7998 1596.7199,-1446.1863 1690,-1429 1691.9184,-1428.6465 1693.8527,-1428.2852 1695.7994,-1427.9169"/>
<polygon fill="#000000" stroke="#000000" points="1696.4642,-1431.3533 1705.6203,-1426.0226 1695.1384,-1424.48 1696.4642,-1431.3533"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.22s)">
<text text-anchor="middle" x="1604.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="main.executeSubtract (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1045.5821,-1420.5 960.4179,-1420.5 960.4179,-1384.5 1045.5821,-1384.5 1045.5821,-1420.5"/>
<text text-anchor="middle" x="1003" y="-1404.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.executeSubtract</text>
<text text-anchor="middle" x="1003" y="-1396.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.20s(4.63%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N20 -->
<g id="edge34" class="edge">
<title>N2&#45;&gt;N20</title>
<g id="a_edge34"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.20s)">
<path fill="none" stroke="#000000" d="M807.0069,-1496.0864C861.5448,-1486.7872 921.9152,-1474.209 946,-1461 960.5467,-1453.022 973.7028,-1440.1171 983.701,-1428.4552"/>
<polygon fill="#000000" stroke="#000000" points="986.462,-1430.6079 990.0965,-1420.6559 981.0492,-1426.1692 986.462,-1430.6079"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.20s)">
<text text-anchor="middle" x="980.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="main.executeMultiply (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="904.4268,-1420.5 817.5732,-1420.5 817.5732,-1384.5 904.4268,-1384.5 904.4268,-1420.5"/>
<text text-anchor="middle" x="861" y="-1404.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.executeMultiply</text>
<text text-anchor="middle" x="861" y="-1396.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.18s(4.17%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N22 -->
<g id="edge35" class="edge">
<title>N2&#45;&gt;N22</title>
<g id="a_edge35"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.18s)">
<path fill="none" stroke="#000000" d="M775.6504,-1478.904C785.4917,-1473.4284 795.2148,-1467.4191 804,-1461 816.8064,-1451.6427 829.3033,-1439.2946 839.3164,-1428.3555"/>
<polygon fill="#000000" stroke="#000000" points="842.0969,-1430.4961 846.1375,-1420.702 836.8711,-1425.8387 842.0969,-1430.4961"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.18s)">
<text text-anchor="middle" x="835.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.ifaceeq (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2276.5679,-1429 2163.4321,-1429 2163.4321,-1376 2276.5679,-1376 2276.5679,-1429"/>
<text text-anchor="middle" x="2220" y="-1413" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="2220" y="-1398" font-family="Times,serif" font-size="15.00" fill="#000000">0.12s(2.78%)</text>
<text text-anchor="middle" x="2220" y="-1383" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.13s(3.01%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N25 -->
<g id="edge38" class="edge">
<title>N2&#45;&gt;N25</title>
<g id="a_edge38"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.13s)">
<path fill="none" stroke="#000000" d="M807.4655,-1510.8771C1079.9022,-1508.7229 1807.3599,-1499.4366 2045,-1461 2081.8266,-1455.0436 2121.3614,-1442.4008 2153.52,-1430.3875"/>
<polygon fill="#000000" stroke="#000000" points="2155.1487,-1433.5128 2163.2523,-1426.6876 2152.6612,-1426.9697 2155.1487,-1433.5128"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.13s)">
<text text-anchor="middle" x="2120.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="main.(*CodeQuotation).nextWord (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2513.0752,-1421.5 2294.9248,-1421.5 2294.9248,-1383.5 2513.0752,-1383.5 2513.0752,-1421.5"/>
<text text-anchor="middle" x="2404" y="-1405.5" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2404" y="-1390.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.10s(2.31%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N30 -->
<g id="edge47" class="edge">
<title>N2&#45;&gt;N30</title>
<g id="a_edge47"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.10s)">
<path fill="none" stroke="#000000" d="M807.2351,-1510.3038C1092.6753,-1506.6347 1882.8785,-1493.7374 2141,-1461 2203.5578,-1453.0658 2273.1628,-1437.2651 2325.0445,-1424.0832"/>
<polygon fill="#000000" stroke="#000000" points="2326.0305,-1427.4437 2334.8481,-1421.57 2324.2922,-1420.663 2326.0305,-1427.4437"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.10s)">
<text text-anchor="middle" x="2237.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1236.8304,-1423 1063.1696,-1423 1063.1696,-1382 1236.8304,-1382 1236.8304,-1423"/>
<text text-anchor="middle" x="1150" y="-1410.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(intPusher).(main.pushInt)&#45;fm</text>
<text text-anchor="middle" x="1150" y="-1399.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.46%)</text>
<text text-anchor="middle" x="1150" y="-1388.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.10s(2.31%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N31 -->
<g id="edge48" class="edge">
<title>N2&#45;&gt;N31</title>
<g id="a_edge48"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.10s)">
<path fill="none" stroke="#000000" d="M807.2448,-1499.2047C864.9816,-1491.06 937.6753,-1478.5936 1001,-1461 1032.9761,-1452.116 1067.543,-1438.7905 1095.3253,-1427.1004"/>
<polygon fill="#000000" stroke="#000000" points="1097.0242,-1430.1812 1104.854,-1423.0437 1094.2821,-1423.7406 1097.0242,-1430.1812"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.10s)">
<text text-anchor="middle" x="1058.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="main.(*machine).execute.func1 (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2698.5942,-1424.5 2531.4058,-1424.5 2531.4058,-1380.5 2698.5942,-1380.5 2698.5942,-1424.5"/>
<text text-anchor="middle" x="2615" y="-1410.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="2615" y="-1398.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.93%)</text>
<text text-anchor="middle" x="2615" y="-1386.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.05s(1.16%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N45 -->
<g id="edge74" class="edge">
<title>N2&#45;&gt;N45</title>
<g id="a_edge74"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.05s)">
<path fill="none" stroke="#000000" d="M807.1118,-1509.3184C1107.9351,-1502.8239 1974.8808,-1482.7135 2258,-1461 2375.8461,-1451.9619 2406.1429,-1452.3777 2522,-1429 2525.2091,-1428.3525 2528.4689,-1427.6498 2531.7531,-1426.9042"/>
<polygon fill="#000000" stroke="#000000" points="2532.7331,-1430.2689 2541.6523,-1424.5507 2531.1139,-1423.4587 2532.7331,-1430.2689"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.05s)">
<text text-anchor="middle" x="2433.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.growslice (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1428.4818,-1015.5 1339.5182,-1015.5 1339.5182,-977.5 1428.4818,-977.5 1428.4818,-1015.5"/>
<text text-anchor="middle" x="1384" y="-1003.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="1384" y="-993.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.23%)</text>
<text text-anchor="middle" x="1384" y="-983.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.04s(0.93%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N51 -->
<g id="edge82" class="edge">
<title>N2&#45;&gt;N51</title>
<g id="a_edge82"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.04s)">
<path fill="none" stroke="#000000" d="M807.0659,-1505.691C943.859,-1496.3774 1175.1117,-1474.3416 1246,-1429 1270.417,-1413.3824 1260.933,-1393.5503 1284,-1376 1302.464,-1361.9518 1313.8055,-1371.0324 1333,-1358 1361.1236,-1338.905 1384,-1334.9935 1384,-1301 1384,-1301 1384,-1301 1384,-1098 1384,-1073.6527 1384,-1046.0202 1384,-1025.741"/>
<polygon fill="#000000" stroke="#000000" points="1387.5001,-1025.5813 1384,-1015.5813 1380.5001,-1025.5813 1387.5001,-1025.5813"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.04s)">
<text text-anchor="middle" x="1400.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.jmpdefer (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2128.6374,-1319 2029.3626,-1319 2029.3626,-1283 2128.6374,-1283 2128.6374,-1319"/>
<text text-anchor="middle" x="2079" y="-1303.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.jmpdefer</text>
<text text-anchor="middle" x="2079" y="-1291.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.93%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N52 -->
<g id="edge90" class="edge">
<title>N2&#45;&gt;N52</title>
<g id="a_edge90"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.jmpdefer (0.03s)">
<path fill="none" stroke="#000000" d="M807.0404,-1509.933C1086.4615,-1504.9711 1838.6147,-1486.3804 1934,-1429 1958.3053,-1414.3788 1949.5949,-1396.1557 1969.5518,-1376 1989.494,-1355.8591 2015.5511,-1337.7527 2037.2377,-1324.3782"/>
<polygon fill="#000000" stroke="#000000" points="2039.1779,-1327.2952 2045.9251,-1319.1266 2035.5566,-1321.3047 2039.1779,-1327.2952"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.jmpdefer (0.03s)">
<text text-anchor="middle" x="1985.7241" y="-1398.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge8" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge8"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (3.99s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1341.159,-1420.7372C1320.5582,-1436.1102 1292.0971,-1456.3318 1279,-1461 1196.7592,-1490.3132 960.3371,-1503.1066 817.2354,-1508.2961"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="816.9349,-1503.9289 807.0968,-1508.6567 817.246,-1512.6734 816.9349,-1503.9289"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (3.99s)">
<text text-anchor="middle" x="1318.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.99s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N6 -->
<g id="edge101" class="edge">
<title>N3&#45;&gt;N6</title>
<g id="a_edge101"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.02s)">
<path fill="none" stroke="#000000" d="M1381.4519,-1384.168C1387.4951,-1376.5496 1393.8638,-1367.3186 1398,-1358 1431.3573,-1282.8482 1455.5963,-1231.6784 1398,-1173 1283.4753,-1056.3238 769.1154,-1012.7701 579.4932,-1000.5059"/>
<polygon fill="#000000" stroke="#000000" points="579.5633,-997.0034 569.361,-999.8605 579.1183,-1003.9892 579.5633,-997.0034"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.02s)">
<text text-anchor="middle" x="1445.7241" y="-1195.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="main.(*machine).popValue (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1606.2848,-1319 1449.7152,-1319 1449.7152,-1283 1606.2848,-1283 1606.2848,-1319"/>
<text text-anchor="middle" x="1528" y="-1303.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="1528" y="-1290.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.06s(1.39%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N44 -->
<g id="edge107" class="edge">
<title>N3&#45;&gt;N44</title>
<g id="a_edge107"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M1394.1411,-1384.3538C1420.9458,-1367.6626 1460.8542,-1342.8117 1490.1217,-1324.5868"/>
<polygon fill="#000000" stroke="#000000" points="1492.1982,-1327.4169 1498.8368,-1319.1599 1488.498,-1321.4748 1492.1982,-1327.4169"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="1472.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N2 -->
<g id="edge9" class="edge">
<title>N4&#45;&gt;N2</title>
<g id="a_edge9"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (3.91s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-1420.6062C703,-1433.6937 703,-1451.9379 703,-1468.6492"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="698.6251,-1468.7964 703,-1478.7964 707.3751,-1468.7964 698.6251,-1468.7964"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (3.91s)">
<text text-anchor="middle" x="719.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.91s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="main.(*CodeQuotation).cloneCode (1.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="613.6078,-1326 404.3922,-1326 404.3922,-1276 613.6078,-1276 613.6078,-1326"/>
<text text-anchor="middle" x="509" y="-1310.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="509" y="-1296.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.09s(2.08%)</text>
<text text-anchor="middle" x="509" y="-1282.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.16s(26.85%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N8 -->
<g id="edge54" class="edge">
<title>N4&#45;&gt;N8</title>
<g id="a_edge54"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (0.09s)">
<path fill="none" stroke="#000000" d="M668.3167,-1384.3538C639.9248,-1369.4993 599.1805,-1348.1821 566.0039,-1330.8242"/>
<polygon fill="#000000" stroke="#000000" points="567.3468,-1327.5767 556.8636,-1326.0421 564.1017,-1333.7791 567.3468,-1327.5767"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (0.09s)">
<text text-anchor="middle" x="634.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N2 -->
<g id="edge12" class="edge">
<title>N5&#45;&gt;N2</title>
<g id="a_edge12"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).execute (1.32s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M567.7472,-1429.1393C589.6513,-1442.4776 616.5565,-1458.8612 640.5859,-1473.4936"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="638.9327,-1476.5848 649.2941,-1478.7964 642.5734,-1470.606 638.9327,-1476.5848"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).execute (1.32s)">
<text text-anchor="middle" x="635.7241" y="-1449.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.32s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N8 -->
<g id="edge13" class="edge">
<title>N5&#45;&gt;N8</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*CodeQuotation).cloneCode (1.07s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M520.0589,-1375.8321C518.2644,-1363.6894 516.1161,-1349.1522 514.1922,-1336.134"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="517.6329,-1335.4748 512.7085,-1326.094 510.7081,-1336.4982 517.6329,-1335.4748"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*CodeQuotation).cloneCode (1.07s)">
<text text-anchor="middle" x="534.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.07s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N10 -->
<g id="edge25" class="edge">
<title>N5&#45;&gt;N10</title>
<g id="a_edge25"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; runtime.convT2I (0.34s)">
<path fill="none" stroke="#000000" d="M574.0302,-1375.8476C592.6024,-1363.2887 611.8459,-1346.5137 623,-1326 656.3396,-1264.6846 652.8636,-1180.1275 647.4038,-1133.1195"/>
<polygon fill="#000000" stroke="#000000" points="650.8672,-1132.6092 646.146,-1123.1245 643.922,-1133.4832 650.8672,-1132.6092"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; runtime.convT2I (0.34s)">
<text text-anchor="middle" x="664.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.mallocgc (1.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="601.1098,-920 416.8902,-920 416.8902,-840 601.1098,-840 601.1098,-920"/>
<text text-anchor="middle" x="509" y="-896.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="509" y="-872.8" font-family="Times,serif" font-size="24.00" fill="#000000">0.71s(16.44%)</text>
<text text-anchor="middle" x="509" y="-848.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 1.52s(35.19%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N7 -->
<g id="edge11" class="edge">
<title>N6&#45;&gt;N7</title>
<g id="a_edge11"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.47s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M509,-971.2212C509,-959.2664 509,-944.5489 509,-930.4519"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="512.5001,-930.3451 509,-920.3451 505.5001,-930.3451 512.5001,-930.3451"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (1.47s)">
<text text-anchor="middle" x="525.7241" y="-940.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.47s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.heapBitsSetType (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="466.0835,-790 277.9165,-790 277.9165,-748 466.0835,-748 466.0835,-790"/>
<text text-anchor="middle" x="372" y="-772.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="372" y="-755.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.21s(4.86%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N19 -->
<g id="edge33" class="edge">
<title>N7&#45;&gt;N19</title>
<g id="a_edge33"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.21s)">
<path fill="none" stroke="#000000" d="M459.5399,-839.9265C441.7871,-825.5428 422.1809,-809.6575 406.0316,-796.573"/>
<polygon fill="#000000" stroke="#000000" points="407.9029,-793.5846 397.9297,-790.0087 403.4962,-799.0235 407.9029,-793.5846"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.21s)">
<text text-anchor="middle" x="453.7241" y="-810.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.memclr (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="145.2185,-138 32.7815,-138 32.7815,-100 145.2185,-100 145.2185,-138"/>
<text text-anchor="middle" x="89" y="-122" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="89" y="-107" font-family="Times,serif" font-size="15.00" fill="#000000">0.10s(2.31%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N32 -->
<g id="edge104" class="edge">
<title>N7&#45;&gt;N32</title>
<g id="a_edge104"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.02s)">
<path fill="none" stroke="#000000" d="M601.1114,-872.5689C717.8308,-860.5604 904,-831.5957 904,-769 904,-769 904,-769 904,-620 904,-544.2551 915.8794,-513.2691 870,-453 815.9429,-381.9883 772.9223,-397.4058 691,-362 669.3198,-352.6301 663.0515,-352.4593 641,-344 457.2544,-273.5124 241.8953,-183.589 143.2838,-142.0012"/>
<polygon fill="#000000" stroke="#000000" points="144.4005,-138.6736 133.8265,-138.0099 141.6787,-145.1228 144.4005,-138.6736"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.02s)">
<text text-anchor="middle" x="911.7241" y="-469.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.profilealloc (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="130.817,-787 51.183,-787 51.183,-751 130.817,-751 130.817,-787"/>
<text text-anchor="middle" x="91" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.profilealloc</text>
<text text-anchor="middle" x="91" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.69%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N57 -->
<g id="edge94" class="edge">
<title>N7&#45;&gt;N57</title>
<g id="a_edge94"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.profilealloc (0.03s)">
<path fill="none" stroke="#000000" d="M416.8872,-862.2467C343.6158,-847.0557 238.6643,-822.909 140.3589,-790.2483"/>
<polygon fill="#000000" stroke="#000000" points="141.4615,-786.9266 130.8675,-787.0611 139.2331,-793.5624 141.4615,-786.9266"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.profilealloc (0.03s)">
<text text-anchor="middle" x="256.7241" y="-810.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.gcStart (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="681.7699,-787 608.2301,-787 608.2301,-751 681.7699,-751 681.7699,-787"/>
<text text-anchor="middle" x="645" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcStart</text>
<text text-anchor="middle" x="645" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.39s(9.03%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N70 -->
<g id="edge22" class="edge">
<title>N7&#45;&gt;N70</title>
<g id="a_edge22"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.39s)">
<path fill="none" stroke="#000000" d="M558.0991,-839.9265C577.061,-824.4503 598.1527,-807.2356 614.8083,-793.6418"/>
<polygon fill="#000000" stroke="#000000" points="617.0654,-796.3174 622.5995,-787.2827 612.6392,-790.8943 617.0654,-796.3174"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.39s)">
<text text-anchor="middle" x="614.7241" y="-810.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.(*mcache).nextFree (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="590.1257,-787 483.8743,-787 483.8743,-751 590.1257,-751 590.1257,-787"/>
<text text-anchor="middle" x="537" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="537" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.16s(3.70%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N72 -->
<g id="edge36" class="edge">
<title>N7&#45;&gt;N72</title>
<g id="a_edge36"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.16s)">
<path fill="none" stroke="#000000" d="M519.1086,-839.9265C522.6931,-825.7165 526.6473,-810.0409 529.9248,-797.0482"/>
<polygon fill="#000000" stroke="#000000" points="533.3359,-797.8351 532.3881,-787.2827 526.5485,-796.1229 533.3359,-797.8351"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.16s)">
<text text-anchor="middle" x="544.7241" y="-810.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N6 -->
<g id="edge14" class="edge">
<title>N8&#45;&gt;N6</title>
<g id="a_edge14"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.06s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M509,-1275.8224C509,-1221.6744 509,-1094.0304 509,-1031.82"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="512.5001,-1031.707 509,-1021.707 505.5001,-1031.707 512.5001,-1031.707"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.06s)">
<text text-anchor="middle" x="525.7241" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.06s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.systemstack (1.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="714.3931,-698 575.6069,-698 575.6069,-645 714.3931,-645 714.3931,-698"/>
<text text-anchor="middle" x="645" y="-682" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="645" y="-667" font-family="Times,serif" font-size="15.00" fill="#000000">0.11s(2.55%)</text>
<text text-anchor="middle" x="645" y="-652" font-family="Times,serif" font-size="15.00" fill="#000000">of 1.11s(25.69%)</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.deferproc.func1 (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="876.0488,-595 723.9512,-595 723.9512,-545 876.0488,-545 876.0488,-595"/>
<text text-anchor="middle" x="800" y="-579.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="800" y="-565.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.08s(1.85%)</text>
<text text-anchor="middle" x="800" y="-551.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.22s(5.09%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N17 -->
<g id="edge32" class="edge">
<title>N9&#45;&gt;N17</title>
<g id="a_edge32"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.22s)">
<path fill="none" stroke="#000000" d="M685.7244,-644.8321C706.3788,-631.3068 731.5698,-614.8107 753.0389,-600.752"/>
<polygon fill="#000000" stroke="#000000" points="755.2307,-603.5004 761.6792,-595.094 751.3958,-597.6443 755.2307,-603.5004"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.22s)">
<text text-anchor="middle" x="748.7241" y="-615.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.deferreturn.func1 (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="565.9434,-592 426.0566,-592 426.0566,-548 565.9434,-548 565.9434,-592"/>
<text text-anchor="middle" x="496" y="-578.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="496" y="-566.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.93%)</text>
<text text-anchor="middle" x="496" y="-554.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.13s(3.01%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N24 -->
<g id="edge43" class="edge">
<title>N9&#45;&gt;N24</title>
<g id="a_edge43"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.13s)">
<path fill="none" stroke="#000000" d="M605.852,-644.8321C584.5388,-630.3133 558.2003,-612.3714 536.6566,-597.6956"/>
<polygon fill="#000000" stroke="#000000" points="538.5889,-594.777 528.3537,-592.0396 534.6479,-600.5622 538.5889,-594.777"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.13s)">
<text text-anchor="middle" x="596.7241" y="-615.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.startTheWorldWithSema (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="706.3482,-588 583.6518,-588 583.6518,-552 706.3482,-552 706.3482,-588"/>
<text text-anchor="middle" x="645" y="-571.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.startTheWorldWithSema</text>
<text text-anchor="middle" x="645" y="-563.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.39s(9.03%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N71 -->
<g id="edge24" class="edge">
<title>N9&#45;&gt;N71</title>
<g id="a_edge24"><a xlink:title="runtime.systemstack &#45;&gt; runtime.startTheWorldWithSema (0.39s)">
<path fill="none" stroke="#000000" d="M645,-644.8321C645,-630.6033 645,-613.0868 645,-598.5789"/>
<polygon fill="#000000" stroke="#000000" points="648.5001,-598.1754 645,-588.1754 641.5001,-598.1755 648.5001,-598.1754"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.startTheWorldWithSema (0.39s)">
<text text-anchor="middle" x="661.7241" y="-615.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="285.3399,-588 158.6601,-588 158.6601,-552 285.3399,-552 285.3399,-588"/>
<text text-anchor="middle" x="222" y="-571.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="222" y="-563.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(3.01%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N73 -->
<g id="edge42" class="edge">
<title>N9&#45;&gt;N73</title>
<g id="a_edge42"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.13s)">
<path fill="none" stroke="#000000" d="M575.4564,-657.943C533.1685,-649.4991 478.1307,-638.1531 429.5518,-627 373.0074,-614.0182 358.8589,-610.6712 303,-595 298.4568,-593.7254 293.781,-592.3779 289.0771,-590.9958"/>
<polygon fill="#000000" stroke="#000000" points="289.9986,-587.6184 279.4158,-588.1224 288.0031,-594.328 289.9986,-587.6184"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.13s)">
<text text-anchor="middle" x="446.7241" y="-615.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.semasleep.func1 (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="407.9727,-588 312.0273,-588 312.0273,-552 407.9727,-552 407.9727,-588"/>
<text text-anchor="middle" x="360" y="-571.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep.func1</text>
<text text-anchor="middle" x="360" y="-563.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(2.31%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N76 -->
<g id="edge51" class="edge">
<title>N9&#45;&gt;N76</title>
<g id="a_edge51"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.10s)">
<path fill="none" stroke="#000000" d="M575.5825,-649.9933C530.1102,-635.4687 469.5808,-615.3051 417,-595 414.4878,-594.0299 411.9245,-593.0117 409.3439,-591.964"/>
<polygon fill="#000000" stroke="#000000" points="410.5616,-588.6799 399.9841,-588.0744 407.8754,-595.144 410.5616,-588.6799"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.10s)">
<text text-anchor="middle" x="521.7241" y="-615.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N6 -->
<g id="edge15" class="edge">
<title>N10&#45;&gt;N6</title>
<g id="a_edge15"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.45s)">
<path fill="none" stroke="#000000" d="M611.5312,-1072.9449C599.0833,-1062.8651 584.4699,-1051.2291 571,-1041 565.1966,-1036.5928 559.025,-1032.0253 552.9114,-1027.5698"/>
<polygon fill="#000000" stroke="#000000" points="554.8031,-1024.6184 544.6505,-1021.5891 550.6981,-1030.2885 554.8031,-1024.6184"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.45s)">
<text text-anchor="middle" x="605.7241" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.45s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.typedmemmove (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1943.5483,-1023 1780.4517,-1023 1780.4517,-970 1943.5483,-970 1943.5483,-1023"/>
<text text-anchor="middle" x="1862" y="-1007" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="1862" y="-992" font-family="Times,serif" font-size="15.00" fill="#000000">0.12s(2.78%)</text>
<text text-anchor="middle" x="1862" y="-977" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.22s(5.09%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N18 -->
<g id="edge49" class="edge">
<title>N10&#45;&gt;N18</title>
<g id="a_edge49"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.10s)">
<path fill="none" stroke="#000000" d="M698.8411,-1097.4661C885.3785,-1095.4232 1477.6792,-1086.5535 1666,-1055 1703.7755,-1048.6706 1744.5124,-1037.2901 1779.0096,-1026.2383"/>
<polygon fill="#000000" stroke="#000000" points="1780.1367,-1029.5523 1788.5665,-1023.1343 1777.9743,-1022.8946 1780.1367,-1029.5523"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.10s)">
<text text-anchor="middle" x="1742.7241" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="runtime.mach_semaphore_signal (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="792.168,-50 497.832,-50 497.832,0 792.168,0 792.168,-50"/>
<text text-anchor="middle" x="645" y="-29.2" font-family="Times,serif" font-size="21.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="645" y="-8.2" font-family="Times,serif" font-size="21.00" fill="#000000">0.44s(10.19%)</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="runtime.mapassign1 (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1783.5664,-1324.5 1662.4336,-1324.5 1662.4336,-1277.5 1783.5664,-1277.5 1783.5664,-1324.5"/>
<text text-anchor="middle" x="1723" y="-1310.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="1723" y="-1297.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.16%)</text>
<text text-anchor="middle" x="1723" y="-1284.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.23s(5.32%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N15 -->
<g id="edge29" class="edge">
<title>N12&#45;&gt;N15</title>
<g id="a_edge29"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.23s)">
<path fill="none" stroke="#000000" d="M1613.0954,-1378.8852C1624.6653,-1372.4297 1636.957,-1365.2153 1648,-1358 1660.6814,-1349.7142 1674.0045,-1339.9623 1685.8447,-1330.89"/>
<polygon fill="#000000" stroke="#000000" points="1688.0165,-1333.6349 1693.7788,-1324.7441 1683.7298,-1328.101 1688.0165,-1333.6349"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.23s)">
<text text-anchor="middle" x="1683.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.assertI2T (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1822.0537,-1121.5 1713.9463,-1121.5 1713.9463,-1074.5 1822.0537,-1074.5 1822.0537,-1121.5"/>
<text text-anchor="middle" x="1768" y="-1107.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="1768" y="-1094.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.16%)</text>
<text text-anchor="middle" x="1768" y="-1081.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.09s(2.08%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N37 -->
<g id="edge106" class="edge">
<title>N12&#45;&gt;N37</title>
<g id="a_edge106"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.01s)">
<path fill="none" stroke="#000000" d="M1604.1653,-1378.8703C1610.5853,-1372.883 1616.3724,-1365.879 1620,-1358 1627.8116,-1341.0336 1645.9215,-1334.9958 1615,-1276 1598.5664,-1244.646 1568.2721,-1257.9358 1553,-1226 1542.8376,-1204.7493 1539.3599,-1192.2044 1553,-1173 1562.1617,-1160.1009 1643.9417,-1134.0055 1703.9345,-1116.2624"/>
<polygon fill="#000000" stroke="#000000" points="1705.1286,-1119.5595 1713.735,-1113.3805 1703.1538,-1112.8439 1705.1286,-1119.5595"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.01s)">
<text text-anchor="middle" x="1613.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N44 -->
<g id="edge99" class="edge">
<title>N12&#45;&gt;N44</title>
<g id="a_edge99"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M1542.2603,-1378.6452C1537.1247,-1372.4567 1532.4308,-1365.4251 1529.5518,-1358 1526.0674,-1349.0138 1525.0089,-1338.6184 1525.0351,-1329.1855"/>
<polygon fill="#000000" stroke="#000000" points="1528.5371,-1329.207 1525.4539,-1319.0707 1521.5431,-1328.9173 1528.5371,-1329.207"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="1545.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N9 -->
<g id="edge41" class="edge">
<title>N13&#45;&gt;N9</title>
<g id="a_edge41"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.13s)">
<path fill="none" stroke="#000000" d="M2115.2598,-1375.6058C2135.629,-1357.1936 2157,-1330.7798 2157,-1301 2157,-1301 2157,-1301 2157,-996.5 2157,-751.3325 1333.8646,-741.2425 1090,-716 962.2804,-702.7797 813.8683,-688.0694 724.7982,-679.3113"/>
<polygon fill="#000000" stroke="#000000" points="725.0635,-675.8206 714.7691,-678.3256 724.3788,-682.787 725.0635,-675.8206"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.13s)">
<text text-anchor="middle" x="2173.7241" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.memmove (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2204.3863,-495 2059.6137,-495 2059.6137,-453 2204.3863,-453 2204.3863,-495"/>
<text text-anchor="middle" x="2132" y="-477.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="2132" y="-460.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.19s(4.40%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N21 -->
<g id="edge85" class="edge">
<title>N13&#45;&gt;N21</title>
<g id="a_edge85"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M2145.6895,-1376.7546C2175.9129,-1360.3313 2205,-1335.5504 2205,-1301 2205,-1301 2205,-1301 2205,-570 2205,-543.2518 2186.8212,-519.2932 2168.6069,-502.001"/>
<polygon fill="#000000" stroke="#000000" points="2170.6225,-499.1057 2160.8515,-495.0095 2165.9354,-504.3049 2170.6225,-499.1057"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="2221.7241" y="-940.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N52 -->
<g id="edge111" class="edge">
<title>N13&#45;&gt;N52</title>
<g id="a_edge111"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.jmpdefer (0.01s)">
<path fill="none" stroke="#000000" d="M2079,-1375.8321C2079,-1361.6033 2079,-1344.0868 2079,-1329.5789"/>
<polygon fill="#000000" stroke="#000000" points="2082.5001,-1329.1754 2079,-1319.1754 2075.5001,-1329.1755 2082.5001,-1329.1754"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.jmpdefer (0.01s)">
<text text-anchor="middle" x="2095.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N9 -->
<g id="edge31" class="edge">
<title>N14&#45;&gt;N9</title>
<g id="a_edge31"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.22s)">
<path fill="none" stroke="#000000" d="M301.0481,-1378.9827C276.7246,-1361.0416 250,-1333.8539 250,-1301 250,-1301 250,-1301 250,-769 250,-704.7201 449.6607,-682.5583 565.0789,-675.1172"/>
<polygon fill="#000000" stroke="#000000" points="565.5274,-678.5962 575.2912,-674.4829 565.0934,-671.6097 565.5274,-678.5962"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.22s)">
<text text-anchor="middle" x="266.7241" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.getcallerpc (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="386.4531,-1319 277.5469,-1319 277.5469,-1283 386.4531,-1283 386.4531,-1319"/>
<text text-anchor="middle" x="332" y="-1303.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.getcallerpc</text>
<text text-anchor="middle" x="332" y="-1291.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.69%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N55 -->
<g id="edge92" class="edge">
<title>N14&#45;&gt;N55</title>
<g id="a_edge92"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallerpc (0.03s)">
<path fill="none" stroke="#000000" d="M338.1445,-1378.9587C336.9744,-1364.1131 335.4567,-1344.8572 334.2225,-1329.1976"/>
<polygon fill="#000000" stroke="#000000" points="337.696,-1328.7233 333.421,-1319.0292 330.7177,-1329.2733 337.696,-1328.7233"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallerpc (0.03s)">
<text text-anchor="middle" x="353.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N18 -->
<g id="edge63" class="edge">
<title>N15&#45;&gt;N18</title>
<g id="a_edge63"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.08s)">
<path fill="none" stroke="#000000" d="M1750.2962,-1277.2176C1764.6714,-1263.4699 1781.6273,-1245.1399 1793,-1226 1829.8496,-1163.9832 1848.4353,-1080.6962 1856.5933,-1033.3998"/>
<polygon fill="#000000" stroke="#000000" points="1860.0831,-1033.7493 1858.2687,-1023.311 1853.1777,-1032.6025 1860.0831,-1033.7493"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.08s)">
<text text-anchor="middle" x="1845.7241" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.aeshashbody (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1679.6431,-1217.5 1562.3569,-1217.5 1562.3569,-1181.5 1679.6431,-1181.5 1679.6431,-1217.5"/>
<text text-anchor="middle" x="1621" y="-1201.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="1621" y="-1189.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.04s(0.93%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N50 -->
<g id="edge86" class="edge">
<title>N15&#45;&gt;N50</title>
<g id="a_edge86"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.04s)">
<path fill="none" stroke="#000000" d="M1699.3428,-1277.4587C1683.4198,-1261.6139 1662.4483,-1240.7451 1646.2104,-1224.5868"/>
<polygon fill="#000000" stroke="#000000" points="1648.6753,-1222.102 1639.118,-1217.5292 1643.7377,-1227.0639 1648.6753,-1222.102"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.04s)">
<text text-anchor="middle" x="1694.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.newarray (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1784.301,-1218.5 1697.699,-1218.5 1697.699,-1180.5 1784.301,-1180.5 1784.301,-1218.5"/>
<text text-anchor="middle" x="1741" y="-1206.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="1741" y="-1196.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.23%)</text>
<text text-anchor="middle" x="1741" y="-1186.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.04s(0.93%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N53 -->
<g id="edge87" class="edge">
<title>N15&#45;&gt;N53</title>
<g id="a_edge87"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.04s)">
<path fill="none" stroke="#000000" d="M1726.2187,-1277.3749C1727.7029,-1267.0975 1729.5734,-1254.9297 1731.5518,-1244 1732.4538,-1239.0164 1733.4968,-1233.7374 1734.5535,-1228.6236"/>
<polygon fill="#000000" stroke="#000000" points="1738.0482,-1229.0153 1736.701,-1218.5065 1731.2008,-1227.5618 1738.0482,-1229.0153"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.04s)">
<text text-anchor="middle" x="1747.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N37 -->
<g id="edge64" class="edge">
<title>N16&#45;&gt;N37</title>
<g id="a_edge64"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.07s)">
<path fill="none" stroke="#000000" d="M1811.8948,-1378.7795C1811.2982,-1336.8376 1808.173,-1247.0233 1793,-1173 1790.123,-1158.964 1785.4353,-1143.904 1780.892,-1130.9891"/>
<polygon fill="#000000" stroke="#000000" points="1784.1801,-1129.7894 1777.4783,-1121.5835 1777.6001,-1132.1777 1784.1801,-1129.7894"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.07s)">
<text text-anchor="middle" x="1821.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.mapaccess2_faststr (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2011.6143,-1319 1840.3857,-1319 1840.3857,-1283 2011.6143,-1283 2011.6143,-1319"/>
<text text-anchor="middle" x="1926" y="-1303.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="1926" y="-1289.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.07s(1.62%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N42 -->
<g id="edge65" class="edge">
<title>N16&#45;&gt;N42</title>
<g id="a_edge65"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.07s)">
<path fill="none" stroke="#000000" d="M1838.4404,-1378.9587C1856.2367,-1363.1139 1879.6755,-1342.2451 1897.8236,-1326.0868"/>
<polygon fill="#000000" stroke="#000000" points="1900.6092,-1328.293 1905.7504,-1319.0292 1895.9543,-1323.0649 1900.6092,-1328.293"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.07s)">
<text text-anchor="middle" x="1891.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N44 -->
<g id="edge100" class="edge">
<title>N16&#45;&gt;N44</title>
<g id="a_edge100"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M1704.35,-1378.9421C1657.052,-1368.5532 1611.7959,-1358.542 1610.5518,-1358 1591.556,-1349.7245 1572.3874,-1336.8305 1557.3089,-1325.3979"/>
<polygon fill="#000000" stroke="#000000" points="1559.4235,-1322.6086 1549.3799,-1319.2354 1555.1278,-1328.1356 1559.4235,-1322.6086"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="1626.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N21 -->
<g id="edge93" class="edge">
<title>N17&#45;&gt;N21</title>
<g id="a_edge93"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.03s)">
<path fill="none" stroke="#000000" d="M876.1976,-569.4846C1120.1887,-567.52 1872.3639,-558.9147 1977,-527 1988.2841,-523.5583 1988.7844,-517.8209 1999.5518,-513 2015.3713,-505.9171 2032.8211,-499.7239 2049.7181,-494.483"/>
<polygon fill="#000000" stroke="#000000" points="2051.0224,-497.7454 2059.5864,-491.5077 2049.0017,-491.0434 2051.0224,-497.7454"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.03s)">
<text text-anchor="middle" x="2015.7241" y="-515.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.newdefer (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="861.2013,-493 738.7987,-493 738.7987,-455 861.2013,-455 861.2013,-493"/>
<text text-anchor="middle" x="800" y="-477" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="800" y="-462" font-family="Times,serif" font-size="15.00" fill="#000000">0.11s(2.55%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N29 -->
<g id="edge46" class="edge">
<title>N17&#45;&gt;N29</title>
<g id="a_edge46"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.11s)">
<path fill="none" stroke="#000000" d="M800,-544.7771C800,-532.065 800,-516.5783 800,-503.3363"/>
<polygon fill="#000000" stroke="#000000" points="803.5001,-503.2935 800,-493.2935 796.5001,-503.2936 803.5001,-503.2935"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.11s)">
<text text-anchor="middle" x="816.4678" y="-515.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N21 -->
<g id="edge52" class="edge">
<title>N18&#45;&gt;N21</title>
<g id="a_edge52"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.10s)">
<path fill="none" stroke="#000000" d="M1943.7416,-977.8298C2023.2096,-957.2409 2132,-921.48 2132,-880 2132,-880 2132,-880 2132,-570 2132,-548.444 2132,-524.1654 2132,-505.4173"/>
<polygon fill="#000000" stroke="#000000" points="2135.5001,-505.3522 2132,-495.3522 2128.5001,-505.3522 2135.5001,-505.3522"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.10s)">
<text text-anchor="middle" x="2148.7241" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="main.(*Integer).Add (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1210.1926,-1320 1111.8074,-1320 1111.8074,-1282 1210.1926,-1282 1210.1926,-1320"/>
<text text-anchor="middle" x="1161" y="-1308" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="1161" y="-1298" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.23%)</text>
<text text-anchor="middle" x="1161" y="-1288" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(2.08%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N34 -->
<g id="edge56" class="edge">
<title>N20&#45;&gt;N34</title>
<g id="a_edge56"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.09s)">
<path fill="none" stroke="#000000" d="M1031.2472,-1384.3538C1056.8275,-1367.921 1094.7193,-1343.5791 1122.9588,-1325.4379"/>
<polygon fill="#000000" stroke="#000000" points="1124.8668,-1328.3722 1131.3886,-1320.0225 1121.0834,-1322.4827 1124.8668,-1328.3722"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.09s)">
<text text-anchor="middle" x="1107.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.assertI2I (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1024.3356,-1321.5 933.6644,-1321.5 933.6644,-1280.5 1024.3356,-1280.5 1024.3356,-1321.5"/>
<text text-anchor="middle" x="979" y="-1308.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="979" y="-1297.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.46%)</text>
<text text-anchor="middle" x="979" y="-1286.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.08s(1.85%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N41 -->
<g id="edge91" class="edge">
<title>N20&#45;&gt;N41</title>
<g id="a_edge91"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.03s)">
<path fill="none" stroke="#000000" d="M998.7093,-1384.3538C995.2703,-1369.8098 990.3664,-1349.0704 986.3106,-1331.9178"/>
<polygon fill="#000000" stroke="#000000" points="989.6228,-1330.7151 983.9156,-1321.7888 982.8107,-1332.3259 989.6228,-1330.7151"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.03s)">
<text text-anchor="middle" x="1008.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N44 -->
<g id="edge109" class="edge">
<title>N20&#45;&gt;N44</title>
<g id="a_edge109"><a xlink:title="main.executeSubtract &#45;&gt; main.(*machine).popValue (0.01s)">
<path fill="none" stroke="#000000" d="M1033.5213,-1384.3723C1040.0919,-1381.1226 1047.1312,-1378.1053 1054,-1376 1120.3072,-1355.6767 1140.3882,-1368.1041 1209,-1358 1287.1919,-1346.485 1375.6309,-1330.4429 1439.5233,-1318.3099"/>
<polygon fill="#000000" stroke="#000000" points="1440.3933,-1321.7072 1449.5616,-1316.3975 1439.0832,-1314.8309 1440.3933,-1321.7072"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*machine).popValue (0.01s)">
<text text-anchor="middle" x="1312.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.convI2I (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="915.7699,-1319 842.2301,-1319 842.2301,-1283 915.7699,-1283 915.7699,-1319"/>
<text text-anchor="middle" x="879" y="-1302.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="879" y="-1294.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(1.16%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N46 -->
<g id="edge110" class="edge">
<title>N20&#45;&gt;N46</title>
<g id="a_edge110"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.01s)">
<path fill="none" stroke="#000000" d="M960.3131,-1390.0284C932.9735,-1381.2095 900.9221,-1369.0389 891.5518,-1358 884.7869,-1350.0305 881.4359,-1339.2276 879.846,-1329.1691"/>
<polygon fill="#000000" stroke="#000000" points="883.3127,-1328.672 878.7572,-1319.1065 876.3533,-1329.425 883.3127,-1328.672"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.01s)">
<text text-anchor="middle" x="907.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="main.(*Integer).Negate (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1318.1297,-1319 1227.8703,-1319 1227.8703,-1283 1318.1297,-1283 1318.1297,-1319"/>
<text text-anchor="middle" x="1273" y="-1302.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="1273" y="-1294.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(1.39%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N79 -->
<g id="edge70" class="edge">
<title>N20&#45;&gt;N79</title>
<g id="a_edge70"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.06s)">
<path fill="none" stroke="#000000" d="M1034.8382,-1384.4719C1041.071,-1381.3702 1047.6472,-1378.3833 1054,-1376 1085.6911,-1364.1108 1095.5498,-1367.6262 1128,-1358 1169.1019,-1345.8073 1179.28,-1342.1353 1219,-1326 1221.2209,-1325.0978 1223.4827,-1324.1538 1225.76,-1323.183"/>
<polygon fill="#000000" stroke="#000000" points="1227.3831,-1326.2933 1235.1423,-1319.0791 1224.5778,-1319.8799 1227.3831,-1326.2933"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.06s)">
<text text-anchor="middle" x="1188.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="main.(*Integer).Multiply (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="823.9756,-1320 708.0244,-1320 708.0244,-1282 823.9756,-1282 823.9756,-1320"/>
<text text-anchor="middle" x="766" y="-1308" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="766" y="-1298" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.23%)</text>
<text text-anchor="middle" x="766" y="-1288" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(2.08%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N35 -->
<g id="edge55" class="edge">
<title>N22&#45;&gt;N35</title>
<g id="a_edge55"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.09s)">
<path fill="none" stroke="#000000" d="M830.8569,-1384.3545C820.1825,-1377.0228 808.5913,-1367.9394 799.5518,-1358 791.7648,-1349.4379 784.9087,-1338.7824 779.4575,-1329.009"/>
<polygon fill="#000000" stroke="#000000" points="782.4581,-1327.1968 774.6771,-1320.0061 776.2757,-1330.4797 782.4581,-1327.1968"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.09s)">
<text text-anchor="middle" x="815.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N41 -->
<g id="edge76" class="edge">
<title>N22&#45;&gt;N41</title>
<g id="a_edge76"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.05s)">
<path fill="none" stroke="#000000" d="M892.391,-1384.456C904.3655,-1376.9451 917.8148,-1367.7136 929,-1358 938.7836,-1349.5036 948.436,-1339.1135 956.6116,-1329.5422"/>
<polygon fill="#000000" stroke="#000000" points="959.3884,-1331.6772 963.1021,-1321.7545 954.0112,-1327.1955 959.3884,-1331.6772"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.05s)">
<text text-anchor="middle" x="958.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N46 -->
<g id="edge83" class="edge">
<title>N22&#45;&gt;N46</title>
<g id="a_edge83"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.04s)">
<path fill="none" stroke="#000000" d="M847.29,-1384.2483C840.3264,-1372.6735 834.3334,-1357.4073 839.5518,-1344 841.915,-1337.9283 845.5804,-1332.1934 849.7447,-1327.0094"/>
<polygon fill="#000000" stroke="#000000" points="852.5359,-1329.1383 856.5837,-1319.3472 847.3136,-1324.477 852.5359,-1329.1383"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.04s)">
<text text-anchor="middle" x="855.7241" y="-1346.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.(*mcentral).cacheSpan (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="166.0479,-403 11.9521,-403 11.9521,-362 166.0479,-362 166.0479,-403"/>
<text text-anchor="middle" x="89" y="-390.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="89" y="-379.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.46%)</text>
<text text-anchor="middle" x="89" y="-368.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.13s(3.01%)</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.(*mcentral).grow (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="138.1374,-312 39.8626,-312 39.8626,-276 138.1374,-276 138.1374,-312"/>
<text text-anchor="middle" x="89" y="-295.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="89" y="-287.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(2.55%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N75 -->
<g id="edge44" class="edge">
<title>N23&#45;&gt;N75</title>
<g id="a_edge44"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.11s)">
<path fill="none" stroke="#000000" d="M89,-361.9739C89,-350.1658 89,-335.1577 89,-322.2491"/>
<polygon fill="#000000" stroke="#000000" points="92.5001,-322.0159 89,-312.016 85.5001,-322.016 92.5001,-322.0159"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.11s)">
<text text-anchor="middle" x="105.4678" y="-332.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.freedefer (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="552.5497,-492 439.4503,-492 439.4503,-456 552.5497,-456 552.5497,-492"/>
<text text-anchor="middle" x="496" y="-476.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="496" y="-462.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.09s(2.08%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N38 -->
<g id="edge58" class="edge">
<title>N24&#45;&gt;N38</title>
<g id="a_edge58"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.09s)">
<path fill="none" stroke="#000000" d="M496,-547.7344C496,-534.3163 496,-517.089 496,-502.6609"/>
<polygon fill="#000000" stroke="#000000" points="499.5001,-502.2828 496,-492.2828 492.5001,-502.2829 499.5001,-502.2828"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.09s)">
<text text-anchor="middle" x="512.7241" y="-515.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.schedule (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1738.7699,-898 1665.2301,-898 1665.2301,-862 1738.7699,-862 1738.7699,-898"/>
<text text-anchor="middle" x="1702" y="-881.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="1702" y="-873.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(2.78%)</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.runSafePointFn (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2103.6055,-787 2010.3945,-787 2010.3945,-751 2103.6055,-751 2103.6055,-787"/>
<text text-anchor="middle" x="2057" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.runSafePointFn</text>
<text text-anchor="middle" x="2057" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.69%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N58 -->
<g id="edge98" class="edge">
<title>N26&#45;&gt;N58</title>
<g id="a_edge98"><a xlink:title="runtime.schedule &#45;&gt; runtime.runSafePointFn (0.03s)">
<path fill="none" stroke="#000000" d="M1739.1692,-878.0474C1795.7451,-873.8813 1905.7786,-861.0335 1990,-822 2004.9786,-815.058 2019.5986,-804.1326 2031.34,-794.0003"/>
<polygon fill="#000000" stroke="#000000" points="2033.8561,-796.4457 2038.9778,-787.1711 2029.1902,-791.2275 2033.8561,-796.4457"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.runSafePointFn (0.03s)">
<text text-anchor="middle" x="2028.7241" y="-810.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.findrunnable (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1379.8209,-787 1296.1791,-787 1296.1791,-751 1379.8209,-751 1379.8209,-787"/>
<text text-anchor="middle" x="1338" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="1338" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.62%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N77 -->
<g id="edge68" class="edge">
<title>N26&#45;&gt;N77</title>
<g id="a_edge68"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.07s)">
<path fill="none" stroke="#000000" d="M1665.0946,-868.7459C1599.7966,-848.8336 1463.7883,-807.3585 1389.3716,-784.6655"/>
<polygon fill="#000000" stroke="#000000" points="1390.3186,-781.2952 1379.7326,-781.7261 1388.2768,-787.9909 1390.3186,-781.2952"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.07s)">
<text text-anchor="middle" x="1525.7241" y="-810.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime._System (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="221.9781,-787 148.0219,-787 148.0219,-751 221.9781,-751 221.9781,-787"/>
<text text-anchor="middle" x="185" y="-770.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="185" y="-762.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(2.55%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N9 -->
<g id="edge45" class="edge">
<title>N27&#45;&gt;N9</title>
<g id="a_edge45"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.11s)">
<path fill="none" stroke="#000000" d="M186.2807,-750.9179C188.1317,-739.0939 192.5604,-724.3446 203.0645,-716 230.7489,-694.0069 445.5951,-680.6863 565.2192,-674.9001"/>
<polygon fill="#000000" stroke="#000000" points="565.6072,-678.3857 575.4292,-674.4134 565.2738,-671.3937 565.6072,-678.3857"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.11s)">
<text text-anchor="middle" x="220.4678" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.getitab (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1012.0196,-1226 899.9804,-1226 899.9804,-1173 1012.0196,-1173 1012.0196,-1226"/>
<text text-anchor="middle" x="956" y="-1210" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="956" y="-1195" font-family="Times,serif" font-size="15.00" fill="#000000">0.10s(2.31%)</text>
<text text-anchor="middle" x="956" y="-1180" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.11s(2.55%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N10 -->
<g id="edge61" class="edge">
<title>N31&#45;&gt;N10</title>
<g id="a_edge61"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.08s)">
<path fill="none" stroke="#000000" d="M1217.2169,-1381.9972C1261.6598,-1366.9268 1314.0381,-1345.7229 1327,-1326 1335.5544,-1312.9836 1319.9543,-1183.5833 1313,-1173 1297.8894,-1150.0042 1286.2351,-1149.2978 1260,-1141 1158.9589,-1109.0423 847.2601,-1100.8052 709.1073,-1098.7064"/>
<polygon fill="#000000" stroke="#000000" points="709.1175,-1095.2062 699.0676,-1098.5601 709.0155,-1102.2055 709.1175,-1095.2062"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.08s)">
<text text-anchor="middle" x="1342.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.semasleep1 (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="399.7582,-492 320.2418,-492 320.2418,-456 399.7582,-456 399.7582,-492"/>
<text text-anchor="middle" x="360" y="-475.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="360" y="-467.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(2.31%)</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.mach_semaphore_timedwait (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="590.6338,-400.5 381.3662,-400.5 381.3662,-364.5 590.6338,-364.5 590.6338,-400.5"/>
<text text-anchor="middle" x="486" y="-385.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_timedwait</text>
<text text-anchor="middle" x="486" y="-372.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.16%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N47 -->
<g id="edge80" class="edge">
<title>N33&#45;&gt;N47</title>
<g id="a_edge80"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_timedwait (0.05s)">
<path fill="none" stroke="#000000" d="M384.8935,-455.9225C404.3945,-441.7612 431.6981,-421.9336 453.017,-406.452"/>
<polygon fill="#000000" stroke="#000000" points="455.1232,-409.248 461.1582,-400.5399 451.01,-403.5839 455.1232,-409.248"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_timedwait (0.05s)">
<text text-anchor="middle" x="447.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.mach_semaphore_wait (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="363.5289,-400.5 184.4711,-400.5 184.4711,-364.5 363.5289,-364.5 363.5289,-400.5"/>
<text text-anchor="middle" x="274" y="-385.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="274" y="-372.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.05s(1.16%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N48 -->
<g id="edge81" class="edge">
<title>N33&#45;&gt;N48</title>
<g id="a_edge81"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.05s)">
<path fill="none" stroke="#000000" d="M343.0092,-455.9225C330.1702,-442.2625 312.3759,-423.3302 298.0724,-408.1119"/>
<polygon fill="#000000" stroke="#000000" points="300.3546,-405.4296 290.9555,-400.5399 295.2539,-410.2236 300.3546,-405.4296"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.05s)">
<text text-anchor="middle" x="339.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="main.Integer.Add (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1207.4839,-1220 1114.5161,-1220 1114.5161,-1179 1207.4839,-1179 1207.4839,-1220"/>
<text text-anchor="middle" x="1161" y="-1207.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="1161" y="-1196.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.02s(0.46%)</text>
<text text-anchor="middle" x="1161" y="-1185.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.08s(1.85%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N39 -->
<g id="edge59" class="edge">
<title>N34&#45;&gt;N39</title>
<g id="a_edge59"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.08s)">
<path fill="none" stroke="#000000" d="M1161,-1281.9086C1161,-1267.4938 1161,-1247.4055 1161,-1230.6714"/>
<polygon fill="#000000" stroke="#000000" points="1164.5001,-1230.2523 1161,-1220.2524 1157.5001,-1230.2524 1164.5001,-1230.2523"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.08s)">
<text text-anchor="middle" x="1177.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="main.Integer.Multiply (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="795.7688,-1218.5 692.2312,-1218.5 692.2312,-1180.5 795.7688,-1180.5 795.7688,-1218.5"/>
<text text-anchor="middle" x="744" y="-1206.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="744" y="-1196.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.23%)</text>
<text text-anchor="middle" x="744" y="-1186.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.08s(1.85%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N40 -->
<g id="edge60" class="edge">
<title>N35&#45;&gt;N40</title>
<g id="a_edge60"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.08s)">
<path fill="none" stroke="#000000" d="M761.862,-1281.9086C758.6047,-1266.881 754.011,-1245.6871 750.2978,-1228.5559"/>
<polygon fill="#000000" stroke="#000000" points="753.6584,-1227.5374 748.1195,-1218.5058 746.8173,-1229.0203 753.6584,-1227.5374"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.08s)">
<text text-anchor="middle" x="773.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.(*mheap).alloc (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="143.8526,-226 34.1474,-226 34.1474,-188 143.8526,-188 143.8526,-226"/>
<text text-anchor="middle" x="89" y="-214" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="89" y="-204" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.23%)</text>
<text text-anchor="middle" x="89" y="-194" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(2.08%)</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N32 -->
<g id="edge62" class="edge">
<title>N36&#45;&gt;N32</title>
<g id="a_edge62"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.08s)">
<path fill="none" stroke="#000000" d="M89,-187.9053C89,-176.3736 89,-161.4389 89,-148.4228"/>
<polygon fill="#000000" stroke="#000000" points="92.5001,-148.0574 89,-138.0574 85.5001,-148.0575 92.5001,-148.0574"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.08s)">
<text text-anchor="middle" x="105.7241" y="-158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N18 -->
<g id="edge84" class="edge">
<title>N37&#45;&gt;N18</title>
<g id="a_edge84"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.04s)">
<path fill="none" stroke="#000000" d="M1779.6076,-1074.4256C1785.5948,-1063.5793 1793.5344,-1050.9437 1802.5518,-1041 1806.0349,-1037.1591 1809.8909,-1033.4267 1813.9166,-1029.8635"/>
<polygon fill="#000000" stroke="#000000" points="1816.404,-1032.3452 1821.8141,-1023.2358 1811.9041,-1026.9832 1816.404,-1032.3452"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.04s)">
<text text-anchor="middle" x="1818.7241" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N10 -->
<g id="edge75" class="edge">
<title>N39&#45;&gt;N10</title>
<g id="a_edge75"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.05s)">
<path fill="none" stroke="#000000" d="M1137.2889,-1178.8056C1120.7279,-1165.607 1097.4614,-1149.447 1074,-1141 1008.545,-1117.4336 812.8533,-1105.4952 708.7896,-1100.6692"/>
<polygon fill="#000000" stroke="#000000" points="708.8554,-1097.1687 698.7067,-1100.2106 708.5373,-1104.1614 708.8554,-1097.1687"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.05s)">
<text text-anchor="middle" x="1118.7241" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N37 -->
<g id="edge108" class="edge">
<title>N39&#45;&gt;N37</title>
<g id="a_edge108"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.01s)">
<path fill="none" stroke="#000000" d="M1207.7739,-1180.5476C1216.0768,-1177.6846 1224.7179,-1175.0189 1233,-1173 1343.3522,-1146.0995 1373.6563,-1153.4843 1486.5518,-1141 1570.6177,-1131.7037 1592.7885,-1138.1446 1676,-1123 1685.0885,-1121.3459 1694.587,-1119.2247 1703.8847,-1116.9188"/>
<polygon fill="#000000" stroke="#000000" points="1705.0498,-1120.2333 1713.866,-1114.3575 1703.3099,-1113.453 1705.0498,-1120.2333"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.01s)">
<text text-anchor="middle" x="1502.7241" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N10 -->
<g id="edge66" class="edge">
<title>N40&#45;&gt;N10</title>
<g id="a_edge66"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.07s)">
<path fill="none" stroke="#000000" d="M724.8146,-1180.4086C710.7021,-1166.3653 691.1781,-1146.9371 674.6316,-1130.4716"/>
<polygon fill="#000000" stroke="#000000" points="676.826,-1127.7176 667.2688,-1123.1449 671.8884,-1132.6795 676.826,-1127.7176"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.07s)">
<text text-anchor="middle" x="716.7241" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N28 -->
<g id="edge71" class="edge">
<title>N41&#45;&gt;N28</title>
<g id="a_edge71"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.06s)">
<path fill="none" stroke="#000000" d="M974.3456,-1280.46C971.466,-1267.7522 967.6861,-1251.0712 964.306,-1236.1548"/>
<polygon fill="#000000" stroke="#000000" points="967.6693,-1235.1596 962.0458,-1226.1804 960.8424,-1236.7066 967.6693,-1235.1596"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.06s)">
<text text-anchor="middle" x="984.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.mcall (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1762.7699,-1014.5 1689.2301,-1014.5 1689.2301,-978.5 1762.7699,-978.5 1762.7699,-1014.5"/>
<text text-anchor="middle" x="1726" y="-998.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="1726" y="-990.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.07s(1.62%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N26 -->
<g id="edge73" class="edge">
<title>N43&#45;&gt;N26</title>
<g id="a_edge73"><a xlink:title="runtime.mcall ... runtime.schedule (0.06s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1722.25,-978.2969C1718.3753,-959.4882 1712.2763,-929.8828 1707.7834,-908.0738"/>
<polygon fill="#000000" stroke="#000000" points="1711.1695,-907.1634 1705.7237,-898.0753 1704.3134,-908.5759 1711.1695,-907.1634"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.mcall ... runtime.schedule (0.06s)">
<text text-anchor="middle" x="1732.7241" y="-940.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N28 -->
<g id="edge77" class="edge">
<title>N46&#45;&gt;N28</title>
<g id="a_edge77"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.05s)">
<path fill="none" stroke="#000000" d="M892.7661,-1282.8538C902.933,-1269.452 917.0906,-1250.7897 929.4326,-1234.5206"/>
<polygon fill="#000000" stroke="#000000" points="932.435,-1236.3539 935.6905,-1226.2716 926.8582,-1232.1232 932.435,-1236.3539"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.05s)">
<text text-anchor="middle" x="938.7241" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.morestack (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1666.7582,-1116 1591.2418,-1116 1591.2418,-1080 1666.7582,-1080 1666.7582,-1116"/>
<text text-anchor="middle" x="1629" y="-1099.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="1629" y="-1091.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.05s(1.16%)</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.goschedImpl (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1671.2073,-1014.5 1586.7927,-1014.5 1586.7927,-978.5 1671.2073,-978.5 1671.2073,-1014.5"/>
<text text-anchor="middle" x="1629" y="-998.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="1629" y="-990.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(1.39%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N80 -->
<g id="edge79" class="edge">
<title>N49&#45;&gt;N80</title>
<g id="a_edge79"><a xlink:title="runtime.morestack ... runtime.goschedImpl (0.05s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1629,-1079.8538C1629,-1064.6487 1629,-1042.6722 1629,-1025.1019"/>
<polygon fill="#000000" stroke="#000000" points="1632.5001,-1024.8313 1629,-1014.8313 1625.5001,-1024.8313 1632.5001,-1024.8313"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.morestack ... runtime.goschedImpl (0.05s)">
<text text-anchor="middle" x="1645.7241" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N7 -->
<g id="edge103" class="edge">
<title>N51&#45;&gt;N7</title>
<g id="a_edge103"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.02s)">
<path fill="none" stroke="#000000" d="M1339.7078,-990.6028C1205.7476,-972.767 802.3886,-919.0626 611.3955,-893.6332"/>
<polygon fill="#000000" stroke="#000000" points="611.7246,-890.1462 601.3501,-892.2958 610.8007,-897.085 611.7246,-890.1462"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.02s)">
<text text-anchor="middle" x="1040.7241" y="-940.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N21 -->
<g id="edge112" class="edge">
<title>N51&#45;&gt;N21</title>
<g id="a_edge112"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.01s)">
<path fill="none" stroke="#000000" d="M1413.2829,-977.3886C1462.1734,-946.0041 1564.1332,-882.7682 1656,-840 1785.5026,-779.7106 1847.0398,-819.9642 1958,-730 1992.5817,-701.9619 1986.354,-682.0756 2011,-645 2044.5442,-594.5387 2085.678,-537.3293 2110.3139,-503.5295"/>
<polygon fill="#000000" stroke="#000000" points="2113.4348,-505.1906 2116.506,-495.0506 2107.7818,-501.0622 2113.4348,-505.1906"/>
</a>
</g>
<g id="a_edge112&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.01s)">
<text text-anchor="middle" x="1988.7241" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N7 -->
<g id="edge95" class="edge">
<title>N53&#45;&gt;N7</title>
<g id="a_edge95"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.03s)">
<path fill="none" stroke="#000000" d="M1703.8668,-1180.3821C1698.8821,-1177.8727 1693.8257,-1175.3563 1689,-1173 1641.8311,-1149.9685 1624.5783,-1153.6994 1582,-1123 1506.0069,-1068.2082 1521.1768,-1011.126 1437,-970 1364.1735,-934.4194 837.2199,-899.4213 611.3466,-885.8753"/>
<polygon fill="#000000" stroke="#000000" points="611.3391,-882.3687 601.1481,-885.266 610.9216,-889.3562 611.3391,-882.3687"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.03s)">
<text text-anchor="middle" x="1536.7241" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.gcDrain (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="846.7699,-1974 773.2301,-1974 773.2301,-1938 846.7699,-1938 846.7699,-1974"/>
<text text-anchor="middle" x="810" y="-1957.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcDrain</text>
<text text-anchor="middle" x="810" y="-1949.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.69%)</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.mProf_Malloc (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="135.5441,-689.5 46.4559,-689.5 46.4559,-653.5 135.5441,-653.5 135.5441,-689.5"/>
<text text-anchor="middle" x="91" y="-673.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mProf_Malloc</text>
<text text-anchor="middle" x="91" y="-665.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.03s(0.69%)</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N56 -->
<g id="edge96" class="edge">
<title>N57&#45;&gt;N56</title>
<g id="a_edge96"><a xlink:title="runtime.profilealloc &#45;&gt; runtime.mProf_Malloc (0.03s)">
<path fill="none" stroke="#000000" d="M91,-750.661C91,-736.3618 91,-716.2505 91,-699.8776"/>
<polygon fill="#000000" stroke="#000000" points="94.5001,-699.7567 91,-689.7568 87.5001,-699.7568 94.5001,-699.7567"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.profilealloc &#45;&gt; runtime.mProf_Malloc (0.03s)">
<text text-anchor="middle" x="107.7241" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.notewakeup (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="685.5365,-312 604.4635,-312 604.4635,-276 685.5365,-276 685.5365,-312"/>
<text text-anchor="middle" x="645" y="-295.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notewakeup</text>
<text text-anchor="middle" x="645" y="-287.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.44s(10.19%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N66 -->
<g id="edge97" class="edge">
<title>N58&#45;&gt;N66</title>
<g id="a_edge97"><a xlink:title="runtime.runSafePointFn &#45;&gt; runtime.notewakeup (0.03s)">
<path fill="none" stroke="#000000" d="M2055.4725,-750.9201C2052.1959,-723.8485 2042.0417,-672.9783 2011,-645 1807.7896,-461.8441 918.5859,-331.0047 695.7705,-300.6963"/>
<polygon fill="#000000" stroke="#000000" points="696.0484,-297.2021 685.6693,-299.3292 695.1095,-304.1389 696.0484,-297.2021"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="runtime.runSafePointFn &#45;&gt; runtime.notewakeup (0.03s)">
<text text-anchor="middle" x="1788.7241" y="-515.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run (4.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="772.7502,-1888 633.2498,-1888 633.2498,-1852 772.7502,-1852 772.7502,-1888"/>
<text text-anchor="middle" x="703" y="-1871.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.(*App).Run</text>
<text text-anchor="middle" x="703" y="-1863.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 4.02s(93.06%)</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction (4.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="776.1837,-1802 629.8163,-1802 629.8163,-1766 776.1837,-1766 776.1837,-1802"/>
<text text-anchor="middle" x="703" y="-1785.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.HandleAction</text>
<text text-anchor="middle" x="703" y="-1777.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 4.02s(93.06%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N60 -->
<g id="edge1" class="edge">
<title>N59&#45;&gt;N60</title>
<g id="a_edge1"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (4.02s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-1851.7616C703,-1840.3597 703,-1825.4342 703,-1812.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1812.2121 703,-1802.2121 698.6251,-1812.2121 707.3751,-1812.2121"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (4.02s)">
<text text-anchor="middle" x="719.7241" y="-1822.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.02s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="main.handleFlags (4.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="741.7699,-1716 664.2301,-1716 664.2301,-1680 741.7699,-1680 741.7699,-1716"/>
<text text-anchor="middle" x="703" y="-1699.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.handleFlags</text>
<text text-anchor="middle" x="703" y="-1691.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 4.02s(93.06%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N62 -->
<g id="edge2" class="edge">
<title>N60&#45;&gt;N62</title>
<g id="a_edge2"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (4.02s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-1765.7616C703,-1754.3597 703,-1739.4342 703,-1726.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1726.2121 703,-1716.2121 698.6251,-1726.2121 707.3751,-1726.2121"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (4.02s)">
<text text-anchor="middle" x="719.7241" y="-1736.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.02s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="main.(*machine).executeString (4.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="761.407,-1630 644.593,-1630 644.593,-1594 761.407,-1594 761.407,-1630"/>
<text text-anchor="middle" x="703" y="-1613.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeString</text>
<text text-anchor="middle" x="703" y="-1605.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 4.02s(93.06%)</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N2 -->
<g id="edge3" class="edge">
<title>N61&#45;&gt;N2</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (4.02s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-1593.5668C703,-1582.5486 703,-1568.0634 703,-1554.3335"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1554.0513 703,-1544.0514 698.6251,-1554.0514 707.3751,-1554.0513"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (4.02s)">
<text text-anchor="middle" x="719.7241" y="-1564.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.02s</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N61 -->
<g id="edge4" class="edge">
<title>N62&#45;&gt;N61</title>
<g id="a_edge4"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (4.02s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-1679.7616C703,-1668.3597 703,-1653.4342 703,-1640.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1640.2121 703,-1630.2121 698.6251,-1640.2121 707.3751,-1640.2121"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (4.02s)">
<text text-anchor="middle" x="719.7241" y="-1650.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.02s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="main.main (4.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="741.7699,-1974 664.2301,-1974 664.2301,-1938 741.7699,-1938 741.7699,-1974"/>
<text text-anchor="middle" x="703" y="-1957.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.main</text>
<text text-anchor="middle" x="703" y="-1949.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 4.02s(93.06%)</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N59 -->
<g id="edge5" class="edge">
<title>N63&#45;&gt;N59</title>
<g id="a_edge5"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (4.02s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-1937.7616C703,-1926.3597 703,-1911.4342 703,-1898.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1898.2121 703,-1888.2121 698.6251,-1898.2121 707.3751,-1898.2121"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (4.02s)">
<text text-anchor="middle" x="719.7241" y="-1908.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.02s</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N63 -->
<g id="edge7" class="edge">
<title>N64&#45;&gt;N63</title>
<g id="a_edge7"><a xlink:title="runtime.main &#45;&gt; main.main (4.02s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M703,-2023.7616C703,-2012.3597 703,-1997.4342 703,-1984.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="707.3751,-1984.2121 703,-1974.2121 698.6251,-1984.2121 707.3751,-1984.2121"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="runtime.main &#45;&gt; main.main (4.02s)">
<text text-anchor="middle" x="719.7241" y="-1994.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.02s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.mach_semrelease (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="694.7973,-137 595.2027,-137 595.2027,-101 694.7973,-101 694.7973,-137"/>
<text text-anchor="middle" x="645" y="-120.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mach_semrelease</text>
<text text-anchor="middle" x="645" y="-112.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.44s(10.19%)</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N11 -->
<g id="edge16" class="edge">
<title>N65&#45;&gt;N11</title>
<g id="a_edge16"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.44s)">
<path fill="none" stroke="#000000" d="M645,-100.8759C645,-89.3972 645,-74.1669 645,-60.365"/>
<polygon fill="#000000" stroke="#000000" points="648.5001,-60.1748 645,-50.1748 641.5001,-60.1749 648.5001,-60.1748"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.44s)">
<text text-anchor="middle" x="661.7241" y="-70.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.semawakeup (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="687.1995,-225 602.8005,-225 602.8005,-189 687.1995,-189 687.1995,-225"/>
<text text-anchor="middle" x="645" y="-208.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semawakeup</text>
<text text-anchor="middle" x="645" y="-200.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.44s(10.19%)</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N67 -->
<g id="edge17" class="edge">
<title>N66&#45;&gt;N67</title>
<g id="a_edge17"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (0.44s)">
<path fill="none" stroke="#000000" d="M645,-275.9735C645,-264.1918 645,-248.5607 645,-235.1581"/>
<polygon fill="#000000" stroke="#000000" points="648.5001,-235.0033 645,-225.0034 641.5001,-235.0034 648.5001,-235.0033"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (0.44s)">
<text text-anchor="middle" x="661.7241" y="-246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N65 -->
<g id="edge18" class="edge">
<title>N67&#45;&gt;N65</title>
<g id="a_edge18"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (0.44s)">
<path fill="none" stroke="#000000" d="M645,-188.7663C645,-176.8492 645,-161.0384 645,-147.4817"/>
<polygon fill="#000000" stroke="#000000" points="648.5001,-147.2103 645,-137.2103 641.5001,-147.2103 648.5001,-147.2103"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (0.44s)">
<text text-anchor="middle" x="661.7241" y="-158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.startm (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="681.7699,-400.5 608.2301,-400.5 608.2301,-364.5 681.7699,-364.5 681.7699,-400.5"/>
<text text-anchor="middle" x="645" y="-384.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.startm</text>
<text text-anchor="middle" x="645" y="-376.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.40s(9.26%)</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N66 -->
<g id="edge19" class="edge">
<title>N68&#45;&gt;N66</title>
<g id="a_edge19"><a xlink:title="runtime.startm &#45;&gt; runtime.notewakeup (0.40s)">
<path fill="none" stroke="#000000" d="M645,-364.1627C645,-352.0979 645,-336.065 645,-322.3712"/>
<polygon fill="#000000" stroke="#000000" points="648.5001,-322.0109 645,-312.011 641.5001,-322.011 648.5001,-322.0109"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.startm &#45;&gt; runtime.notewakeup (0.40s)">
<text text-anchor="middle" x="661.7241" y="-332.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.wakep (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="681.7699,-492 608.2301,-492 608.2301,-456 681.7699,-456 681.7699,-492"/>
<text text-anchor="middle" x="645" y="-475.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.wakep</text>
<text text-anchor="middle" x="645" y="-467.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.40s(9.26%)</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N68 -->
<g id="edge20" class="edge">
<title>N69&#45;&gt;N68</title>
<g id="a_edge20"><a xlink:title="runtime.wakep &#45;&gt; runtime.startm (0.40s)">
<path fill="none" stroke="#000000" d="M645,-455.9225C645,-443.0144 645,-425.3985 645,-410.6573"/>
<polygon fill="#000000" stroke="#000000" points="648.5001,-410.5399 645,-400.5399 641.5001,-410.5399 648.5001,-410.5399"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.wakep &#45;&gt; runtime.startm (0.40s)">
<text text-anchor="middle" x="661.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N9 -->
<g id="edge21" class="edge">
<title>N70&#45;&gt;N9</title>
<g id="a_edge21"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.39s)">
<path fill="none" stroke="#000000" d="M645,-750.661C645,-738.7648 645,-722.8459 645,-708.4036"/>
<polygon fill="#000000" stroke="#000000" points="648.5001,-708.2269 645,-698.2269 641.5001,-708.2269 648.5001,-708.2269"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.39s)">
<text text-anchor="middle" x="661.7241" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N69 -->
<g id="edge23" class="edge">
<title>N71&#45;&gt;N69</title>
<g id="a_edge23"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.wakep (0.39s)">
<path fill="none" stroke="#000000" d="M645,-551.9431C645,-538.0862 645,-518.6861 645,-502.7075"/>
<polygon fill="#000000" stroke="#000000" points="648.5001,-502.3023 645,-492.3023 641.5001,-502.3023 648.5001,-502.3023"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.wakep (0.39s)">
<text text-anchor="middle" x="661.7241" y="-515.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N9 -->
<g id="edge37" class="edge">
<title>N72&#45;&gt;N9</title>
<g id="a_edge37"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.15s)">
<path fill="none" stroke="#000000" d="M557.0609,-750.8895C571.238,-738.0907 590.6638,-720.5535 607.6522,-705.2168"/>
<polygon fill="#000000" stroke="#000000" points="610.1812,-707.6489 615.2585,-698.3499 605.4905,-702.4531 610.1812,-707.6489"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.15s)">
<text text-anchor="middle" x="611.7241" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.(*mcache).refill (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="188.7464,-492 95.2536,-492 95.2536,-456 188.7464,-456 188.7464,-492"/>
<text text-anchor="middle" x="142" y="-475.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="142" y="-467.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(3.01%)</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N74 -->
<g id="edge39" class="edge">
<title>N73&#45;&gt;N74</title>
<g id="a_edge39"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.13s)">
<path fill="none" stroke="#000000" d="M206.9526,-551.9431C194.85,-537.42 177.6732,-516.8078 164.023,-500.4277"/>
<polygon fill="#000000" stroke="#000000" points="166.3426,-497.7439 157.2519,-492.3023 160.965,-502.2252 166.3426,-497.7439"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.13s)">
<text text-anchor="middle" x="201.7241" y="-515.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N23 -->
<g id="edge40" class="edge">
<title>N74&#45;&gt;N23</title>
<g id="a_edge40"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.13s)">
<path fill="none" stroke="#000000" d="M131.5289,-455.9225C124.3028,-443.4473 114.5297,-426.5748 106.1743,-412.1499"/>
<polygon fill="#000000" stroke="#000000" points="108.9702,-409.9939 100.9293,-403.095 102.913,-413.5025 108.9702,-409.9939"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.13s)">
<text text-anchor="middle" x="135.7241" y="-423.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N36 -->
<g id="edge57" class="edge">
<title>N75&#45;&gt;N36</title>
<g id="a_edge57"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.09s)">
<path fill="none" stroke="#000000" d="M89,-275.9735C89,-264.506 89,-249.3916 89,-236.2349"/>
<polygon fill="#000000" stroke="#000000" points="92.5001,-236.2103 89,-226.2103 85.5001,-236.2104 92.5001,-236.2103"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.09s)">
<text text-anchor="middle" x="105.7241" y="-246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N33 -->
<g id="edge50" class="edge">
<title>N76&#45;&gt;N33</title>
<g id="a_edge50"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.10s)">
<path fill="none" stroke="#000000" d="M360,-551.9431C360,-538.0862 360,-518.6861 360,-502.7075"/>
<polygon fill="#000000" stroke="#000000" points="363.5001,-502.3023 360,-492.3023 356.5001,-502.3023 363.5001,-502.3023"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.10s)">
<text text-anchor="middle" x="376.7241" y="-515.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N9 -->
<g id="edge78" class="edge">
<title>N77&#45;&gt;N9</title>
<g id="a_edge78"><a xlink:title="runtime.findrunnable ... runtime.systemstack (0.05s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1296.2104,-763.1205C1183.5032,-747.2634 871.8594,-703.4174 724.3561,-682.6648"/>
<polygon fill="#000000" stroke="#000000" points="724.843,-679.1989 714.4529,-681.2715 723.8677,-686.1307 724.843,-679.1989"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.findrunnable ... runtime.systemstack (0.05s)">
<text text-anchor="middle" x="1069.7241" y="-718.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N54 -->
<g id="edge102" class="edge">
<title>N78&#45;&gt;N54</title>
<g id="a_edge102"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcDrain (0.02s)">
<path fill="none" stroke="#000000" d="M810,-2023.7616C810,-2012.3597 810,-1997.4342 810,-1984.494"/>
<polygon fill="#000000" stroke="#000000" points="813.5001,-1984.2121 810,-1974.2121 806.5001,-1984.2121 813.5001,-1984.2121"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcDrain (0.02s)">
<text text-anchor="middle" x="826.7241" y="-1994.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N10 -->
<g id="edge69" class="edge">
<title>N79&#45;&gt;N10</title>
<g id="a_edge69"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.06s)">
<path fill="none" stroke="#000000" d="M1275.6499,-1282.7438C1279.3997,-1248.9835 1281.7994,-1176.9671 1241,-1141 1221.2895,-1123.6241 861.0879,-1106.9463 708.9407,-1100.6446"/>
<polygon fill="#000000" stroke="#000000" points="708.9248,-1097.1411 698.7892,-1100.2268 708.6368,-1104.1351 708.9248,-1097.1411"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.06s)">
<text text-anchor="middle" x="1292.7241" y="-1195.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N26 -->
<g id="edge72" class="edge">
<title>N80&#45;&gt;N26</title>
<g id="a_edge72"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.06s)">
<path fill="none" stroke="#000000" d="M1640.4063,-978.2969C1652.4598,-959.0608 1671.5897,-928.5315 1685.3328,-906.5991"/>
<polygon fill="#000000" stroke="#000000" points="1688.3299,-908.4076 1690.6738,-898.0753 1682.3982,-904.6907 1688.3299,-908.4076"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.06s)">
<text text-anchor="middle" x="1681.7241" y="-940.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-iteration9.svg.















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2337)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-2337 3192.5215,-2337 3192.5215,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="198.0732,-2141 198.0732,-2325 858.0732,-2325 858.0732,-2141 198.0732,-2141"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="850.2452,-2317 205.9013,-2317 205.9013,-2149 850.2452,-2149 850.2452,-2317"/>
<text text-anchor="start" x="213.7373" y="-2287.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="213.7373" y="-2255.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="213.7373" y="-2223.4" font-family="Times,serif" font-size="32.00" fill="#000000">3.64s of 3.73s total (97.59%)</text>
<text text-anchor="start" x="213.7373" y="-2191.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 29 nodes (cum &lt;= 0.02s)</text>
<text text-anchor="start" x="213.7373" y="-2159.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 100 (cum &gt;= 0.11s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (3.46s)">
<polygon fill="#f8f8f8" stroke="#000000" points="945.8431,-2251 868.3034,-2251 868.3034,-2215 945.8431,-2215 945.8431,-2251"/>
<text text-anchor="middle" x="907.0732" y="-2234.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="907.0732" y="-2226.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.46s(92.76%)</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.gcMarkTermination (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2010.3196,-792 1903.8268,-792 1903.8268,-756 2010.3196,-756 2010.3196,-792"/>
<text text-anchor="middle" x="1957.0732" y="-775.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkTermination</text>
<text text-anchor="middle" x="1957.0732" y="-767.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.04s(1.07%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N47 -->
<g id="edge77" class="edge">
<title>N1&#45;&gt;N47</title>
<g id="a_edge77"><a xlink:title="runtime.goexit ... runtime.gcMarkTermination (0.04s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M910.7943,-2214.7076C916.3085,-2192.891 928.9493,-2157.3271 955.0732,-2141 1058.7568,-2076.1995 3155.0732,-2203.2677 3155.0732,-2081 3155.0732,-2081 3155.0732,-2081 3155.0732,-886 3155.0732,-828.4991 2268.614,-787.0488 2020.7654,-776.5833"/>
<polygon fill="#000000" stroke="#000000" points="2020.6233,-773.0743 2010.4852,-776.1515 2020.3295,-780.0681 2020.6233,-773.0743"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.goexit ... runtime.gcMarkTermination (0.04s)">
<text text-anchor="middle" x="3171.7974" y="-1540.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.main (3.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="945.8431,-2099 868.3034,-2099 868.3034,-2063 945.8431,-2063 945.8431,-2099"/>
<text text-anchor="middle" x="907.0732" y="-2082.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.main</text>
<text text-anchor="middle" x="907.0732" y="-2074.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.39s(90.88%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N72 -->
<g id="edge6" class="edge">
<title>N1&#45;&gt;N72</title>
<g id="a_edge6"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (3.39s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M907.0732,-2214.9667C907.0732,-2188.7983 907.0732,-2140.0561 907.0732,-2109.1368"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="911.4483,-2109.0098 907.0732,-2099.0098 902.6983,-2109.0099 911.4483,-2109.0098"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (3.39s)">
<text text-anchor="middle" x="923.7974" y="-2119.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.39s</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (3.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1031.5106,-1583 782.6358,-1583 782.6358,-1506 1031.5106,-1506 1031.5106,-1583"/>
<text text-anchor="middle" x="907.0732" y="-1560.6" font-family="Times,serif" font-size="23.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="907.0732" y="-1537.6" font-family="Times,serif" font-size="23.00" fill="#000000">0.37s(9.92%)</text>
<text text-anchor="middle" x="907.0732" y="-1514.6" font-family="Times,serif" font-size="23.00" fill="#000000">of 3.39s(90.88%)</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).loadLoopWords.func1 (3.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="830.0615,-1446 686.0849,-1446 686.0849,-1410 830.0615,-1410 830.0615,-1446"/>
<text text-anchor="middle" x="758.0732" y="-1429.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="758.0732" y="-1421.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.39s(90.88%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N3 -->
<g id="edge79" class="edge">
<title>N2&#45;&gt;N3</title>
<g id="a_edge79"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.03s)">
<path fill="none" stroke="#000000" d="M799.596,-1505.9829C791.9336,-1500.6951 784.8067,-1494.7267 778.625,-1488 770.6076,-1479.2758 765.6991,-1467.2844 762.7024,-1456.3141"/>
<polygon fill="#000000" stroke="#000000" points="766.0381,-1455.2039 760.376,-1446.2489 759.2179,-1456.7803 766.0381,-1455.2039"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.03s)">
<text text-anchor="middle" x="795.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).execute.func7 (3.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="965.6357,-1446 848.5107,-1446 848.5107,-1410 965.6357,-1410 965.6357,-1446"/>
<text text-anchor="middle" x="907.0732" y="-1429.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).execute.func7</text>
<text text-anchor="middle" x="907.0732" y="-1421.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.36s(90.08%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N4 -->
<g id="edge78" class="edge">
<title>N2&#45;&gt;N4</title>
<g id="a_edge78"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (0.03s)">
<path fill="none" stroke="#000000" d="M877.3452,-1505.8463C874.1845,-1500.1161 871.4583,-1494.0845 869.625,-1488 865.9911,-1475.9399 871.282,-1463.9113 878.9288,-1453.8252"/>
<polygon fill="#000000" stroke="#000000" points="881.615,-1456.0692 885.4411,-1446.1893 876.2889,-1451.5269 881.615,-1456.0692"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (0.03s)">
<text text-anchor="middle" x="886.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.(*machine).execute.func8 (2.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1189.066,-1454.5 983.0805,-1454.5 983.0805,-1401.5 1189.066,-1401.5 1189.066,-1454.5"/>
<text text-anchor="middle" x="1086.0732" y="-1438.5" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*machine).execute.func8</text>
<text text-anchor="middle" x="1086.0732" y="-1423.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.09s(2.41%)</text>
<text text-anchor="middle" x="1086.0732" y="-1408.5" font-family="Times,serif" font-size="15.00" fill="#000000">of 2.15s(57.64%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N5 -->
<g id="edge11" class="edge">
<title>N2&#45;&gt;N5</title>
<g id="a_edge11"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func8 (1.01s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M952.178,-1505.7139C965.7294,-1494.8619 980.9144,-1483.4589 995.625,-1474 1003.3512,-1469.0321 1011.6823,-1464.1796 1020.0512,-1459.6016"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1021.9543,-1462.5529 1029.1205,-1454.7493 1018.6521,-1456.3808 1021.9543,-1462.5529"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func8 (1.01s)">
<text text-anchor="middle" x="1012.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.01s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.newobject (0.99s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1142.6797,-1029 1029.4667,-1029 1029.4667,-982 1142.6797,-982 1142.6797,-1029"/>
<text text-anchor="middle" x="1086.0732" y="-1014.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="1086.0732" y="-1001.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.07%)</text>
<text text-anchor="middle" x="1086.0732" y="-988.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.99s(26.54%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N7 -->
<g id="edge80" class="edge">
<title>N2&#45;&gt;N7</title>
<g id="a_edge80"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.03s)">
<path fill="none" stroke="#000000" d="M782.5503,-1510.4307C735.744,-1494.8993 690.5452,-1475.6187 677.0732,-1456 662.9842,-1435.4828 663.1198,-1420.6097 677.0732,-1400 689.1495,-1382.1629 702.1461,-1390.1798 722.0732,-1382 755.9778,-1368.0826 774.306,-1377.8986 798.0732,-1350 821.2117,-1322.8394 817.0732,-1307.6803 817.0732,-1272 817.0732,-1272 817.0732,-1272 817.0732,-1111.5 817.0732,-1068.116 939.7171,-1034.9916 1019.3811,-1018.0517"/>
<polygon fill="#000000" stroke="#000000" points="1020.2815,-1021.4392 1029.3539,-1015.9674 1018.8494,-1014.5872 1020.2815,-1021.4392"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.03s)">
<text text-anchor="middle" x="834.7974" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="runtime.deferproc (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="630.2465,-1453 513.8999,-1453 513.8999,-1403 630.2465,-1403 630.2465,-1453"/>
<text text-anchor="middle" x="572.0732" y="-1437.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="572.0732" y="-1423.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.06s(1.61%)</text>
<text text-anchor="middle" x="572.0732" y="-1409.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.32s(8.58%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N13 -->
<g id="edge20" class="edge">
<title>N2&#45;&gt;N13</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.32s)">
<path fill="none" stroke="#000000" d="M782.833,-1530.7642C714.8521,-1521.3326 638.8469,-1507.0605 610.625,-1488 601.0409,-1481.5271 593.3183,-1471.79 587.3748,-1462.0324"/>
<polygon fill="#000000" stroke="#000000" points="590.3488,-1460.1795 582.4142,-1453.1586 584.2387,-1463.5952 590.3488,-1460.1795"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.32s)">
<text text-anchor="middle" x="627.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2249.2061,-1451.5 2022.9404,-1451.5 2022.9404,-1404.5 2249.2061,-1404.5 2249.2061,-1451.5"/>
<text text-anchor="middle" x="2136.0732" y="-1437.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="2136.0732" y="-1424.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.07%)</text>
<text text-anchor="middle" x="2136.0732" y="-1411.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.30s(8.04%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge21" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.30s)">
<path fill="none" stroke="#000000" d="M1031.6088,-1542.8294C1213.9676,-1539.0899 1564.0306,-1527.0039 1859.0732,-1488 1918.1908,-1480.1848 1983.4131,-1466.3227 2035.7117,-1453.8904"/>
<polygon fill="#000000" stroke="#000000" points="2036.7487,-1457.241 2045.6574,-1451.5064 2035.117,-1450.4338 2036.7487,-1457.241"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.30s)">
<text text-anchor="middle" x="1951.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.executeMultiply (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1663.4088,-1448.5 1550.7377,-1448.5 1550.7377,-1407.5 1663.4088,-1407.5 1663.4088,-1448.5"/>
<text text-anchor="middle" x="1607.0732" y="-1435.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeMultiply</text>
<text text-anchor="middle" x="1607.0732" y="-1424.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1607.0732" y="-1413.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.22s(5.90%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N15 -->
<g id="edge28" class="edge">
<title>N2&#45;&gt;N15</title>
<g id="a_edge28"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.22s)">
<path fill="none" stroke="#000000" d="M1031.4729,-1538.3622C1161.2479,-1529.383 1369.4609,-1507.6728 1542.0732,-1456 1545.8712,-1454.863 1549.7444,-1453.5679 1553.6135,-1452.1725"/>
<polygon fill="#000000" stroke="#000000" points="1555.0777,-1455.3601 1563.1774,-1448.5303 1552.5864,-1448.8184 1555.0777,-1455.3601"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.22s)">
<text text-anchor="middle" x="1491.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="main.executeSubtract (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1532.6969,-1450 1413.4496,-1450 1413.4496,-1406 1532.6969,-1406 1532.6969,-1450"/>
<text text-anchor="middle" x="1473.0732" y="-1436.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.executeSubtract</text>
<text text-anchor="middle" x="1473.0732" y="-1424.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.54%)</text>
<text text-anchor="middle" x="1473.0732" y="-1412.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.21s(5.63%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N16 -->
<g id="edge29" class="edge">
<title>N2&#45;&gt;N16</title>
<g id="a_edge29"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.21s)">
<path fill="none" stroke="#000000" d="M1031.5191,-1529.6983C1133.0546,-1515.8741 1279.5506,-1491.9227 1404.0732,-1456 1406.868,-1455.1937 1409.7046,-1454.3129 1412.5539,-1453.3769"/>
<polygon fill="#000000" stroke="#000000" points="1413.9509,-1456.5969 1422.249,-1450.0096 1411.6542,-1449.9843 1413.9509,-1456.5969"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.21s)">
<text text-anchor="middle" x="1340.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.deferreturn (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="495.5996,-1454.5 362.5469,-1454.5 362.5469,-1401.5 495.5996,-1401.5 495.5996,-1454.5"/>
<text text-anchor="middle" x="429.0732" y="-1438.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="429.0732" y="-1423.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.08s(2.14%)</text>
<text text-anchor="middle" x="429.0732" y="-1408.5" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.20s(5.36%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N20 -->
<g id="edge33" class="edge">
<title>N2&#45;&gt;N20</title>
<g id="a_edge33"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.20s)">
<path fill="none" stroke="#000000" d="M782.6166,-1532.5058C715.5551,-1523.9954 631.9636,-1510.0604 559.625,-1488 535.4076,-1480.6147 509.8711,-1469.6537 487.8685,-1459.1134"/>
<polygon fill="#000000" stroke="#000000" points="489.1923,-1455.8652 478.6693,-1454.6335 486.1275,-1462.1586 489.1923,-1455.8652"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.20s)">
<text text-anchor="middle" x="576.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2541.1985,-1456 2266.948,-1456 2266.948,-1400 2541.1985,-1400 2541.1985,-1456"/>
<text text-anchor="middle" x="2404.0732" y="-1439.2" font-family="Times,serif" font-size="16.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2404.0732" y="-1423.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.11s(2.95%)</text>
<text text-anchor="middle" x="2404.0732" y="-1407.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.17s(4.56%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N21 -->
<g id="edge34" class="edge">
<title>N2&#45;&gt;N21</title>
<g id="a_edge34"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.17s)">
<path fill="none" stroke="#000000" d="M1031.437,-1540.2603C1230.3578,-1532.9483 1632.3065,-1515.9965 1972.0732,-1488 2096.3089,-1477.7631 2129.9239,-1475.2944 2256.4872,-1456.2063"/>
<polygon fill="#000000" stroke="#000000" points="2257.2078,-1459.6371 2266.5714,-1454.6801 2256.1603,-1452.716 2257.2078,-1459.6371"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.17s)">
<text text-anchor="middle" x="2140.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.growslice (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2004.8021,-1448.5 1909.3443,-1448.5 1909.3443,-1407.5 2004.8021,-1407.5 2004.8021,-1448.5"/>
<text text-anchor="middle" x="1957.0732" y="-1435.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="1957.0732" y="-1424.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1957.0732" y="-1413.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.16s(4.29%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N24 -->
<g id="edge36" class="edge">
<title>N2&#45;&gt;N24</title>
<g id="a_edge36"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.16s)">
<path fill="none" stroke="#000000" d="M1031.5722,-1536.1526C1175.0345,-1526.2007 1417.8046,-1508.3373 1626.0732,-1488 1748.0983,-1476.0843 1782.463,-1490.6401 1900.0732,-1456 1903.4543,-1455.0042 1906.8798,-1453.8204 1910.2859,-1452.5112"/>
<polygon fill="#000000" stroke="#000000" points="1911.905,-1455.6279 1919.7808,-1448.5412 1909.2046,-1449.1697 1911.905,-1455.6279"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.16s)">
<text text-anchor="middle" x="1838.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="main.(*CodeQuotation).nextWord (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2828.6205,-1448 2597.5259,-1448 2597.5259,-1408 2828.6205,-1408 2828.6205,-1448"/>
<text text-anchor="middle" x="2713.0732" y="-1431.2" font-family="Times,serif" font-size="16.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2713.0732" y="-1415.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.11s(2.95%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N30 -->
<g id="edge41" class="edge">
<title>N2&#45;&gt;N30</title>
<g id="a_edge41"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.11s)">
<path fill="none" stroke="#000000" d="M1031.3418,-1543.1526C1393.8242,-1538.8244 2433.7828,-1523.4365 2583.0732,-1488 2613.6332,-1480.7461 2645.6966,-1466.0355 2670.3341,-1452.9965"/>
<polygon fill="#000000" stroke="#000000" points="2672.261,-1455.9336 2679.3945,-1448.1 2668.9329,-1449.7753 2672.261,-1455.9336"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.11s)">
<text text-anchor="middle" x="2639.541" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1394.7064,-1450 1207.4401,-1450 1207.4401,-1406 1394.7064,-1406 1394.7064,-1450"/>
<text text-anchor="middle" x="1301.0732" y="-1436.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(intPusher).(main.pushInt)&#45;fm</text>
<text text-anchor="middle" x="1301.0732" y="-1424.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.8%)</text>
<text text-anchor="middle" x="1301.0732" y="-1412.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.07s(1.88%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N34 -->
<g id="edge49" class="edge">
<title>N2&#45;&gt;N34</title>
<g id="a_edge49"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.07s)">
<path fill="none" stroke="#000000" d="M1031.4668,-1507.7186C1091.7582,-1489.8914 1162.5988,-1468.9448 1216.5311,-1452.9978"/>
<polygon fill="#000000" stroke="#000000" points="1217.8012,-1456.2722 1226.3984,-1450.0803 1215.8163,-1449.5595 1217.8012,-1456.2722"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.07s)">
<text text-anchor="middle" x="1155.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1891.042,-1450 1681.1045,-1450 1681.1045,-1406 1891.042,-1406 1891.042,-1450"/>
<text text-anchor="middle" x="1786.0732" y="-1436.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="1786.0732" y="-1424.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.8%)</text>
<text text-anchor="middle" x="1786.0732" y="-1412.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.06s(1.61%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N39 -->
<g id="edge55" class="edge">
<title>N2&#45;&gt;N39</title>
<g id="a_edge55"><a xlink:title="main.(*machine).execute ... main.(*machine).loadLocalWords.func3 (0.06s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1031.5047,-1536.688C1154.134,-1528.0938 1346.6297,-1512.2023 1512.0732,-1488 1583.8289,-1477.5031 1601.2879,-1471.7637 1672.0732,-1456 1677.3572,-1454.8233 1682.772,-1453.5893 1688.2335,-1452.3226"/>
<polygon fill="#000000" stroke="#000000" points="1689.1583,-1455.7008 1698.0967,-1450.0126 1687.562,-1448.8852 1689.1583,-1455.7008"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="main.(*machine).execute ... main.(*machine).loadLocalWords.func3 (0.06s)">
<text text-anchor="middle" x="1605.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.ifaceeq (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2940.7282,-1450 2847.4183,-1450 2847.4183,-1406 2940.7282,-1406 2940.7282,-1450"/>
<text text-anchor="middle" x="2894.0732" y="-1436.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="2894.0732" y="-1424.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.8%)</text>
<text text-anchor="middle" x="2894.0732" y="-1412.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.05s(1.34%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N44 -->
<g id="edge63" class="edge">
<title>N2&#45;&gt;N44</title>
<g id="a_edge63"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.05s)">
<path fill="none" stroke="#000000" d="M1031.5708,-1542.8465C1377.2065,-1537.8797 2343.9104,-1521.3347 2660.0732,-1488 2740.0095,-1479.5719 2761.7936,-1481.3427 2838.0732,-1456 2839.9687,-1455.3703 2841.8805,-1454.6867 2843.7967,-1453.9602"/>
<polygon fill="#000000" stroke="#000000" points="2845.4443,-1457.0669 2853.3571,-1450.0214 2842.7777,-1450.5946 2845.4443,-1457.0669"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.05s)">
<text text-anchor="middle" x="2787.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="main.(*machine).execute.func1 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3126.6675,-1446 2959.479,-1446 2959.479,-1410 3126.6675,-1410 3126.6675,-1446"/>
<text text-anchor="middle" x="3043.0732" y="-1430.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="3043.0732" y="-1418.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.54%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N57 -->
<g id="edge89" class="edge">
<title>N2&#45;&gt;N57</title>
<g id="a_edge89"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.02s)">
<path fill="none" stroke="#000000" d="M1031.5781,-1543.9181C1397.0533,-1541.7154 2462.7875,-1531.6258 2808.0732,-1488 2866.77,-1480.5838 2931.826,-1463.2342 2978.579,-1449.089"/>
<polygon fill="#000000" stroke="#000000" points="2979.7307,-1452.3969 2988.2689,-1446.124 2977.6824,-1445.7033 2979.7307,-1452.3969"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.02s)">
<text text-anchor="middle" x="2896.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.memeqbody (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2463.7183,-1129.5 2348.4282,-1129.5 2348.4282,-1093.5 2463.7183,-1093.5 2463.7183,-1129.5"/>
<text text-anchor="middle" x="2406.0732" y="-1113.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2406.0732" y="-1101.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.54%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N64 -->
<g id="edge102" class="edge">
<title>N2&#45;&gt;N64</title>
<g id="a_edge102"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.01s)">
<path fill="none" stroke="#000000" d="M1031.3024,-1540.429C1256.5999,-1532.706 1747.5718,-1514.314 2161.0732,-1488 2343.9869,-1476.3599 2569.0732,-1611.2836 2569.0732,-1428 2569.0732,-1428 2569.0732,-1428 2569.0732,-1217.5 2569.0732,-1169.3837 2518.5388,-1141.9869 2473.7452,-1127.1537"/>
<polygon fill="#000000" stroke="#000000" points="2474.5893,-1123.7503 2463.9999,-1124.0883 2472.4888,-1130.4277 2474.5893,-1123.7503"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.01s)">
<text text-anchor="middle" x="2585.7974" y="-1319.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge8" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge8"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (3.36s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M779.767,-1446.0923C794.3137,-1458.1258 813.9684,-1474.1967 831.625,-1488 836.5321,-1491.8362 841.6479,-1495.7807 846.8019,-1499.7164"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="844.299,-1503.3093 854.9078,-1505.8771 849.5936,-1496.3429 844.299,-1503.3093"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (3.36s)">
<text text-anchor="middle" x="848.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.36s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N7 -->
<g id="edge84" class="edge">
<title>N3&#45;&gt;N7</title>
<g id="a_edge84"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.03s)">
<path fill="none" stroke="#000000" d="M796.4005,-1409.9858C827.103,-1392.6018 865.0732,-1363.098 865.0732,-1323.5 865.0732,-1323.5 865.0732,-1323.5 865.0732,-1111.5 865.0732,-1076.843 954.5461,-1043.3746 1019.6319,-1023.6134"/>
<polygon fill="#000000" stroke="#000000" points="1020.8681,-1026.897 1029.4472,-1020.6801 1018.8637,-1020.19 1020.8681,-1026.897"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.03s)">
<text text-anchor="middle" x="881.7974" y="-1213.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N2 -->
<g id="edge9" class="edge">
<title>N4&#45;&gt;N2</title>
<g id="a_edge9"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (3.33s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M907.0732,-1446.0913C907.0732,-1459.3592 907.0732,-1478.0427 907.0732,-1495.5704"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="902.6983,-1495.7071 907.0732,-1505.7072 911.4483,-1495.7072 902.6983,-1495.7071"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (3.33s)">
<text text-anchor="middle" x="923.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.33s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="main.(*CodeQuotation).cloneCode (0.59s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1198.0102,-1350 974.1363,-1350 974.1363,-1297 1198.0102,-1297 1198.0102,-1350"/>
<text text-anchor="middle" x="1086.0732" y="-1334" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="1086.0732" y="-1319" font-family="Times,serif" font-size="15.00" fill="#000000">0.08s(2.14%)</text>
<text text-anchor="middle" x="1086.0732" y="-1304" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.59s(15.82%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N9 -->
<g id="edge81" class="edge">
<title>N4&#45;&gt;N9</title>
<g id="a_edge81"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (0.03s)">
<path fill="none" stroke="#000000" d="M938.2527,-1409.7975C963.9615,-1394.7887 1001.0419,-1373.1412 1031.6323,-1355.2826"/>
<polygon fill="#000000" stroke="#000000" points="1033.6129,-1358.1791 1040.4843,-1350.1148 1030.0836,-1352.1339 1033.6129,-1358.1791"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (0.03s)">
<text text-anchor="middle" x="1024.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N2 -->
<g id="edge10" class="edge">
<title>N5&#45;&gt;N2</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).execute (1.14s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M1066.7774,-1454.5357C1057.5317,-1465.9102 1045.7229,-1478.6915 1033.0732,-1488 1026.8959,-1492.5458 1020.2947,-1496.8378 1013.4721,-1500.8684"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1011.695,-1497.8525 1004.7269,-1505.8335 1015.1511,-1503.9398 1011.695,-1497.8525"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).execute (1.14s)">
<text text-anchor="middle" x="1064.7974" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.14s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N9 -->
<g id="edge13" class="edge">
<title>N5&#45;&gt;N9</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*CodeQuotation).cloneCode (0.56s)">
<path fill="none" stroke="#000000" d="M1086.0732,-1401.3599C1086.0732,-1388.8312 1086.0732,-1373.6926 1086.0732,-1360.1079"/>
<polygon fill="#000000" stroke="#000000" points="1089.5733,-1360.0915 1086.0732,-1350.0915 1082.5733,-1360.0915 1089.5733,-1360.0915"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*CodeQuotation).cloneCode (0.56s)">
<text text-anchor="middle" x="1102.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.56s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.convT2I (0.55s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1234.1419,-1138 1114.0046,-1138 1114.0046,-1085 1234.1419,-1085 1234.1419,-1138"/>
<text text-anchor="middle" x="1174.0732" y="-1122" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1174.0732" y="-1107" font-family="Times,serif" font-size="15.00" fill="#000000">0.09s(2.41%)</text>
<text text-anchor="middle" x="1174.0732" y="-1092" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.55s(14.75%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N10 -->
<g id="edge16" class="edge">
<title>N5&#45;&gt;N10</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; runtime.convT2I (0.36s)">
<path fill="none" stroke="#000000" d="M1020.3213,-1401.4C998.7505,-1389.1466 977.2155,-1372.2736 965.0732,-1350 953.7986,-1329.3179 957.0775,-1319.157 965.0732,-1297 992.7143,-1220.4031 1017.96,-1206.2056 1082.0732,-1156 1089.1517,-1150.457 1097.0324,-1145.3649 1105.1205,-1140.7623"/>
<polygon fill="#000000" stroke="#000000" points="1106.8364,-1143.8134 1113.9502,-1135.962 1103.4929,-1137.6634 1106.8364,-1143.8134"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; runtime.convT2I (0.36s)">
<text text-anchor="middle" x="994.7974" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.mallocgc (1.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1178.183,-926 993.9634,-926 993.9634,-846 1178.183,-846 1178.183,-926"/>
<text text-anchor="middle" x="1086.0732" y="-902.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="1086.0732" y="-878.8" font-family="Times,serif" font-size="24.00" fill="#000000">0.48s(12.87%)</text>
<text text-anchor="middle" x="1086.0732" y="-854.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 1.10s(29.49%)</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.heapBitsSetType (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1258.2794,-796 1059.8671,-796 1059.8671,-752 1258.2794,-752 1258.2794,-796"/>
<text text-anchor="middle" x="1159.0732" y="-777.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1159.0732" y="-759.6" font-family="Times,serif" font-size="18.00" fill="#000000">0.17s(4.56%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N23 -->
<g id="edge35" class="edge">
<title>N6&#45;&gt;N23</title>
<g id="a_edge35"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.17s)">
<path fill="none" stroke="#000000" d="M1112.2217,-845.8818C1121.0637,-832.316 1130.7891,-817.3948 1139.0767,-804.6796"/>
<polygon fill="#000000" stroke="#000000" points="1142.0277,-806.5618 1144.556,-796.273 1136.1634,-802.7395 1142.0277,-806.5618"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.17s)">
<text text-anchor="middle" x="1147.7974" y="-816.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.memclr (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="545.2917,-399.5 432.8548,-399.5 432.8548,-361.5 545.2917,-361.5 545.2917,-399.5"/>
<text text-anchor="middle" x="489.0732" y="-383.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="489.0732" y="-368.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.07s(1.88%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N38 -->
<g id="edge105" class="edge">
<title>N6&#45;&gt;N38</title>
<g id="a_edge105"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.01s)">
<path fill="none" stroke="#000000" d="M1178.3828,-878.5295C1295.956,-866.4171 1484.0732,-837.1673 1484.0732,-774 1484.0732,-774 1484.0732,-774 1484.0732,-472 1484.0732,-348.7517 2077.2574,-492.9567 1146.0732,-419 930.2593,-401.8596 673.9975,-389.001 555.3891,-383.4758"/>
<polygon fill="#000000" stroke="#000000" points="555.5249,-379.9784 545.3735,-383.0114 555.2006,-386.9709 555.5249,-379.9784"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.01s)">
<text text-anchor="middle" x="1500.7974" y="-613.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.stkbucket (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="825.2738,-792 708.8727,-792 708.8727,-756 825.2738,-756 825.2738,-792"/>
<text text-anchor="middle" x="767.0732" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="767.0732" y="-762.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.05s(1.34%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N46 -->
<g id="edge67" class="edge">
<title>N6&#45;&gt;N46</title>
<g id="a_edge67"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.05s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M993.8052,-853.605C940.5503,-834.9073 875.0557,-811.9123 828.1747,-795.4526"/>
<polygon fill="#000000" stroke="#000000" points="829.0593,-792.0537 818.4645,-792.0433 826.7404,-798.6585 829.0593,-792.0537"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.05s)">
<text text-anchor="middle" x="933.7974" y="-816.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.gcStart (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1041.8431,-792 968.3033,-792 968.3033,-756 1041.8431,-756 1041.8431,-792"/>
<text text-anchor="middle" x="1005.0732" y="-775.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcStart</text>
<text text-anchor="middle" x="1005.0732" y="-767.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.25s(6.70%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N78 -->
<g id="edge27" class="edge">
<title>N6&#45;&gt;N78</title>
<g id="a_edge27"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.25s)">
<path fill="none" stroke="#000000" d="M1057.0592,-845.8818C1046.1857,-830.8469 1034.1081,-814.147 1024.3329,-800.6306"/>
<polygon fill="#000000" stroke="#000000" points="1026.9737,-798.3096 1018.2774,-792.2577 1021.3016,-802.4117 1026.9737,-798.3096"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.25s)">
<text text-anchor="middle" x="1060.7974" y="-816.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.(*mcache).nextFree (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="950.1989,-792 843.9476,-792 843.9476,-756 950.1989,-756 950.1989,-792"/>
<text text-anchor="middle" x="897.0732" y="-775.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="897.0732" y="-767.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(2.95%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N80 -->
<g id="edge45" class="edge">
<title>N6&#45;&gt;N80</title>
<g id="a_edge45"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.11s)">
<path fill="none" stroke="#000000" d="M1018.3737,-845.8818C990.8545,-829.5741 960.0298,-811.3076 936.3403,-797.2694"/>
<polygon fill="#000000" stroke="#000000" points="938.0194,-794.196 927.6322,-792.109 934.4508,-800.2181 938.0194,-794.196"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.11s)">
<text text-anchor="middle" x="1002.541" y="-816.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N6 -->
<g id="edge12" class="edge">
<title>N7&#45;&gt;N6</title>
<g id="a_edge12"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (0.95s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M1086.0732,-981.8906C1086.0732,-968.8341 1086.0732,-952.0895 1086.0732,-936.2575"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1089.5733,-936.0332 1086.0732,-926.0332 1082.5733,-936.0333 1089.5733,-936.0332"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (0.95s)">
<text text-anchor="middle" x="1102.7974" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.95s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.systemstack (0.92s)">
<polygon fill="#f8f8f8" stroke="#000000" points="974.8523,-702 819.2942,-702 819.2942,-643 974.8523,-643 974.8523,-702"/>
<text text-anchor="middle" x="897.0732" y="-684.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="897.0732" y="-667.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.14s(3.75%)</text>
<text text-anchor="middle" x="897.0732" y="-650.4" font-family="Times,serif" font-size="17.00" fill="#000000">of 0.92s(24.66%)</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.deferproc.func1 (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1340.1221,-593 1188.0244,-593 1188.0244,-543 1340.1221,-543 1340.1221,-593"/>
<text text-anchor="middle" x="1264.0732" y="-577.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="1264.0732" y="-563.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.05s(1.34%)</text>
<text text-anchor="middle" x="1264.0732" y="-549.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.21s(5.63%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N17 -->
<g id="edge32" class="edge">
<title>N8&#45;&gt;N17</title>
<g id="a_edge32"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.21s)">
<path fill="none" stroke="#000000" d="M974.9427,-650.8016C1029.1702,-635.6318 1103.4429,-614.7373 1177.6381,-593.4033"/>
<polygon fill="#000000" stroke="#000000" points="1178.9877,-596.6571 1187.6294,-590.5276 1177.0515,-589.9302 1178.9877,-596.6571"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.21s)">
<text text-anchor="middle" x="1125.7974" y="-613.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.(*mcentral).grow (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="159.6993,-588.5 30.4472,-588.5 30.4472,-547.5 159.6993,-547.5 159.6993,-588.5"/>
<text text-anchor="middle" x="95.0732" y="-575.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="95.0732" y="-564.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="95.0732" y="-553.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(2.41%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N32 -->
<g id="edge47" class="edge">
<title>N8&#45;&gt;N32</title>
<g id="a_edge47"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).grow (0.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M819.1738,-670.5346C684.735,-665.6998 401.2458,-649.1451 169.0732,-593 166.8778,-592.4691 164.6548,-591.9014 162.4172,-591.3041"/>
<polygon fill="#000000" stroke="#000000" points="163.1268,-587.8676 152.5518,-588.5164 161.2232,-594.6038 163.1268,-587.8676"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).grow (0.09s)">
<text text-anchor="middle" x="343.7974" y="-613.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.deferreturn.func1 (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="318.0166,-590 178.1299,-590 178.1299,-546 318.0166,-546 318.0166,-590"/>
<text text-anchor="middle" x="248.0732" y="-576.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="248.0732" y="-564.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.54%)</text>
<text text-anchor="middle" x="248.0732" y="-552.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.07s(1.88%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N37 -->
<g id="edge54" class="edge">
<title>N8&#45;&gt;N37</title>
<g id="a_edge54"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.07s)">
<path fill="none" stroke="#000000" d="M819.3476,-665.832C708.9344,-655.4189 500.7822,-632.3068 327.0732,-593 326.3366,-592.8333 325.597,-592.663 324.8548,-592.4891"/>
<polygon fill="#000000" stroke="#000000" points="325.646,-589.0793 315.096,-590.0528 323.9504,-595.8709 325.646,-589.0793"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.07s)">
<text text-anchor="middle" x="499.7974" y="-613.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.mach_semaphore_wait (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="528.1807,-586 335.9658,-586 335.9658,-550 528.1807,-550 528.1807,-586"/>
<text text-anchor="middle" x="432.0732" y="-570.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="432.0732" y="-556.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.05s(1.34%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N45 -->
<g id="edge68" class="edge">
<title>N8&#45;&gt;N45</title>
<g id="a_edge68"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.05s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M819.3922,-655.7305C746.4261,-639.8877 634.2375,-615.2941 537.0732,-593 530.5695,-591.5077 523.8435,-589.9469 517.0829,-588.3654"/>
<polygon fill="#000000" stroke="#000000" points="517.7102,-584.9176 507.1749,-586.0392 516.1102,-591.7323 517.7102,-584.9176"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.05s)">
<text text-anchor="middle" x="692.7974" y="-613.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.mach_semaphore_timedwait (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="755.7071,-586 546.4394,-586 546.4394,-550 755.7071,-550 755.7071,-586"/>
<text text-anchor="middle" x="651.0732" y="-570.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_timedwait</text>
<text text-anchor="middle" x="651.0732" y="-557.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.07%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N48 -->
<g id="edge76" class="edge">
<title>N8&#45;&gt;N48</title>
<g id="a_edge76"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.04s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M827.5659,-642.9735C788.0471,-626.1861 739.3788,-605.5119 703.1647,-590.1283"/>
<polygon fill="#000000" stroke="#000000" points="704.3425,-586.826 693.77,-586.1375 701.6056,-593.2687 704.3425,-586.826"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.04s)">
<text text-anchor="middle" x="798.7974" y="-613.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.(*mheap).alloc.func1 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="884.8705,-586 773.276,-586 773.276,-550 884.8705,-550 884.8705,-586"/>
<text text-anchor="middle" x="829.0732" y="-569.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="829.0732" y="-561.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.54%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N58 -->
<g id="edge100" class="edge">
<title>N8&#45;&gt;N58</title>
<g id="a_edge100"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.02s)">
<path fill="none" stroke="#000000" d="M877.7691,-642.834C867.9491,-627.743 856.1038,-609.5396 846.5549,-594.8651"/>
<polygon fill="#000000" stroke="#000000" points="849.3324,-592.7163 840.9447,-586.2436 843.4652,-596.5342 849.3324,-592.7163"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.02s)">
<text text-anchor="middle" x="882.7974" y="-613.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.gcMarkTermination.func1 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1029.5342,-586 902.6123,-586 902.6123,-550 1029.5342,-550 1029.5342,-586"/>
<text text-anchor="middle" x="966.0732" y="-569.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkTermination.func1</text>
<text text-anchor="middle" x="966.0732" y="-561.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.54%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N63 -->
<g id="edge101" class="edge">
<title>N8&#45;&gt;N63</title>
<g id="a_edge101"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcMarkTermination.func1 (0.02s)">
<path fill="none" stroke="#000000" d="M916.6613,-642.834C926.6257,-627.743 938.6451,-609.5396 948.3345,-594.8651"/>
<polygon fill="#000000" stroke="#000000" points="951.4378,-596.5171 954.0272,-586.2436 945.5963,-592.66 951.4378,-596.5171"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcMarkTermination.func1 (0.02s)">
<text text-anchor="middle" x="952.7974" y="-613.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.startTheWorldWithSema (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1170.4214,-586 1047.7251,-586 1047.7251,-550 1170.4214,-550 1170.4214,-586"/>
<text text-anchor="middle" x="1109.0732" y="-569.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.startTheWorldWithSema</text>
<text text-anchor="middle" x="1109.0732" y="-561.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.27s(7.24%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N77 -->
<g id="edge25" class="edge">
<title>N8&#45;&gt;N77</title>
<g id="a_edge25"><a xlink:title="runtime.systemstack &#45;&gt; runtime.startTheWorldWithSema (0.27s)">
<path fill="none" stroke="#000000" d="M956.9739,-642.9735C990.5959,-626.4004 1031.903,-606.0391 1062.9809,-590.72"/>
<polygon fill="#000000" stroke="#000000" points="1064.8556,-593.6981 1072.2776,-586.1375 1061.7606,-587.4195 1064.8556,-593.6981"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.startTheWorldWithSema (0.27s)">
<text text-anchor="middle" x="1032.7974" y="-613.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N7 -->
<g id="edge14" class="edge">
<title>N9&#45;&gt;N7</title>
<g id="a_edge14"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.51s)">
<path fill="none" stroke="#000000" d="M1086.0732,-1296.9345C1086.0732,-1239.3615 1086.0732,-1103.1516 1086.0732,-1039.4486"/>
<polygon fill="#000000" stroke="#000000" points="1089.5733,-1039.15 1086.0732,-1029.15 1082.5733,-1039.15 1089.5733,-1039.15"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.51s)">
<text text-anchor="middle" x="1102.7974" y="-1158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.51s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N7 -->
<g id="edge15" class="edge">
<title>N10&#45;&gt;N7</title>
<g id="a_edge15"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.40s)">
<path fill="none" stroke="#000000" d="M1151.8671,-1084.7517C1139.924,-1070.3657 1125.1149,-1052.5274 1112.5724,-1037.4194"/>
<polygon fill="#000000" stroke="#000000" points="1114.9507,-1034.8047 1105.8701,-1029.3463 1109.5648,-1039.276 1114.9507,-1034.8047"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.40s)">
<text text-anchor="middle" x="1151.7974" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.typedmemmove (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2061.2283,-1035 1878.9181,-1035 1878.9181,-976 2061.2283,-976 2061.2283,-1035"/>
<text text-anchor="middle" x="1970.0732" y="-1017.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="1970.0732" y="-1000.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.15s(4.02%)</text>
<text text-anchor="middle" x="1970.0732" y="-983.4" font-family="Times,serif" font-size="17.00" fill="#000000">of 0.21s(5.63%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N19 -->
<g id="edge59" class="edge">
<title>N10&#45;&gt;N19</title>
<g id="a_edge59"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.06s)">
<path fill="none" stroke="#000000" d="M1234.2289,-1103.4893C1369.8141,-1085.434 1700.5069,-1041.397 1868.5159,-1019.024"/>
<polygon fill="#000000" stroke="#000000" points="1869.1552,-1022.4698 1878.6057,-1017.6804 1868.2312,-1015.5311 1869.1552,-1022.4698"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.06s)">
<text text-anchor="middle" x="1611.7974" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="runtime.mach_semaphore_signal (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1262.9876,-52 955.1589,-52 955.1589,0 1262.9876,0 1262.9876,-52"/>
<text text-anchor="middle" x="1109.0732" y="-30.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="1109.0732" y="-8.4" font-family="Times,serif" font-size="22.00" fill="#000000">0.34s(9.12%)</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="runtime.notewakeup (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1149.6097,-310 1068.5368,-310 1068.5368,-274 1149.6097,-274 1149.6097,-310"/>
<text text-anchor="middle" x="1109.0732" y="-293.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notewakeup</text>
<text text-anchor="middle" x="1109.0732" y="-285.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.34s(9.12%)</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.semawakeup (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1151.2727,-224 1066.8738,-224 1066.8738,-188 1151.2727,-188 1151.2727,-224"/>
<text text-anchor="middle" x="1109.0732" y="-207.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semawakeup</text>
<text text-anchor="middle" x="1109.0732" y="-199.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.34s(9.12%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N74 -->
<g id="edge18" class="edge">
<title>N12&#45;&gt;N74</title>
<g id="a_edge18"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (0.34s)">
<path fill="none" stroke="#000000" d="M1109.0732,-273.7616C1109.0732,-262.3597 1109.0732,-247.4342 1109.0732,-234.494"/>
<polygon fill="#000000" stroke="#000000" points="1112.5733,-234.2121 1109.0732,-224.2121 1105.5733,-234.2121 1112.5733,-234.2121"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.notewakeup &#45;&gt; runtime.semawakeup (0.34s)">
<text text-anchor="middle" x="1125.7974" y="-244.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N8 -->
<g id="edge31" class="edge">
<title>N13&#45;&gt;N8</title>
<g id="a_edge31"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.21s)">
<path fill="none" stroke="#000000" d="M606.8946,-1402.8708C628.8484,-1383.8763 653.0732,-1355.636 653.0732,-1323.5 653.0732,-1323.5 653.0732,-1323.5 653.0732,-774 653.0732,-739.0543 739.4723,-709.7575 809.4454,-691.7608"/>
<polygon fill="#000000" stroke="#000000" points="810.361,-695.1395 819.1992,-689.297 808.6466,-688.3527 810.361,-695.1395"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.21s)">
<text text-anchor="middle" x="669.7974" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.getcallerpc (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="789.5264,-1341.5 680.6201,-1341.5 680.6201,-1305.5 789.5264,-1305.5 789.5264,-1341.5"/>
<text text-anchor="middle" x="735.0732" y="-1325.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.getcallerpc</text>
<text text-anchor="middle" x="735.0732" y="-1313.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.8%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N53 -->
<g id="edge86" class="edge">
<title>N13&#45;&gt;N53</title>
<g id="a_edge86"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallerpc (0.03s)">
<path fill="none" stroke="#000000" d="M629.9064,-1402.9629C642.4983,-1396.7041 655.5058,-1389.59 667.0732,-1382 681.9196,-1372.2585 697.0308,-1359.5893 709.2257,-1348.533"/>
<polygon fill="#000000" stroke="#000000" points="711.8167,-1350.9044 716.7863,-1341.5473 707.0663,-1345.763 711.8167,-1350.9044"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallerpc (0.03s)">
<text text-anchor="middle" x="701.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.getcallersp (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="483.3705,-1341.5 374.7759,-1341.5 374.7759,-1305.5 483.3705,-1305.5 483.3705,-1341.5"/>
<text text-anchor="middle" x="429.0732" y="-1325.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.getcallersp</text>
<text text-anchor="middle" x="429.0732" y="-1313.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.8%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N54 -->
<g id="edge104" class="edge">
<title>N13&#45;&gt;N54</title>
<g id="a_edge104"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallersp (0.01s)">
<path fill="none" stroke="#000000" d="M537.8212,-1402.9696C514.9618,-1386.2647 485.0549,-1364.4097 462.391,-1347.8476"/>
<polygon fill="#000000" stroke="#000000" points="464.2283,-1344.8553 454.0893,-1341.781 460.0981,-1350.507 464.2283,-1344.8553"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.getcallersp (0.01s)">
<text text-anchor="middle" x="521.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.mapassign1 (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2152.8039,-1350 2015.3426,-1350 2015.3426,-1297 2152.8039,-1297 2152.8039,-1350"/>
<text text-anchor="middle" x="2084.0732" y="-1334" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="2084.0732" y="-1319" font-family="Times,serif" font-size="15.00" fill="#000000">0.08s(2.14%)</text>
<text text-anchor="middle" x="2084.0732" y="-1304" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.21s(5.63%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N18 -->
<g id="edge30" class="edge">
<title>N14&#45;&gt;N18</title>
<g id="a_edge30"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.21s)">
<path fill="none" stroke="#000000" d="M2124.2736,-1404.2873C2117.6232,-1390.9226 2109.1848,-1373.9646 2101.758,-1359.0396"/>
<polygon fill="#000000" stroke="#000000" points="2104.8781,-1357.4534 2097.2896,-1350.0598 2098.6111,-1360.5719 2104.8781,-1357.4534"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.21s)">
<text text-anchor="middle" x="2127.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.assertI2T (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2016.9649,-1132 1923.1816,-1132 1923.1816,-1091 2016.9649,-1091 2016.9649,-1132"/>
<text text-anchor="middle" x="1970.0732" y="-1119.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="1970.0732" y="-1108.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1970.0732" y="-1097.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.08s(2.14%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N33 -->
<g id="edge90" class="edge">
<title>N14&#45;&gt;N33</title>
<g id="a_edge90"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M2073.5095,-1404.4705C2048.69,-1392.0018 2022.2567,-1374.1655 2006.0732,-1350 1963.1811,-1285.9524 1963.3591,-1190.6982 1966.8446,-1142.2311"/>
<polygon fill="#000000" stroke="#000000" points="1970.3487,-1142.3229 1967.675,-1132.071 1963.372,-1141.7526 1970.3487,-1142.3229"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="1992.7974" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="main.(*machine).popValue (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2317.0283,-1341.5 2171.1181,-1341.5 2171.1181,-1305.5 2317.0283,-1305.5 2317.0283,-1341.5"/>
<text text-anchor="middle" x="2244.0732" y="-1325.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="2244.0732" y="-1313.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.03s(0.8%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N52 -->
<g id="edge82" class="edge">
<title>N14&#45;&gt;N52</title>
<g id="a_edge82"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M2160.5801,-1404.2873C2177.6345,-1387.7856 2200.3506,-1365.8057 2217.7824,-1348.9388"/>
<polygon fill="#000000" stroke="#000000" points="2220.6277,-1351.0559 2225.3805,-1341.5869 2215.7601,-1346.0253 2220.6277,-1351.0559"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="2212.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.assertI2I (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1564.7126,-1345.5 1467.4339,-1345.5 1467.4339,-1301.5 1564.7126,-1301.5 1564.7126,-1345.5"/>
<text text-anchor="middle" x="1516.0732" y="-1331.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="1516.0732" y="-1319.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.54%)</text>
<text text-anchor="middle" x="1516.0732" y="-1307.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.13s(3.49%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N26 -->
<g id="edge56" class="edge">
<title>N15&#45;&gt;N26</title>
<g id="a_edge56"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.06s)">
<path fill="none" stroke="#000000" d="M1595.1761,-1407.3107C1587.8041,-1395.2748 1577.7305,-1380.1343 1567.0732,-1368 1562.4364,-1362.7205 1557.1831,-1357.4794 1551.8544,-1352.5469"/>
<polygon fill="#000000" stroke="#000000" points="1553.8433,-1349.6301 1544.0562,-1345.5724 1549.1767,-1354.8477 1553.8433,-1349.6301"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.06s)">
<text text-anchor="middle" x="1594.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="main.(*Integer).Multiply (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1709.0464,-1344 1583.1001,-1344 1583.1001,-1303 1709.0464,-1303 1709.0464,-1344"/>
<text text-anchor="middle" x="1646.0732" y="-1331.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="1646.0732" y="-1320.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1646.0732" y="-1309.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(3.22%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N28 -->
<g id="edge39" class="edge">
<title>N15&#45;&gt;N28</title>
<g id="a_edge39"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.12s)">
<path fill="none" stroke="#000000" d="M1614.7784,-1407.3542C1620.4939,-1392.0396 1628.3748,-1370.9226 1634.798,-1353.7117"/>
<polygon fill="#000000" stroke="#000000" points="1638.1666,-1354.6956 1638.3841,-1344.1029 1631.6085,-1352.248 1638.1666,-1354.6956"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.12s)">
<text text-anchor="middle" x="1644.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.convI2I (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1449.7565,-1344 1362.3899,-1344 1362.3899,-1303 1449.7565,-1303 1449.7565,-1344"/>
<text text-anchor="middle" x="1406.0732" y="-1331.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="1406.0732" y="-1320.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1406.0732" y="-1309.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.07s(1.88%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N36 -->
<g id="edge85" class="edge">
<title>N15&#45;&gt;N36</title>
<g id="a_edge85"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<path fill="none" stroke="#000000" d="M1571.3204,-1407.3895C1558.1088,-1399.6102 1543.0805,-1390.5673 1529.625,-1382 1520.3023,-1376.0641 1518.9337,-1372.992 1509.0732,-1368 1487.6279,-1357.143 1480.1628,-1359.4777 1458.0732,-1350 1456.8685,-1349.4831 1455.6528,-1348.9508 1454.4302,-1348.4059"/>
<polygon fill="#000000" stroke="#000000" points="1455.5374,-1345.0614 1444.9928,-1344.0306 1452.5931,-1351.4121 1455.5374,-1345.0614"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<text text-anchor="middle" x="1545.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N26 -->
<g id="edge50" class="edge">
<title>N16&#45;&gt;N26</title>
<g id="a_edge50"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.07s)">
<path fill="none" stroke="#000000" d="M1470.4747,-1405.847C1469.9684,-1394.1748 1470.748,-1379.8605 1475.625,-1368 1477.7095,-1362.9307 1480.6401,-1358.0691 1483.9822,-1353.5431"/>
<polygon fill="#000000" stroke="#000000" points="1486.7095,-1355.737 1490.3484,-1345.7866 1481.2986,-1351.2959 1486.7095,-1355.737"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.07s)">
<text text-anchor="middle" x="1491.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N36 -->
<g id="edge72" class="edge">
<title>N16&#45;&gt;N36</title>
<g id="a_edge72"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.04s)">
<path fill="none" stroke="#000000" d="M1451.7232,-1405.5563C1445.4588,-1398.3511 1438.8848,-1390.125 1433.625,-1382 1427.9199,-1373.1871 1422.7064,-1363.0066 1418.3866,-1353.6335"/>
<polygon fill="#000000" stroke="#000000" points="1421.4786,-1351.9721 1414.2253,-1344.2494 1415.0795,-1354.8097 1421.4786,-1351.9721"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.04s)">
<text text-anchor="middle" x="1449.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="main.(*Integer).Negate (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1344.2029,-1341.5 1253.9436,-1341.5 1253.9436,-1305.5 1344.2029,-1305.5 1344.2029,-1341.5"/>
<text text-anchor="middle" x="1299.0732" y="-1325.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="1299.0732" y="-1317.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.54%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N56 -->
<g id="edge92" class="edge">
<title>N16&#45;&gt;N56</title>
<g id="a_edge92"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.02s)">
<path fill="none" stroke="#000000" d="M1430.0566,-1405.8142C1416.3493,-1398.487 1401.218,-1390.1264 1387.625,-1382 1369.4776,-1371.1508 1349.8071,-1358.2738 1333.6252,-1347.3668"/>
<polygon fill="#000000" stroke="#000000" points="1335.2669,-1344.2512 1325.026,-1341.5354 1331.3381,-1350.0448 1335.2669,-1344.2512"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.02s)">
<text text-anchor="middle" x="1403.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.memmove (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1308.4595,-493 1163.687,-493 1163.687,-451 1308.4595,-451 1308.4595,-493"/>
<text text-anchor="middle" x="1236.0732" y="-475.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="1236.0732" y="-458.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.13s(3.49%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N27 -->
<g id="edge64" class="edge">
<title>N17&#45;&gt;N27</title>
<g id="a_edge64"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.05s)">
<path fill="none" stroke="#000000" d="M1256.7166,-542.7771C1253.1623,-530.5911 1248.8643,-515.8552 1245.1124,-502.9913"/>
<polygon fill="#000000" stroke="#000000" points="1248.4051,-501.7804 1242.245,-493.1604 1241.6851,-503.7405 1248.4051,-501.7804"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.05s)">
<text text-anchor="middle" x="1266.7974" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.newdefer (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1455.8548,-492 1326.2917,-492 1326.2917,-452 1455.8548,-452 1455.8548,-492"/>
<text text-anchor="middle" x="1391.0732" y="-475.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="1391.0732" y="-459.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.11s(2.95%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N31 -->
<g id="edge44" class="edge">
<title>N17&#45;&gt;N31</title>
<g id="a_edge44"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.11s)">
<path fill="none" stroke="#000000" d="M1297.441,-542.7771C1315.5407,-529.0955 1337.8923,-512.1998 1356.2175,-498.3477"/>
<polygon fill="#000000" stroke="#000000" points="1358.4572,-501.0421 1364.324,-492.2199 1354.2361,-495.4579 1358.4572,-501.0421"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.11s)">
<text text-anchor="middle" x="1354.541" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N19 -->
<g id="edge48" class="edge">
<title>N18&#45;&gt;N19</title>
<g id="a_edge48"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.08s)">
<path fill="none" stroke="#000000" d="M2077.7519,-1296.5772C2063.5656,-1236.2881 2030.1158,-1094.914 2026.0732,-1085 2020.1688,-1070.5201 2011.206,-1056.1109 2002.1709,-1043.6168"/>
<polygon fill="#000000" stroke="#000000" points="2004.7361,-1041.2031 1995.941,-1035.2957 1999.1325,-1045.3984 2004.7361,-1041.2031"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.08s)">
<text text-anchor="middle" x="2063.7974" y="-1158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.strequal (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2162.8582,-1238 2075.2883,-1238 2075.2883,-1197 2162.8582,-1197 2162.8582,-1238"/>
<text text-anchor="middle" x="2119.0732" y="-1225.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.strequal</text>
<text text-anchor="middle" x="2119.0732" y="-1214.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="2119.0732" y="-1203.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.04s(1.07%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N50 -->
<g id="edge75" class="edge">
<title>N18&#45;&gt;N50</title>
<g id="a_edge75"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.strequal (0.04s)">
<path fill="none" stroke="#000000" d="M2092.9052,-1296.7517C2097.8224,-1281.8597 2103.961,-1263.2683 2109.0567,-1247.8357"/>
<polygon fill="#000000" stroke="#000000" points="2112.4194,-1248.8142 2112.2314,-1238.221 2105.7724,-1246.6194 2112.4194,-1248.8142"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.strequal (0.04s)">
<text text-anchor="middle" x="2118.7974" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N27 -->
<g id="edge69" class="edge">
<title>N19&#45;&gt;N27</title>
<g id="a_edge69"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.05s)">
<path fill="none" stroke="#000000" d="M1928.5698,-975.9555C1903.3885,-954.3058 1876.0732,-922.4263 1876.0732,-886 1876.0732,-886 1876.0732,-886 1876.0732,-568 1876.0732,-507.7803 1416.6793,-505.1692 1318.9114,-492.8591"/>
<polygon fill="#000000" stroke="#000000" points="1319.253,-489.3705 1308.8363,-491.3052 1318.186,-496.2887 1319.253,-489.3705"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.05s)">
<text text-anchor="middle" x="1892.7974" y="-722.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N8 -->
<g id="edge53" class="edge">
<title>N20&#45;&gt;N8</title>
<g id="a_edge53"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.07s)">
<path fill="none" stroke="#000000" d="M391.912,-1401.3159C370.2158,-1382.3955 347.0732,-1354.863 347.0732,-1323.5 347.0732,-1323.5 347.0732,-1323.5 347.0732,-774 347.0732,-727.5924 653.8032,-693.8924 809.1393,-679.8013"/>
<polygon fill="#000000" stroke="#000000" points="809.5008,-683.283 819.1472,-678.9016 808.8739,-676.3111 809.5008,-683.283"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.07s)">
<text text-anchor="middle" x="363.7974" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N27 -->
<g id="edge87" class="edge">
<title>N20&#45;&gt;N27</title>
<g id="a_edge87"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.03s)">
<path fill="none" stroke="#000000" d="M458.2905,-1401.322C471.3091,-1387.4516 485.229,-1369.3665 492.0732,-1350 499.9222,-1327.7906 495.1835,-1320.3493 492.0732,-1297 477.3891,-1186.7626 426.5599,-903.8855 361.0732,-814 247.2842,-657.8158 -85.4331,-704.2384 21.0732,-543 41.0477,-512.7609 60.6298,-518.5596 96.0732,-511 208.3582,-487.0511 998.4948,-507.8111 1152.9935,-492.9003"/>
<polygon fill="#000000" stroke="#000000" points="1153.8403,-496.3264 1163.3777,-491.7126 1153.0448,-489.3717 1153.8403,-496.3264"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.03s)">
<text text-anchor="middle" x="438.7974" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N54 -->
<g id="edge95" class="edge">
<title>N20&#45;&gt;N54</title>
<g id="a_edge95"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.getcallersp (0.02s)">
<path fill="none" stroke="#000000" d="M429.0732,-1401.3599C429.0732,-1386.1289 429.0732,-1367.0408 429.0732,-1351.5765"/>
<polygon fill="#000000" stroke="#000000" points="432.5733,-1351.5413 429.0732,-1341.5413 425.5733,-1351.5414 432.5733,-1351.5413"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.getcallersp (0.02s)">
<text text-anchor="middle" x="445.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N33 -->
<g id="edge91" class="edge">
<title>N21&#45;&gt;N33</title>
<g id="a_edge91"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M2387.6216,-1399.8293C2379.665,-1385.3107 2370.4758,-1367.1031 2364.0732,-1350 2332.933,-1266.8154 2384.021,-1213.2056 2316.0732,-1156 2294.599,-1137.9208 2091.7253,-1142.8334 2064.0732,-1138 2051.8166,-1135.8576 2038.8628,-1132.766 2026.6187,-1129.4454"/>
<polygon fill="#000000" stroke="#000000" points="2027.5515,-1126.072 2016.9782,-1126.7469 2025.6647,-1132.8129 2027.5515,-1126.072"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="2369.7974" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.mapaccess2_faststr (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2533.1079,-1341.5 2373.0386,-1341.5 2373.0386,-1305.5 2533.1079,-1305.5 2533.1079,-1341.5"/>
<text text-anchor="middle" x="2453.0732" y="-1326.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="2453.0732" y="-1313.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.07%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N49 -->
<g id="edge70" class="edge">
<title>N21&#45;&gt;N49</title>
<g id="a_edge70"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.04s)">
<path fill="none" stroke="#000000" d="M2417.2043,-1399.9959C2424.3202,-1384.8202 2433.0802,-1366.1382 2440.1618,-1351.0355"/>
<polygon fill="#000000" stroke="#000000" points="2443.4624,-1352.2406 2444.539,-1341.7006 2437.1245,-1349.2688 2443.4624,-1352.2406"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.04s)">
<text text-anchor="middle" x="2447.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.getitab (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1579.0835,-1247 1453.063,-1247 1453.063,-1188 1579.0835,-1188 1579.0835,-1247"/>
<text text-anchor="middle" x="1516.0732" y="-1229.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="1516.0732" y="-1212.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.13s(3.49%)</text>
<text text-anchor="middle" x="1516.0732" y="-1195.4" font-family="Times,serif" font-size="17.00" fill="#000000">of 0.17s(4.56%)</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime/internal/atomic.Loadp (0.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1603.7726,-1129.5 1428.3739,-1129.5 1428.3739,-1093.5 1603.7726,-1093.5 1603.7726,-1129.5"/>
<text text-anchor="middle" x="1516.0732" y="-1114.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime/internal/atomic.Loadp</text>
<text text-anchor="middle" x="1516.0732" y="-1101.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.04s(1.07%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N51 -->
<g id="edge74" class="edge">
<title>N22&#45;&gt;N51</title>
<g id="a_edge74"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.04s)">
<path fill="none" stroke="#000000" d="M1516.0732,-1187.9731C1516.0732,-1172.8891 1516.0732,-1154.6262 1516.0732,-1139.7308"/>
<polygon fill="#000000" stroke="#000000" points="1519.5733,-1139.5734 1516.0732,-1129.5734 1512.5733,-1139.5735 1519.5733,-1139.5734"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.04s)">
<text text-anchor="middle" x="1532.7974" y="-1158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N6 -->
<g id="edge37" class="edge">
<title>N24&#45;&gt;N6</title>
<g id="a_edge37"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.15s)">
<path fill="none" stroke="#000000" d="M1914.8746,-1407.4148C1885.3147,-1389.7163 1851.0732,-1361.1001 1851.0732,-1323.5 1851.0732,-1323.5 1851.0732,-1323.5 1851.0732,-1005.5 1851.0732,-939.2061 1396.8175,-904.1232 1188.3896,-891.5152"/>
<polygon fill="#000000" stroke="#000000" points="1188.5415,-888.0181 1178.3501,-890.9138 1188.1229,-895.0056 1188.5415,-888.0181"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.15s)">
<text text-anchor="middle" x="1867.7974" y="-1158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime._System (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="498.8431,-792 425.3033,-792 425.3033,-756 498.8431,-756 498.8431,-792"/>
<text text-anchor="middle" x="462.0732" y="-775.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="462.0732" y="-767.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(3.75%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N8 -->
<g id="edge38" class="edge">
<title>N25&#45;&gt;N8</title>
<g id="a_edge38"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.14s)">
<path fill="none" stroke="#000000" d="M487.0851,-755.7685C505.0017,-743.6461 530.1873,-728.4524 554.625,-720 600.2545,-704.2178 723.7779,-689.5125 809.2716,-680.7635"/>
<polygon fill="#000000" stroke="#000000" points="809.6448,-684.2437 819.2407,-679.7526 808.9385,-677.2794 809.6448,-684.2437"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.14s)">
<text text-anchor="middle" x="571.7974" y="-722.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N22 -->
<g id="edge43" class="edge">
<title>N26&#45;&gt;N22</title>
<g id="a_edge43"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.11s)">
<path fill="none" stroke="#000000" d="M1516.0732,-1301.2789C1516.0732,-1288.6753 1516.0732,-1272.518 1516.0732,-1257.7612"/>
<polygon fill="#000000" stroke="#000000" points="1519.5733,-1257.3343 1516.0732,-1247.3344 1512.5733,-1257.3344 1519.5733,-1257.3343"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.11s)">
<text text-anchor="middle" x="1532.541" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="main.Integer.Multiply (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1689.2883,-1235.5 1602.8581,-1235.5 1602.8581,-1199.5 1689.2883,-1199.5 1689.2883,-1235.5"/>
<text text-anchor="middle" x="1646.0732" y="-1219.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="1646.0732" y="-1211.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(2.95%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N79 -->
<g id="edge40" class="edge">
<title>N28&#45;&gt;N79</title>
<g id="a_edge40"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.11s)">
<path fill="none" stroke="#000000" d="M1646.0732,-1302.8105C1646.0732,-1286.5685 1646.0732,-1263.7799 1646.0732,-1245.8412"/>
<polygon fill="#000000" stroke="#000000" points="1649.5733,-1245.6636 1646.0732,-1235.6637 1642.5733,-1245.6637 1649.5733,-1245.6636"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.11s)">
<text text-anchor="middle" x="1662.541" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.schedule (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="607.8431,-904 534.3033,-904 534.3033,-868 607.8431,-868 607.8431,-904"/>
<text text-anchor="middle" x="571.0732" y="-887.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="571.0732" y="-879.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(3.22%)</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.findrunnable (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="625.1395,-794.5 517.0069,-794.5 517.0069,-753.5 625.1395,-753.5 625.1395,-794.5"/>
<text text-anchor="middle" x="571.0732" y="-781.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="571.0732" y="-770.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="571.0732" y="-759.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.06s(1.61%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N40 -->
<g id="edge62" class="edge">
<title>N29&#45;&gt;N40</title>
<g id="a_edge62"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.06s)">
<path fill="none" stroke="#000000" d="M571.0732,-867.5055C571.0732,-850.5471 571.0732,-825.0961 571.0732,-805.0267"/>
<polygon fill="#000000" stroke="#000000" points="574.5733,-804.8079 571.0732,-794.808 567.5733,-804.808 574.5733,-804.8079"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.06s)">
<text text-anchor="middle" x="587.7974" y="-816.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.(*mheap).alloc (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="164.8113,-492.5 45.3352,-492.5 45.3352,-451.5 164.8113,-451.5 164.8113,-492.5"/>
<text text-anchor="middle" x="105.0732" y="-479.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="105.0732" y="-468.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="105.0732" y="-457.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.07s(1.88%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N35 -->
<g id="edge51" class="edge">
<title>N32&#45;&gt;N35</title>
<g id="a_edge51"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.07s)">
<path fill="none" stroke="#000000" d="M97.2431,-547.1694C98.5928,-534.212 100.3528,-517.316 101.8622,-502.8255"/>
<polygon fill="#000000" stroke="#000000" points="105.3526,-503.0988 102.9076,-492.7899 98.3903,-502.3734 105.3526,-503.0988"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.07s)">
<text text-anchor="middle" x="117.7974" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N19 -->
<g id="edge52" class="edge">
<title>N33&#45;&gt;N19</title>
<g id="a_edge52"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.07s)">
<path fill="none" stroke="#000000" d="M1970.0732,-1090.8105C1970.0732,-1077.9848 1970.0732,-1061.0769 1970.0732,-1045.6985"/>
<polygon fill="#000000" stroke="#000000" points="1973.5733,-1045.3652 1970.0732,-1035.3653 1966.5733,-1045.3653 1973.5733,-1045.3652"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.07s)">
<text text-anchor="middle" x="1986.7974" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N10 -->
<g id="edge71" class="edge">
<title>N34&#45;&gt;N10</title>
<g id="a_edge71"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.04s)">
<path fill="none" stroke="#000000" d="M1282.0099,-1405.7379C1270.0147,-1390.7915 1254.9836,-1370.2053 1245.0732,-1350 1211.929,-1282.4255 1191.0144,-1196.3687 1181.0339,-1148.2809"/>
<polygon fill="#000000" stroke="#000000" points="1184.4336,-1147.4344 1179.0131,-1138.3311 1177.5736,-1148.8277 1184.4336,-1147.4344"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.04s)">
<text text-anchor="middle" x="1231.7974" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N38 -->
<g id="edge57" class="edge">
<title>N35&#45;&gt;N38</title>
<g id="a_edge57"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.06s)">
<path fill="none" stroke="#000000" d="M165.0899,-455.2425C170.818,-453.7605 176.5483,-452.3228 182.0732,-451 285.7527,-426.1769 316.0266,-428.499 422.9133,-401.187"/>
<polygon fill="#000000" stroke="#000000" points="423.9981,-404.5218 432.8047,-398.6316 422.2471,-397.7443 423.9981,-404.5218"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.06s)">
<text text-anchor="middle" x="362.7974" y="-421.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N22 -->
<g id="edge58" class="edge">
<title>N36&#45;&gt;N22</title>
<g id="a_edge58"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.06s)">
<path fill="none" stroke="#000000" d="M1427.5435,-1302.8105C1441.749,-1289.1215 1460.7802,-1270.7824 1477.5568,-1254.6158"/>
<polygon fill="#000000" stroke="#000000" points="1480.3088,-1256.8245 1485.081,-1247.3653 1475.4515,-1251.784 1480.3088,-1256.8245"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.06s)">
<text text-anchor="middle" x="1480.7974" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.freedefer (0.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="304.623,-490 191.5235,-490 191.5235,-454 304.623,-454 304.623,-490"/>
<text text-anchor="middle" x="248.0732" y="-474.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="248.0732" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.05s(1.34%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N43 -->
<g id="edge65" class="edge">
<title>N37&#45;&gt;N43</title>
<g id="a_edge65"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.05s)">
<path fill="none" stroke="#000000" d="M248.0732,-545.7344C248.0732,-532.3163 248.0732,-515.089 248.0732,-500.6609"/>
<polygon fill="#000000" stroke="#000000" points="251.5733,-500.2828 248.0732,-490.2828 244.5733,-500.2829 251.5733,-500.2828"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.05s)">
<text text-anchor="middle" x="264.7974" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.makemap (0.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1822.7968,-1344 1727.3497,-1344 1727.3497,-1303 1822.7968,-1303 1822.7968,-1344"/>
<text text-anchor="middle" x="1775.0732" y="-1331.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="1775.0732" y="-1320.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="1775.0732" y="-1309.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.03s(0.8%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N55 -->
<g id="edge83" class="edge">
<title>N39&#45;&gt;N55</title>
<g id="a_edge83"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.03s)">
<path fill="none" stroke="#000000" d="M1783.7404,-1405.8382C1782.1677,-1390.8976 1780.0709,-1370.9781 1778.3336,-1354.474"/>
<polygon fill="#000000" stroke="#000000" points="1781.7808,-1353.7869 1777.253,-1344.2083 1774.8192,-1354.5198 1781.7808,-1353.7869"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.03s)">
<text text-anchor="middle" x="1796.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N8 -->
<g id="edge66" class="edge">
<title>N40&#45;&gt;N8</title>
<g id="a_edge66"><a xlink:title="runtime.findrunnable ... runtime.systemstack (0.05s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M579.1578,-753.4092C584.8138,-741.7493 593.5349,-727.9483 605.625,-720 638.3559,-698.482 735.8594,-685.7281 809.1442,-678.9426"/>
<polygon fill="#000000" stroke="#000000" points="809.6702,-682.4094 819.315,-678.0244 809.0408,-675.4377 809.6702,-682.4094"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.findrunnable ... runtime.systemstack (0.05s)">
<text text-anchor="middle" x="622.7974" y="-722.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.mcall (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="528.8431,-1023.5 455.3033,-1023.5 455.3033,-987.5 528.8431,-987.5 528.8431,-1023.5"/>
<text text-anchor="middle" x="492.0732" y="-1007.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="492.0732" y="-999.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(1.61%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N29 -->
<g id="edge60" class="edge">
<title>N41&#45;&gt;N29</title>
<g id="a_edge60"><a xlink:title="runtime.mcall ... runtime.schedule (0.06s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M504.0716,-987.3505C517.18,-967.522 538.3103,-935.5591 553.3346,-912.8325"/>
<polygon fill="#000000" stroke="#000000" points="556.3668,-914.5924 558.9619,-904.3203 550.5275,-910.732 556.3668,-914.5924"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.mcall ... runtime.schedule (0.06s)">
<text text-anchor="middle" x="548.7974" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.morestack (0.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="622.8314,-1023.5 547.315,-1023.5 547.315,-987.5 622.8314,-987.5 622.8314,-1023.5"/>
<text text-anchor="middle" x="585.0732" y="-1007.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="585.0732" y="-999.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.06s(1.61%)</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N29 -->
<g id="edge61" class="edge">
<title>N42&#45;&gt;N29</title>
<g id="a_edge61"><a xlink:title="runtime.morestack ... runtime.schedule (0.06s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M582.9469,-987.3505C580.6753,-967.9607 577.0443,-936.9674 574.3951,-914.3542"/>
<polygon fill="#000000" stroke="#000000" points="577.8594,-913.8451 573.2195,-904.3203 570.907,-914.6596 577.8594,-913.8451"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.morestack ... runtime.schedule (0.06s)">
<text text-anchor="middle" x="596.7974" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.memequal64 (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2953.3783,-1341.5 2834.7682,-1341.5 2834.7682,-1305.5 2953.3783,-1305.5 2953.3783,-1341.5"/>
<text text-anchor="middle" x="2894.0732" y="-1325.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.memequal64</text>
<text text-anchor="middle" x="2894.0732" y="-1313.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.54%)</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N65 -->
<g id="edge97" class="edge">
<title>N44&#45;&gt;N65</title>
<g id="a_edge97"><a xlink:title="runtime.ifaceeq &#45;&gt; runtime.memequal64 (0.02s)">
<path fill="none" stroke="#000000" d="M2894.0732,-1405.8382C2894.0732,-1390.2096 2894.0732,-1369.1328 2894.0732,-1352.2163"/>
<polygon fill="#000000" stroke="#000000" points="2897.5733,-1351.7996 2894.0732,-1341.7996 2890.5733,-1351.7997 2897.5733,-1351.7996"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="runtime.ifaceeq &#45;&gt; runtime.memequal64 (0.02s)">
<text text-anchor="middle" x="2910.7974" y="-1370.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N8 -->
<g id="edge73" class="edge">
<title>N47&#45;&gt;N8</title>
<g id="a_edge73"><a xlink:title="runtime.gcMarkTermination &#45;&gt; runtime.systemstack (0.04s)">
<path fill="none" stroke="#000000" d="M1947.6311,-755.7456C1940.1009,-743.2771 1928.2995,-727.6752 1913.0732,-720 1871.9765,-699.2841 1223.8438,-680.8034 984.7663,-674.6591"/>
<polygon fill="#000000" stroke="#000000" points="984.8068,-671.1591 974.7205,-674.402 984.6276,-678.1568 984.8068,-671.1591"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.gcMarkTermination &#45;&gt; runtime.systemstack (0.04s)">
<text text-anchor="middle" x="1946.7974" y="-722.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.eqstring (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2167.5576,-1129.5 2072.5889,-1129.5 2072.5889,-1093.5 2167.5576,-1093.5 2167.5576,-1129.5"/>
<text text-anchor="middle" x="2120.0732" y="-1113.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="2120.0732" y="-1101.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.54%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N61 -->
<g id="edge99" class="edge">
<title>N50&#45;&gt;N61</title>
<g id="a_edge99"><a xlink:title="runtime.strequal &#45;&gt; runtime.eqstring (0.02s)">
<path fill="none" stroke="#000000" d="M2119.2684,-1196.8105C2119.4216,-1180.5685 2119.6366,-1157.7799 2119.8059,-1139.8412"/>
<polygon fill="#000000" stroke="#000000" points="2123.3073,-1139.6963 2119.9019,-1129.6637 2116.3076,-1139.6302 2123.3073,-1139.6963"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="runtime.strequal &#45;&gt; runtime.eqstring (0.02s)">
<text text-anchor="middle" x="2135.7974" y="-1158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N64 -->
<g id="edge106" class="edge">
<title>N50&#45;&gt;N64</title>
<g id="a_edge106"><a xlink:title="runtime.strequal &#45;&gt; runtime.memeqbody (0.01s)">
<path fill="none" stroke="#000000" d="M2162.9748,-1201.2855C2212.3027,-1183.0668 2292.6136,-1153.405 2347.3188,-1133.2002"/>
<polygon fill="#000000" stroke="#000000" points="2348.7154,-1136.4156 2356.8834,-1129.6677 2346.2901,-1129.8491 2348.7154,-1136.4156"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="runtime.strequal &#45;&gt; runtime.memeqbody (0.01s)">
<text text-anchor="middle" x="2295.7974" y="-1158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N7 -->
<g id="edge98" class="edge">
<title>N55&#45;&gt;N7</title>
<g id="a_edge98"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.02s)">
<path fill="none" stroke="#000000" d="M1774.6419,-1302.8103C1773.1335,-1269.7593 1766.7131,-1203.9018 1740.0732,-1156 1707.8351,-1098.0318 1692.5227,-1080.3032 1632.0732,-1053 1589.3941,-1033.7231 1289.4515,-1016.0035 1153.1714,-1008.8464"/>
<polygon fill="#000000" stroke="#000000" points="1153.0297,-1005.3343 1142.861,-1008.3087 1152.6651,-1012.3248 1153.0297,-1005.3343"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.02s)">
<text text-anchor="middle" x="1762.7974" y="-1158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N10 -->
<g id="edge88" class="edge">
<title>N56&#45;&gt;N10</title>
<g id="a_edge88"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.02s)">
<path fill="none" stroke="#000000" d="M1296.5175,-1305.3411C1291.1267,-1272.5301 1275.9962,-1202.4666 1240.0732,-1156 1236.9313,-1151.9359 1233.3103,-1148.1138 1229.4155,-1144.5491"/>
<polygon fill="#000000" stroke="#000000" points="1231.5494,-1141.7705 1221.6423,-1138.0154 1227.0453,-1147.129 1231.5494,-1141.7705"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.02s)">
<text text-anchor="middle" x="1299.7974" y="-1213.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.(*mheap).alloc_m (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="593.8784,-490 492.2681,-490 492.2681,-454 593.8784,-454 593.8784,-490"/>
<text text-anchor="middle" x="543.0732" y="-473.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="543.0732" y="-465.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.54%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N60 -->
<g id="edge93" class="edge">
<title>N58&#45;&gt;N60</title>
<g id="a_edge93"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.02s)">
<path fill="none" stroke="#000000" d="M783.754,-549.8913C777.5012,-547.5117 771.1439,-545.154 765.0732,-543 710.8925,-523.7752 648.4734,-504.0209 603.6481,-490.2461"/>
<polygon fill="#000000" stroke="#000000" points="604.6619,-486.8962 594.0753,-487.3131 602.6112,-493.5891 604.6619,-486.8962"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.02s)">
<text text-anchor="middle" x="727.7974" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.(*mheap).allocSpanLocked (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="415.2951,-401 240.8514,-401 240.8514,-360 415.2951,-360 415.2951,-401"/>
<text text-anchor="middle" x="328.0732" y="-388.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).allocSpanLocked</text>
<text text-anchor="middle" x="328.0732" y="-377.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.01s(0.27%)</text>
<text text-anchor="middle" x="328.0732" y="-366.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.02s(0.54%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N59 -->
<g id="edge94" class="edge">
<title>N60&#45;&gt;N59</title>
<g id="a_edge94"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.02s)">
<path fill="none" stroke="#000000" d="M500.5961,-453.9225C467.7931,-439.9622 422.0512,-420.4953 385.9089,-405.1138"/>
<polygon fill="#000000" stroke="#000000" points="387.0378,-401.7905 376.4658,-401.095 384.2966,-408.2315 387.0378,-401.7905"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.02s)">
<text text-anchor="middle" x="465.7974" y="-421.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.gcMark (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1002.8431,-490 929.3033,-490 929.3033,-454 1002.8431,-454 1002.8431,-490"/>
<text text-anchor="middle" x="966.0732" y="-473.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMark</text>
<text text-anchor="middle" x="966.0732" y="-465.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.02s(0.54%)</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N62 -->
<g id="edge96" class="edge">
<title>N63&#45;&gt;N62</title>
<g id="a_edge96"><a xlink:title="runtime.gcMarkTermination.func1 &#45;&gt; runtime.gcMark (0.02s)">
<path fill="none" stroke="#000000" d="M966.0732,-549.9431C966.0732,-536.0862 966.0732,-516.6861 966.0732,-500.7075"/>
<polygon fill="#000000" stroke="#000000" points="969.5733,-500.3023 966.0732,-490.3023 962.5733,-500.3023 969.5733,-500.3023"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.gcMarkTermination.func1 &#45;&gt; runtime.gcMark (0.02s)">
<text text-anchor="middle" x="982.7974" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.usleep (0.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1050.5537,-2251 963.5928,-2251 963.5928,-2215 1050.5537,-2215 1050.5537,-2251"/>
<text text-anchor="middle" x="1007.0732" y="-2235.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="1007.0732" y="-2223.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.02s(0.54%)</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run (3.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="976.8235,-1927 837.323,-1927 837.323,-1891 976.8235,-1891 976.8235,-1927"/>
<text text-anchor="middle" x="907.0732" y="-1910.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.(*App).Run</text>
<text text-anchor="middle" x="907.0732" y="-1902.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.39s(90.88%)</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction (3.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="980.2569,-1841 833.8895,-1841 833.8895,-1805 980.2569,-1805 980.2569,-1841"/>
<text text-anchor="middle" x="907.0732" y="-1824.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.HandleAction</text>
<text text-anchor="middle" x="907.0732" y="-1816.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.39s(90.88%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N68 -->
<g id="edge1" class="edge">
<title>N67&#45;&gt;N68</title>
<g id="a_edge1"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (3.39s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M907.0732,-1890.7616C907.0732,-1879.3597 907.0732,-1864.4342 907.0732,-1851.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="911.4483,-1851.2121 907.0732,-1841.2121 902.6983,-1851.2121 911.4483,-1851.2121"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (3.39s)">
<text text-anchor="middle" x="923.7974" y="-1861.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.39s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="main.handleFlags (3.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="945.8431,-1755 868.3034,-1755 868.3034,-1719 945.8431,-1719 945.8431,-1755"/>
<text text-anchor="middle" x="907.0732" y="-1738.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.handleFlags</text>
<text text-anchor="middle" x="907.0732" y="-1730.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.39s(90.88%)</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N70 -->
<g id="edge2" class="edge">
<title>N68&#45;&gt;N70</title>
<g id="a_edge2"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (3.39s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M907.0732,-1804.7616C907.0732,-1793.3597 907.0732,-1778.4342 907.0732,-1765.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="911.4483,-1765.2121 907.0732,-1755.2121 902.6983,-1765.2121 911.4483,-1765.2121"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (3.39s)">
<text text-anchor="middle" x="923.7974" y="-1775.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.39s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="main.(*machine).executeString (3.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="965.4802,-1669 848.6663,-1669 848.6663,-1633 965.4802,-1633 965.4802,-1669"/>
<text text-anchor="middle" x="907.0732" y="-1652.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeString</text>
<text text-anchor="middle" x="907.0732" y="-1644.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.39s(90.88%)</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N2 -->
<g id="edge3" class="edge">
<title>N69&#45;&gt;N2</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (3.39s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M907.0732,-1632.9337C907.0732,-1621.9502 907.0732,-1607.3518 907.0732,-1593.1872"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="911.4483,-1593.0077 907.0732,-1583.0078 902.6983,-1593.0078 911.4483,-1593.0077"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (3.39s)">
<text text-anchor="middle" x="923.7974" y="-1603.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.39s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N69 -->
<g id="edge4" class="edge">
<title>N70&#45;&gt;N69</title>
<g id="a_edge4"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (3.39s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M907.0732,-1718.7616C907.0732,-1707.3597 907.0732,-1692.4342 907.0732,-1679.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="911.4483,-1679.2121 907.0732,-1669.2121 902.6983,-1679.2121 911.4483,-1679.2121"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (3.39s)">
<text text-anchor="middle" x="923.7974" y="-1689.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.39s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="main.main (3.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="945.8431,-2013 868.3034,-2013 868.3034,-1977 945.8431,-1977 945.8431,-2013"/>
<text text-anchor="middle" x="907.0732" y="-1996.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.main</text>
<text text-anchor="middle" x="907.0732" y="-1988.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.39s(90.88%)</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N67 -->
<g id="edge5" class="edge">
<title>N71&#45;&gt;N67</title>
<g id="a_edge5"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (3.39s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M907.0732,-1976.7616C907.0732,-1965.3597 907.0732,-1950.4342 907.0732,-1937.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="911.4483,-1937.2121 907.0732,-1927.2121 902.6983,-1937.2121 911.4483,-1937.2121"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (3.39s)">
<text text-anchor="middle" x="923.7974" y="-1947.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.39s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N71 -->
<g id="edge7" class="edge">
<title>N72&#45;&gt;N71</title>
<g id="a_edge7"><a xlink:title="runtime.main &#45;&gt; main.main (3.39s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M907.0732,-2062.7616C907.0732,-2051.3597 907.0732,-2036.4342 907.0732,-2023.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="911.4483,-2023.2121 907.0732,-2013.2121 902.6983,-2023.2121 911.4483,-2023.2121"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="runtime.main &#45;&gt; main.main (3.39s)">
<text text-anchor="middle" x="923.7974" y="-2033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.39s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.mach_semrelease (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1158.8706,-138 1059.2759,-138 1059.2759,-102 1158.8706,-102 1158.8706,-138"/>
<text text-anchor="middle" x="1109.0732" y="-121.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mach_semrelease</text>
<text text-anchor="middle" x="1109.0732" y="-113.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.34s(9.12%)</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N11 -->
<g id="edge17" class="edge">
<title>N73&#45;&gt;N11</title>
<g id="a_edge17"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.34s)">
<path fill="none" stroke="#000000" d="M1109.0732,-101.8759C1109.0732,-90.6523 1109.0732,-75.8419 1109.0732,-62.2872"/>
<polygon fill="#000000" stroke="#000000" points="1112.5733,-62.2467 1109.0732,-52.2467 1105.5733,-62.2468 1112.5733,-62.2467"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (0.34s)">
<text text-anchor="middle" x="1125.7974" y="-72.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N73 -->
<g id="edge19" class="edge">
<title>N74&#45;&gt;N73</title>
<g id="a_edge19"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (0.34s)">
<path fill="none" stroke="#000000" d="M1109.0732,-187.7616C1109.0732,-176.3597 1109.0732,-161.4342 1109.0732,-148.494"/>
<polygon fill="#000000" stroke="#000000" points="1112.5733,-148.2121 1109.0732,-138.2121 1105.5733,-148.2121 1112.5733,-148.2121"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.semawakeup &#45;&gt; runtime.mach_semrelease (0.34s)">
<text text-anchor="middle" x="1125.7974" y="-158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.startm (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1145.8431,-398.5 1072.3033,-398.5 1072.3033,-362.5 1145.8431,-362.5 1145.8431,-398.5"/>
<text text-anchor="middle" x="1109.0732" y="-382.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.startm</text>
<text text-anchor="middle" x="1109.0732" y="-374.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.28s(7.51%)</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N12 -->
<g id="edge22" class="edge">
<title>N75&#45;&gt;N12</title>
<g id="a_edge22"><a xlink:title="runtime.startm &#45;&gt; runtime.notewakeup (0.28s)">
<path fill="none" stroke="#000000" d="M1109.0732,-362.1627C1109.0732,-350.0979 1109.0732,-334.065 1109.0732,-320.3712"/>
<polygon fill="#000000" stroke="#000000" points="1112.5733,-320.0109 1109.0732,-310.011 1105.5733,-320.011 1112.5733,-320.0109"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.startm &#45;&gt; runtime.notewakeup (0.28s)">
<text text-anchor="middle" x="1125.7974" y="-330.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.wakep (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1145.8431,-490 1072.3033,-490 1072.3033,-454 1145.8431,-454 1145.8431,-490"/>
<text text-anchor="middle" x="1109.0732" y="-473.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.wakep</text>
<text text-anchor="middle" x="1109.0732" y="-465.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.28s(7.51%)</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N75 -->
<g id="edge23" class="edge">
<title>N76&#45;&gt;N75</title>
<g id="a_edge23"><a xlink:title="runtime.wakep &#45;&gt; runtime.startm (0.28s)">
<path fill="none" stroke="#000000" d="M1109.0732,-453.9225C1109.0732,-441.0144 1109.0732,-423.3985 1109.0732,-408.6573"/>
<polygon fill="#000000" stroke="#000000" points="1112.5733,-408.5399 1109.0732,-398.5399 1105.5733,-408.5399 1112.5733,-408.5399"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.wakep &#45;&gt; runtime.startm (0.28s)">
<text text-anchor="middle" x="1125.7974" y="-421.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N76 -->
<g id="edge24" class="edge">
<title>N77&#45;&gt;N76</title>
<g id="a_edge24"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.wakep (0.27s)">
<path fill="none" stroke="#000000" d="M1109.0732,-549.9431C1109.0732,-536.0862 1109.0732,-516.6861 1109.0732,-500.7075"/>
<polygon fill="#000000" stroke="#000000" points="1112.5733,-500.3023 1109.0732,-490.3023 1105.5733,-500.3023 1112.5733,-500.3023"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.wakep (0.27s)">
<text text-anchor="middle" x="1125.7974" y="-513.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N8 -->
<g id="edge26" class="edge">
<title>N78&#45;&gt;N8</title>
<g id="a_edge26"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.25s)">
<path fill="none" stroke="#000000" d="M985.765,-755.8538C971.9799,-742.8984 952.9641,-725.0271 936.0745,-709.1539"/>
<polygon fill="#000000" stroke="#000000" points="938.1743,-706.3243 928.4904,-702.0263 933.3804,-711.4252 938.1743,-706.3243"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.25s)">
<text text-anchor="middle" x="977.7974" y="-722.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N10 -->
<g id="edge46" class="edge">
<title>N79&#45;&gt;N10</title>
<g id="a_edge46"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.09s)">
<path fill="none" stroke="#000000" d="M1625.1103,-1199.4408C1607.2213,-1185.114 1580.1607,-1165.9053 1553.0732,-1156 1538.7952,-1150.7788 1350.0996,-1130.1624 1244.4791,-1118.9156"/>
<polygon fill="#000000" stroke="#000000" points="1244.8398,-1115.4343 1234.5257,-1117.8573 1244.0996,-1122.395 1244.8398,-1115.4343"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.09s)">
<text text-anchor="middle" x="1596.7974" y="-1158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N33 -->
<g id="edge103" class="edge">
<title>N79&#45;&gt;N33</title>
<g id="a_edge103"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.01s)">
<path fill="none" stroke="#000000" d="M1658.8099,-1199.3687C1669.7925,-1185.1995 1686.9576,-1166.2453 1706.625,-1156 1741.6229,-1137.7686 1846.4756,-1124.1141 1912.8667,-1117.0062"/>
<polygon fill="#000000" stroke="#000000" points="1913.5962,-1120.4489 1923.1752,-1115.922 1912.8639,-1113.4873 1913.5962,-1120.4489"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.01s)">
<text text-anchor="middle" x="1722.7974" y="-1158.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.01s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N8 -->
<g id="edge42" class="edge">
<title>N80&#45;&gt;N8</title>
<g id="a_edge42"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.11s)">
<path fill="none" stroke="#000000" d="M897.0732,-755.8538C897.0732,-743.7154 897.0732,-727.2615 897.0732,-712.1791"/>
<polygon fill="#000000" stroke="#000000" points="900.5733,-712.0263 897.0732,-702.0263 893.5733,-712.0264 900.5733,-712.0263"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.11s)">
<text text-anchor="middle" x="913.541" y="-722.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion.svg.









































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1710)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1710 3134.749,-1710 3134.749,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="8,-1482 8,-1698 670,-1698 670,-1482 8,-1482"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="661.8438,-1690 16.1562,-1690 16.1562,-1490 661.8438,-1490 661.8438,-1690"/>
<text text-anchor="start" x="24.0781" y="-1660.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="24.0781" y="-1628.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="24.0781" y="-1596.4" font-family="Times,serif" font-size="32.00" fill="#000000">33.65s of 42.15s total (79.83%)</text>
<text text-anchor="start" x="24.0781" y="-1564.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 129 nodes (cum &lt;= 0.21s)</text>
<text text-anchor="start" x="24.0781" y="-1532.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 29 edges (freq &lt;= 0.04s)</text>
<text text-anchor="start" x="24.0781" y="-1500.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 126 (cum &gt;= 0.35s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (39.72s)">
<polygon fill="#f8f8f8" stroke="#000000" points="840.3313,-1440 601.6687,-1440 601.6687,-1366 840.3313,-1366 840.3313,-1440"/>
<text text-anchor="middle" x="721" y="-1418.4" font-family="Times,serif" font-size="22.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="721" y="-1396.4" font-family="Times,serif" font-size="22.00" fill="#000000">3.63s(8.61%)</text>
<text text-anchor="middle" x="721" y="-1374.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 39.72s(94.23%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).loadLoopWords.func1 (39.49s)">
<polygon fill="#f8f8f8" stroke="#000000" points="816.9839,-1308.5 625.0161,-1308.5 625.0161,-1267.5 816.9839,-1267.5 816.9839,-1308.5"/>
<text text-anchor="middle" x="721" y="-1295.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="721" y="-1284.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.12s(0.28%)</text>
<text text-anchor="middle" x="721" y="-1273.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 39.49s(93.69%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge87" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge87"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.25s)">
<path fill="none" stroke="#000000" d="M691.4546,-1365.7545C688.2181,-1360.0733 685.4226,-1354.0718 683.5518,-1348 680.168,-1337.018 684.2629,-1326.0469 690.8207,-1316.5464"/>
<polygon fill="#000000" stroke="#000000" points="693.6364,-1318.6283 697.0915,-1308.6127 688.1447,-1314.2876 693.6364,-1318.6283"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.25s)">
<text text-anchor="middle" x="700.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (37.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="282.5547,-1307 125.4453,-1307 125.4453,-1269 282.5547,-1269 282.5547,-1307"/>
<text text-anchor="middle" x="204" y="-1295" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="204" y="-1285" font-family="Times,serif" font-size="10.00" fill="#000000">0.06s(0.14%)</text>
<text text-anchor="middle" x="204" y="-1275" font-family="Times,serif" font-size="10.00" fill="#000000">of 37.03s(87.85%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N4 -->
<g id="edge95" class="edge">
<title>N1&#45;&gt;N4</title>
<g id="a_edge95"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.15s)">
<path fill="none" stroke="#000000" d="M601.7349,-1379.5001C485.418,-1356.4698 321.7671,-1323.7299 292,-1316 285.0655,-1314.1992 277.8705,-1312.174 270.7172,-1310.0574"/>
<polygon fill="#000000" stroke="#000000" points="271.6019,-1306.6685 261.017,-1307.1272 269.5776,-1313.3695 271.6019,-1306.6685"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.15s)">
<text text-anchor="middle" x="456.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="main.tryParseFloat (7.82s)">
<polygon fill="#f8f8f8" stroke="#000000" points="607.4844,-1310 500.5156,-1310 500.5156,-1266 607.4844,-1266 607.4844,-1310"/>
<text text-anchor="middle" x="554" y="-1296.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="554" y="-1284.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.27s(0.64%)</text>
<text text-anchor="middle" x="554" y="-1272.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 7.82s(18.55%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N7 -->
<g id="edge5" class="edge">
<title>N1&#45;&gt;N7</title>
<g id="a_edge5"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (7.82s)">
<path fill="none" stroke="#000000" d="M667.2409,-1365.9803C643.6715,-1349.7498 616.4654,-1331.0151 594.6279,-1315.9773"/>
<polygon fill="#000000" stroke="#000000" points="596.4576,-1312.9877 586.2364,-1310.1987 592.4874,-1318.753 596.4576,-1312.9877"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (7.82s)">
<text text-anchor="middle" x="654.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.82s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.tryParseInt (6.05s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1249.6549,-1310 1150.3451,-1310 1150.3451,-1266 1249.6549,-1266 1249.6549,-1310"/>
<text text-anchor="middle" x="1200" y="-1296.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="1200" y="-1284.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.21s(0.5%)</text>
<text text-anchor="middle" x="1200" y="-1272.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 6.05s(14.35%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N11 -->
<g id="edge8" class="edge">
<title>N1&#45;&gt;N11</title>
<g id="a_edge8"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (6.05s)">
<path fill="none" stroke="#000000" d="M840.4472,-1386.7652C925.7393,-1373.134 1042.3583,-1350.3048 1141,-1316 1142.8874,-1315.3436 1144.7947,-1314.6449 1146.71,-1313.9127"/>
<polygon fill="#000000" stroke="#000000" points="1148.3537,-1317.0228 1156.3,-1310.0152 1145.7181,-1310.5379 1148.3537,-1317.0228"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (6.05s)">
<text text-anchor="middle" x="1091.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 6.05s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="main.getNonPrefixOf (3.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1132.3776,-1307 1029.6224,-1307 1029.6224,-1269 1132.3776,-1269 1132.3776,-1307"/>
<text text-anchor="middle" x="1081" y="-1295" font-family="Times,serif" font-size="10.00" fill="#000000">main.getNonPrefixOf</text>
<text text-anchor="middle" x="1081" y="-1285" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.071%)</text>
<text text-anchor="middle" x="1081" y="-1275" font-family="Times,serif" font-size="10.00" fill="#000000">of 3.66s(8.68%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N16 -->
<g id="edge13" class="edge">
<title>N1&#45;&gt;N16</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; main.getNonPrefixOf (3.66s)">
<path fill="none" stroke="#000000" d="M840.344,-1374.1131C895.8385,-1359.2068 962.1963,-1339.2574 1020,-1316 1023.8309,-1314.4586 1027.7702,-1312.8074 1031.7143,-1311.1064"/>
<polygon fill="#000000" stroke="#000000" points="1033.1337,-1314.3057 1040.8775,-1307.0749 1030.3147,-1307.8984 1033.1337,-1314.3057"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.getNonPrefixOf (3.66s)">
<text text-anchor="middle" x="981.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.66s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="main.NilWord.func1 (3.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1011.2664,-1308.5 904.7336,-1308.5 904.7336,-1267.5 1011.2664,-1267.5 1011.2664,-1308.5"/>
<text text-anchor="middle" x="958" y="-1295.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="958" y="-1284.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.11s(0.26%)</text>
<text text-anchor="middle" x="958" y="-1273.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 3.48s(8.26%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N18 -->
<g id="edge47" class="edge">
<title>N1&#45;&gt;N18</title>
<g id="a_edge47"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.77s)">
<path fill="none" stroke="#000000" d="M827.8619,-1365.9139C841.2377,-1360.3506 854.5733,-1354.3373 867,-1348 885.7756,-1338.425 905.4384,-1325.8248 921.6626,-1314.644"/>
<polygon fill="#000000" stroke="#000000" points="924.1061,-1317.2062 930.2948,-1308.6067 920.0941,-1311.4699 924.1061,-1317.2062"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.77s)">
<text text-anchor="middle" x="907.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.77s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="main.getPrefixOf (2.81s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1996.6554,-1307 1911.3446,-1307 1911.3446,-1269 1996.6554,-1269 1996.6554,-1307"/>
<text text-anchor="middle" x="1954" y="-1295" font-family="Times,serif" font-size="10.00" fill="#000000">main.getPrefixOf</text>
<text text-anchor="middle" x="1954" y="-1285" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.071%)</text>
<text text-anchor="middle" x="1954" y="-1275" font-family="Times,serif" font-size="10.00" fill="#000000">of 2.81s(6.67%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N22 -->
<g id="edge18" class="edge">
<title>N1&#45;&gt;N22</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; main.getPrefixOf (2.81s)">
<path fill="none" stroke="#000000" d="M840.2495,-1402.4431C1120.1563,-1400.4219 1802.7829,-1391.0827 1897,-1348 1912.394,-1340.9608 1925.6912,-1327.6932 1935.5612,-1315.4207"/>
<polygon fill="#000000" stroke="#000000" points="1938.5658,-1317.2515 1941.8304,-1307.1722 1932.9928,-1313.0158 1938.5658,-1317.2515"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.getPrefixOf (2.81s)">
<text text-anchor="middle" x="1933.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.81s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.mapaccess2_faststr (2.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1460.7736,-1316 1267.2264,-1316 1267.2264,-1260 1460.7736,-1260 1460.7736,-1316"/>
<text text-anchor="middle" x="1364" y="-1299.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="1364" y="-1283.2" font-family="Times,serif" font-size="16.00" fill="#000000">1.31s(3.11%)</text>
<text text-anchor="middle" x="1364" y="-1267.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 2.27s(5.39%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N26 -->
<g id="edge24" class="edge">
<title>N1&#45;&gt;N26</title>
<g id="a_edge24"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (2.27s)">
<path fill="none" stroke="#000000" d="M840.2898,-1388.5663C917.9202,-1378.5958 1021.2412,-1364.2385 1112,-1348 1174.733,-1336.7759 1192.3858,-1332.1668 1257.4045,-1316.3673"/>
<polygon fill="#000000" stroke="#000000" points="1258.4598,-1319.7128 1267.3521,-1313.9529 1256.8087,-1312.9103 1258.4598,-1319.7128"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (2.27s)">
<text text-anchor="middle" x="1200.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.27s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="main.(*CodeQuotation).cloneCode (2s)">
<polygon fill="#f8f8f8" stroke="#000000" points="482.9492,-1310 301.0508,-1310 301.0508,-1266 482.9492,-1266 482.9492,-1310"/>
<text text-anchor="middle" x="392" y="-1296.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="392" y="-1284.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.31s(0.74%)</text>
<text text-anchor="middle" x="392" y="-1272.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 2s(4.74%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N27 -->
<g id="edge27" class="edge">
<title>N1&#45;&gt;N27</title>
<g id="a_edge27"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (2s)">
<path fill="none" stroke="#000000" d="M615.0914,-1365.9803C565.915,-1348.7909 508.7027,-1328.7927 464.5289,-1313.352"/>
<polygon fill="#000000" stroke="#000000" points="465.6188,-1310.0254 455.024,-1310.0297 463.309,-1316.6334 465.6188,-1310.0254"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (2s)">
<text text-anchor="middle" x="564.9741" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="main.(*machine).executeMathWord (1.71s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1667.4688,-1310 1478.5312,-1310 1478.5312,-1266 1667.4688,-1266 1667.4688,-1310"/>
<text text-anchor="middle" x="1573" y="-1296.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="1573" y="-1284.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.21s(0.5%)</text>
<text text-anchor="middle" x="1573" y="-1272.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.71s(4.06%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N29 -->
<g id="edge29" class="edge">
<title>N1&#45;&gt;N29</title>
<g id="a_edge29"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.71s)">
<path fill="none" stroke="#000000" d="M840.2994,-1395.1324C988.878,-1383.9641 1249.9774,-1359.8275 1470,-1316 1475.3954,-1314.9253 1480.9245,-1313.7233 1486.4839,-1312.4379"/>
<polygon fill="#000000" stroke="#000000" points="1487.5886,-1315.7726 1496.5011,-1310.0439 1485.9614,-1308.9643 1487.5886,-1315.7726"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.71s)">
<text text-anchor="middle" x="1386.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.71s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.convT2I (1.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1843.4766,-1210 1746.5234,-1210 1746.5234,-1166 1843.4766,-1166 1843.4766,-1210"/>
<text text-anchor="middle" x="1795" y="-1196.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1795" y="-1184.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.29s(0.69%)</text>
<text text-anchor="middle" x="1795" y="-1172.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.63s(3.87%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N30 -->
<g id="edge37" class="edge">
<title>N1&#45;&gt;N30</title>
<g id="a_edge37"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.10s)">
<path fill="none" stroke="#000000" d="M840.1672,-1399.8319C1051.9424,-1393.5337 1485.5406,-1377.4429 1634,-1348 1676.8767,-1339.4966 1693.7634,-1344.3909 1727,-1316 1756.7806,-1290.5613 1775.4852,-1248.7389 1785.5734,-1219.8592"/>
<polygon fill="#000000" stroke="#000000" points="1788.9405,-1220.8257 1788.7863,-1210.232 1782.3005,-1218.6096 1788.9405,-1220.8257"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.10s)">
<text text-anchor="middle" x="1784.7241" y="-1283.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.10s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.growslice (1.61s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1835.4766,-1008.5 1732.5234,-1008.5 1732.5234,-964.5 1835.4766,-964.5 1835.4766,-1008.5"/>
<text text-anchor="middle" x="1784" y="-994.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="1784" y="-982.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.34s(0.81%)</text>
<text text-anchor="middle" x="1784" y="-970.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.61s(3.82%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N31 -->
<g id="edge33" class="edge">
<title>N1&#45;&gt;N31</title>
<g id="a_edge33"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.41s)">
<path fill="none" stroke="#000000" d="M840.5778,-1401.1523C1107.2049,-1395.9416 1732.7118,-1377.2593 1805,-1316 1892.7881,-1241.6056 1903.8613,-1169.3836 1860,-1063 1852.4136,-1044.5995 1838.0212,-1028.2887 1823.7841,-1015.5052"/>
<polygon fill="#000000" stroke="#000000" points="1825.8045,-1012.6272 1815.9347,-1008.7753 1821.2483,-1017.9414 1825.8045,-1012.6272"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.41s)">
<text text-anchor="middle" x="1901.7241" y="-1183.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.41s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="main.(*machine).loadLocalWords.func1 (1.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2191.641,-1307 2014.359,-1307 2014.359,-1269 2191.641,-1269 2191.641,-1307"/>
<text text-anchor="middle" x="2103" y="-1295" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="2103" y="-1285" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.071%)</text>
<text text-anchor="middle" x="2103" y="-1275" font-family="Times,serif" font-size="10.00" fill="#000000">of 1.12s(2.66%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N34 -->
<g id="edge36" class="edge">
<title>N1&#45;&gt;N34</title>
<g id="a_edge36"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (1.12s)">
<path fill="none" stroke="#000000" d="M840.2634,-1399.9686C1128.5292,-1392.3147 1847.2708,-1371.1615 1954,-1348 1989.6249,-1340.269 2027.7187,-1324.7885 2056.4708,-1311.4887"/>
<polygon fill="#000000" stroke="#000000" points="2058.2887,-1314.5015 2065.8463,-1307.0763 2055.3078,-1308.1679 2058.2887,-1314.5015"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (1.12s)">
<text text-anchor="middle" x="2016.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.12s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.deferreturn (1.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2849.7248,-1313 2724.2752,-1313 2724.2752,-1263 2849.7248,-1263 2849.7248,-1313"/>
<text text-anchor="middle" x="2787" y="-1297.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="2787" y="-1283.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.54s(1.28%)</text>
<text text-anchor="middle" x="2787" y="-1269.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.04s(2.47%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N35 -->
<g id="edge38" class="edge">
<title>N1&#45;&gt;N35</title>
<g id="a_edge38"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (1.04s)">
<path fill="none" stroke="#000000" d="M840.3552,-1398.613C1042.9751,-1391.2531 1467.2032,-1376.2224 1826,-1366 1996.2001,-1361.1509 2423.3732,-1371.5925 2592,-1348 2633.5396,-1342.1882 2678.3737,-1328.9149 2714.566,-1316.3265"/>
<polygon fill="#000000" stroke="#000000" points="2715.7907,-1319.6059 2724.0531,-1312.974 2713.4583,-1313.0059 2715.7907,-1319.6059"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (1.04s)">
<text text-anchor="middle" x="2673.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.04s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.memeqbody (1.01s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1728.0564,-1207 1587.9436,-1207 1587.9436,-1169 1728.0564,-1169 1728.0564,-1207"/>
<text text-anchor="middle" x="1658" y="-1191" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="1658" y="-1176" font-family="Times,serif" font-size="15.00" fill="#000000">1.01s(2.40%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N37 -->
<g id="edge50" class="edge">
<title>N1&#45;&gt;N37</title>
<g id="a_edge50"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.68s)">
<path fill="none" stroke="#000000" d="M840.1911,-1401.0559C1084.0116,-1395.8252 1621.4844,-1377.3851 1676,-1316 1700.0984,-1288.865 1686.5671,-1244.9331 1673.3317,-1216.2545"/>
<polygon fill="#000000" stroke="#000000" points="1676.43,-1214.6224 1668.9093,-1207.1598 1670.1348,-1217.6836 1676.43,-1214.6224"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.68s)">
<text text-anchor="middle" x="1706.7241" y="-1283.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.68s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.deferproc (0.90s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2565.6002,-1308.5 2470.3998,-1308.5 2470.3998,-1267.5 2565.6002,-1267.5 2565.6002,-1308.5"/>
<text text-anchor="middle" x="2518" y="-1295.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="2518" y="-1284.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.16s(0.38%)</text>
<text text-anchor="middle" x="2518" y="-1273.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.90s(2.14%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N41 -->
<g id="edge44" class="edge">
<title>N1&#45;&gt;N41</title>
<g id="a_edge44"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.90s)">
<path fill="none" stroke="#000000" d="M840.3611,-1398.8112C1042.9897,-1391.7433 1467.2303,-1377.1318 1826,-1366 1860.9974,-1364.9141 2423.7332,-1361.596 2456,-1348 2471.8526,-1341.3203 2485.9594,-1328.5588 2496.6965,-1316.5165"/>
<polygon fill="#000000" stroke="#000000" points="2499.4583,-1318.671 2503.2502,-1308.7779 2494.1166,-1314.1471 2499.4583,-1318.671"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.90s)">
<text text-anchor="middle" x="2493.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.90s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="main.(*CodeQuotation).nextWord (0.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2414.1039,-1306 2209.8961,-1306 2209.8961,-1270 2414.1039,-1270 2414.1039,-1306"/>
<text text-anchor="middle" x="2312" y="-1290.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2312" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.64s(1.52%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N48 -->
<g id="edge51" class="edge">
<title>N1&#45;&gt;N48</title>
<g id="a_edge51"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.64s)">
<path fill="none" stroke="#000000" d="M840.3084,-1400.3214C1119.1652,-1393.6869 1807.3431,-1375.0478 2037,-1348 2105.4166,-1339.9422 2181.8762,-1322.5638 2236.7728,-1308.5737"/>
<polygon fill="#000000" stroke="#000000" points="2237.9523,-1311.8843 2246.7654,-1306.0039 2236.2088,-1305.1049 2237.9523,-1311.8843"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.64s)">
<text text-anchor="middle" x="2136.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.64s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.makeslice (0.62s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2063.4424,-907 1966.5576,-907 1966.5576,-866 2063.4424,-866 2063.4424,-907"/>
<text text-anchor="middle" x="2015" y="-894.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.makeslice</text>
<text text-anchor="middle" x="2015" y="-883.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.17s(0.4%)</text>
<text text-anchor="middle" x="2015" y="-872.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.62s(1.47%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N50 -->
<g id="edge97" class="edge">
<title>N1&#45;&gt;N50</title>
<g id="a_edge97"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.makeslice (0.12s)">
<path fill="none" stroke="#000000" d="M840.2255,-1400.5704C1072.1901,-1395.1901 1576.4107,-1380.1192 1747,-1348 1791.6126,-1339.6002 1807.2526,-1342.6546 1844,-1316 1891.3474,-1281.6568 1898.615,-1263.6132 1922,-1210 1948.5901,-1149.0387 1906.6548,-1113.4431 1950,-1063 1965.6656,-1044.7691 1979.6081,-1055.962 2001,-1045 2023.1641,-1033.6423 2035.4664,-1035.0731 2047,-1013 2057.9087,-992.1227 2055.3712,-982.0179 2047,-960 2043.1961,-949.9951 2036.1659,-951.3745 2031,-942 2026.7678,-934.32 2023.5601,-925.4111 2021.1707,-917.0088"/>
<polygon fill="#000000" stroke="#000000" points="2024.5131,-915.9514 2018.6482,-907.1279 2017.7306,-917.6829 2024.5131,-915.9514"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.makeslice (0.12s)">
<text text-anchor="middle" x="1946.7241" y="-1136.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.ifaceeq (0.60s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2038.1256,-1010 1937.8744,-1010 1937.8744,-963 2038.1256,-963 2038.1256,-1010"/>
<text text-anchor="middle" x="1988" y="-995.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="1988" y="-982.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.53s(1.26%)</text>
<text text-anchor="middle" x="1988" y="-969.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.60s(1.42%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N51 -->
<g id="edge92" class="edge">
<title>N1&#45;&gt;N51</title>
<g id="a_edge92"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.19s)">
<path fill="none" stroke="#000000" d="M840.1705,-1398.9944C1161.0382,-1388.1302 2027.7096,-1358.2357 2157,-1348 2275.7032,-1338.6024 2343.9897,-1405.085 2423,-1316 2439.5147,-1297.3795 2437.9492,-1279.8992 2423,-1260 2375.0691,-1196.1979 2317.3059,-1253.7259 2250.5518,-1210 2229.285,-1196.0697 2234.3569,-1181.2291 2214,-1166 2169.0464,-1132.37 2141.7288,-1151.2078 2098,-1116 2075.4237,-1097.8229 2078.4177,-1085.3805 2060,-1063 2047.1902,-1047.4339 2032.0198,-1031.0485 2018.9153,-1017.4531"/>
<polygon fill="#000000" stroke="#000000" points="2021.3552,-1014.9417 2011.8756,-1010.21 2016.3354,-1019.8205 2021.3552,-1014.9417"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.19s)">
<text text-anchor="middle" x="2266.7241" y="-1183.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="main.wordIsWhitespace (0.46s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2706.1007,-1308.5 2583.8993,-1308.5 2583.8993,-1267.5 2706.1007,-1267.5 2706.1007,-1308.5"/>
<text text-anchor="middle" x="2645" y="-1295.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="2645" y="-1284.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.18s(0.43%)</text>
<text text-anchor="middle" x="2645" y="-1273.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.46s(1.09%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N64 -->
<g id="edge66" class="edge">
<title>N1&#45;&gt;N64</title>
<g id="a_edge66"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.46s)">
<path fill="none" stroke="#000000" d="M840.3583,-1398.7171C1042.9826,-1391.5106 1467.2171,-1376.7 1826,-1366 1902.4366,-1363.7204 2439.5055,-1365.2718 2514,-1348 2544.4675,-1340.936 2576.4216,-1326.4606 2601.143,-1313.498"/>
<polygon fill="#000000" stroke="#000000" points="2603.0827,-1316.4295 2610.2454,-1308.6226 2599.7776,-1310.2588 2603.0827,-1316.4295"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.46s)">
<text text-anchor="middle" x="2571.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.46s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge1" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge1"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (39.24s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M721,-1308.5286C721,-1321.7138 721,-1339.4023 721,-1355.9073"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="716.6251,-1355.9802 721,-1365.9803 725.3751,-1355.9803 716.6251,-1355.9802"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (39.24s)">
<text text-anchor="middle" x="741.2241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 39.24s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.newobject (10.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1289.6256,-910 1176.3744,-910 1176.3744,-863 1289.6256,-863 1289.6256,-910"/>
<text text-anchor="middle" x="1233" y="-895.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="1233" y="-882.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.43s(1.02%)</text>
<text text-anchor="middle" x="1233" y="-869.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 10.52s(24.96%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge100" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge100"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.09s)">
<path fill="none" stroke="#000000" d="M719.2851,-1267.1866C718.0482,-1242.1065 718.6222,-1199.2012 733,-1166 768.921,-1083.051 810.8204,-1083.8147 867,-1013 885.014,-990.2933 882.6232,-978.4222 905,-960 931.4094,-938.2579 942.2613,-937.9172 975,-928 1038.3986,-908.7954 1113.4096,-897.9973 1166.1609,-892.2639"/>
<polygon fill="#000000" stroke="#000000" points="1166.8265,-895.7132 1176.4043,-891.1837 1166.0924,-888.7518 1166.8265,-895.7132"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.09s)">
<text text-anchor="middle" x="835.7241" y="-1085.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="runtime.goexit (38.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="761.7699,-1608 680.2301,-1608 680.2301,-1572 761.7699,-1572 761.7699,-1608"/>
<text text-anchor="middle" x="721" y="-1591.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="721" y="-1583.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 38.57s(91.51%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N1 -->
<g id="edge2" class="edge">
<title>N3&#45;&gt;N1</title>
<g id="a_edge2"><a xlink:title="runtime.goexit ... main.(*machine).execute (37.59s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M721,-1571.7292C721,-1543.8892 721,-1489.9273 721,-1450.4997"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="725.3751,-1450.3069 721,-1440.307 716.6251,-1450.307 725.3751,-1450.3069"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (37.59s)">
<text text-anchor="middle" x="741.2241" y="-1460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 37.59s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.osyield (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2499.7699,-1421 2426.2301,-1421 2426.2301,-1385 2499.7699,-1385 2499.7699,-1421"/>
<text text-anchor="middle" x="2463" y="-1404.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="2463" y="-1396.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.41s(0.97%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N71 -->
<g id="edge99" class="edge">
<title>N3&#45;&gt;N71</title>
<g id="a_edge99"><a xlink:title="runtime.goexit ... runtime.osyield (0.12s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M761.9183,-1585.6075C996.2195,-1560.4558 2165.9482,-1434.8879 2415.9379,-1408.052"/>
<polygon fill="#000000" stroke="#000000" points="2416.5661,-1411.5048 2426.1354,-1406.9573 2415.8189,-1404.5448 2416.5661,-1411.5048"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="runtime.goexit ... runtime.osyield (0.12s)">
<text text-anchor="middle" x="1964.7241" y="-1460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.gcMarkDone (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1920.5899,-1421 1835.4101,-1421 1835.4101,-1385 1920.5899,-1385 1920.5899,-1421"/>
<text text-anchor="middle" x="1878" y="-1404.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkDone</text>
<text text-anchor="middle" x="1878" y="-1396.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.38s(0.9%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N76 -->
<g id="edge78" class="edge">
<title>N3&#45;&gt;N76</title>
<g id="a_edge78"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.38s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M737.3137,-1571.736C765.505,-1541.6287 826.6793,-1482.4787 892.5518,-1458 980.085,-1425.472 1633.0815,-1408.4607 1825.0648,-1404.1262"/>
<polygon fill="#000000" stroke="#000000" points="1825.2678,-1407.6226 1835.187,-1403.8998 1825.1113,-1400.6244 1825.2678,-1407.6226"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.38s)">
<text text-anchor="middle" x="909.7241" y="-1460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (36.88s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M237.2795,-1307.0438C262.3989,-1320.567 298.1351,-1338.0283 331.5518,-1348 416.0899,-1373.2265 514.4928,-1386.999 591.2334,-1394.4535"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="591.0677,-1398.8323 601.4357,-1395.4198 591.8928,-1390.1213 591.0677,-1398.8323"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (36.88s)">
<text text-anchor="middle" x="352.2241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 36.88s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N6 -->
<g id="edge105" class="edge">
<title>N4&#45;&gt;N6</title>
<g id="a_edge105"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.05s)">
<path fill="none" stroke="#000000" d="M224.6518,-1268.6669C242.3484,-1249.9186 265,-1219.7245 265,-1188 265,-1188 265,-1188 265,-986.5 265,-895.5916 371.4311,-943.5484 461,-928 595.5785,-904.6384 1004.1426,-892.1918 1165.9647,-888.0712"/>
<polygon fill="#000000" stroke="#000000" points="1166.3527,-891.5627 1176.2613,-887.8118 1166.1763,-884.5649 1166.3527,-891.5627"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.05s)">
<text text-anchor="middle" x="281.7241" y="-1085.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.mallocgc (12.76s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1330.8088,-813 1135.1912,-813 1135.1912,-733 1330.8088,-733 1330.8088,-813"/>
<text text-anchor="middle" x="1233" y="-789.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="1233" y="-765.8" font-family="Times,serif" font-size="24.00" fill="#000000">5.44s(12.91%)</text>
<text text-anchor="middle" x="1233" y="-741.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 12.76s(30.27%)</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.heapBitsSetType (2.55s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1337.3289,-683 1128.6711,-683 1128.6711,-637 1337.3289,-637 1337.3289,-683"/>
<text text-anchor="middle" x="1233" y="-663.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1233" y="-644.8" font-family="Times,serif" font-size="19.00" fill="#000000">2.55s(6.05%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N23 -->
<g id="edge21" class="edge">
<title>N5&#45;&gt;N23</title>
<g id="a_edge21"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (2.55s)">
<path fill="none" stroke="#000000" d="M1233,-732.8423C1233,-719.9875 1233,-705.8978 1233,-693.5643"/>
<polygon fill="#000000" stroke="#000000" points="1236.5001,-693.2531 1233,-683.2531 1229.5001,-693.2532 1236.5001,-693.2531"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (2.55s)">
<text text-anchor="middle" x="1249.7241" y="-703.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.55s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.(*mcache).nextFree (1.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2207.9531,-678 2090.0469,-678 2090.0469,-642 2207.9531,-642 2207.9531,-678"/>
<text text-anchor="middle" x="2149" y="-666.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="2149" y="-657.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.02s(0.047%)</text>
<text text-anchor="middle" x="2149" y="-648.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 1.57s(3.72%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N32 -->
<g id="edge31" class="edge">
<title>N5&#45;&gt;N32</title>
<g id="a_edge31"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (1.57s)">
<path fill="none" stroke="#000000" d="M1331.028,-760.907C1517.3187,-737.9258 1918.2554,-688.4652 2079.6234,-668.5585"/>
<polygon fill="#000000" stroke="#000000" points="2080.4049,-671.9887 2089.9011,-667.2906 2079.5478,-665.0413 2080.4049,-671.9887"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (1.57s)">
<text text-anchor="middle" x="1815.7241" y="-703.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.57s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.memclr (0.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3112.8039,-36 3007.1961,-36 3007.1961,0 3112.8039,0 3112.8039,-36"/>
<text text-anchor="middle" x="3060" y="-20.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="3060" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.66s(1.57%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N46 -->
<g id="edge104" class="edge">
<title>N5&#45;&gt;N46</title>
<g id="a_edge104"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.06s)">
<path fill="none" stroke="#000000" d="M1135.3033,-747.7499C1065.5445,-726.7538 984,-694.7735 984,-660 984,-660 984,-660 984,-104 984,-52.302 2649.636,-24.2184 2996.9929,-18.9239"/>
<polygon fill="#000000" stroke="#000000" points="2997.1761,-22.4216 3007.1218,-18.7702 2997.0699,-15.4224 2997.1761,-22.4216"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.06s)">
<text text-anchor="middle" x="1000.7241" y="-364.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.mProf_Malloc (0.50s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1110.2362,-678 1011.7638,-678 1011.7638,-642 1110.2362,-642 1110.2362,-678"/>
<text text-anchor="middle" x="1061" y="-666.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.mProf_Malloc</text>
<text text-anchor="middle" x="1061" y="-657.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.02s(0.047%)</text>
<text text-anchor="middle" x="1061" y="-648.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.50s(1.19%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N60 -->
<g id="edge63" class="edge">
<title>N5&#45;&gt;N60</title>
<g id="a_edge63"><a xlink:title="runtime.mallocgc ... runtime.mProf_Malloc (0.50s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1171.8749,-732.8423C1146.9245,-716.4504 1118.9177,-698.0506 1097.2946,-683.8447"/>
<polygon fill="#000000" stroke="#000000" points="1099.0247,-680.7936 1088.7452,-678.228 1095.1811,-686.644 1099.0247,-680.7936"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.mallocgc ... runtime.mProf_Malloc (0.50s)">
<text text-anchor="middle" x="1158.7241" y="-703.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N5 -->
<g id="edge4" class="edge">
<title>N6&#45;&gt;N5</title>
<g id="a_edge4"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (10.09s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M1233,-862.9827C1233,-851.496 1233,-837.2045 1233,-823.4179"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1236.5001,-823.0283 1233,-813.0283 1229.5001,-823.0284 1236.5001,-823.0283"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (10.09s)">
<text text-anchor="middle" x="1253.2241" y="-833.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 10.09s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="strconv.ParseFloat (7.55s)">
<polygon fill="#f8f8f8" stroke="#000000" points="606.2072,-1210 501.7928,-1210 501.7928,-1166 606.2072,-1166 606.2072,-1210"/>
<text text-anchor="middle" x="554" y="-1196.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.ParseFloat</text>
<text text-anchor="middle" x="554" y="-1184.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.24s(0.57%)</text>
<text text-anchor="middle" x="554" y="-1172.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 7.55s(17.91%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N8 -->
<g id="edge6" class="edge">
<title>N7&#45;&gt;N8</title>
<g id="a_edge6"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (7.55s)">
<path fill="none" stroke="#000000" d="M554,-1265.8068C554,-1252.4717 554,-1235.2675 554,-1220.4288"/>
<polygon fill="#000000" stroke="#000000" points="557.5001,-1220.1312 554,-1210.1312 550.5001,-1220.1312 557.5001,-1220.1312"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (7.55s)">
<text text-anchor="middle" x="570.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.55s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="strconv.atof64 (7.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="614.0686,-1116 493.9314,-1116 493.9314,-1063 614.0686,-1063 614.0686,-1116"/>
<text text-anchor="middle" x="554" y="-1100" font-family="Times,serif" font-size="15.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="554" y="-1085" font-family="Times,serif" font-size="15.00" fill="#000000">0.90s(2.14%)</text>
<text text-anchor="middle" x="554" y="-1070" font-family="Times,serif" font-size="15.00" fill="#000000">of 7.31s(17.34%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N9 -->
<g id="edge7" class="edge">
<title>N8&#45;&gt;N9</title>
<g id="a_edge7"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (7.31s)">
<path fill="none" stroke="#000000" d="M554,-1165.6488C554,-1154.0935 554,-1139.6885 554,-1126.5267"/>
<polygon fill="#000000" stroke="#000000" points="557.5001,-1126.3159 554,-1116.3159 550.5001,-1126.316 557.5001,-1126.3159"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (7.31s)">
<text text-anchor="middle" x="570.7241" y="-1136.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.31s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N6 -->
<g id="edge12" class="edge">
<title>N9&#45;&gt;N6</title>
<g id="a_edge12"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (4.11s)">
<path fill="none" stroke="#000000" d="M499.2559,-1062.964C480.0723,-1050.6361 460.6799,-1033.9942 450.0645,-1013 439.4354,-991.9789 434.2057,-977.4173 450.0645,-960 497.8798,-907.4856 985.2481,-891.7808 1166.0106,-887.7416"/>
<polygon fill="#000000" stroke="#000000" points="1166.2646,-891.237 1176.1858,-887.5194 1166.1117,-884.2387 1166.2646,-891.237"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (4.11s)">
<text text-anchor="middle" x="467.4678" y="-982.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.11s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.duffzero (1.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="615.6723,-1006.5 492.3277,-1006.5 492.3277,-966.5 615.6723,-966.5 615.6723,-1006.5"/>
<text text-anchor="middle" x="554" y="-989.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="554" y="-973.7" font-family="Times,serif" font-size="16.00" fill="#000000">1.22s(2.89%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N33 -->
<g id="edge35" class="edge">
<title>N9&#45;&gt;N33</title>
<g id="a_edge35"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (1.15s)">
<path fill="none" stroke="#000000" d="M554,-1062.9749C554,-1048.8735 554,-1031.4759 554,-1016.8389"/>
<polygon fill="#000000" stroke="#000000" points="557.5001,-1016.7553 554,-1006.7554 550.5001,-1016.7554 557.5001,-1016.7553"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (1.15s)">
<text text-anchor="middle" x="570.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.15s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="strconv.special (0.54s)">
<polygon fill="#f8f8f8" stroke="#000000" points="734.1256,-1010 633.8744,-1010 633.8744,-963 734.1256,-963 734.1256,-1010"/>
<text text-anchor="middle" x="684" y="-995.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.special</text>
<text text-anchor="middle" x="684" y="-982.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.50s(1.19%)</text>
<text text-anchor="middle" x="684" y="-969.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.54s(1.28%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N57 -->
<g id="edge58" class="edge">
<title>N9&#45;&gt;N57</title>
<g id="a_edge58"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.54s)">
<path fill="none" stroke="#000000" d="M587.4782,-1062.9749C605.4343,-1048.7482 627.6248,-1031.1665 646.1997,-1016.4494"/>
<polygon fill="#000000" stroke="#000000" points="648.5185,-1019.0777 654.183,-1010.1242 644.1714,-1013.5911 648.5185,-1019.0777"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.54s)">
<text text-anchor="middle" x="643.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="strconv.readFloat (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="857.7688,-1004.5 752.2312,-1004.5 752.2312,-968.5 857.7688,-968.5 857.7688,-1004.5"/>
<text text-anchor="middle" x="805" y="-989.1" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.readFloat</text>
<text text-anchor="middle" x="805" y="-976.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.39s(0.93%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N75 -->
<g id="edge76" class="edge">
<title>N9&#45;&gt;N75</title>
<g id="a_edge76"><a xlink:title="strconv.atof64 &#45;&gt; strconv.readFloat (0.39s)">
<path fill="none" stroke="#000000" d="M614.132,-1065.5096C651.3303,-1050.5824 700.0245,-1030.8863 743,-1013 746.4448,-1011.5663 749.993,-1010.0788 753.5653,-1008.5731"/>
<polygon fill="#000000" stroke="#000000" points="755.1792,-1011.6906 763.0238,-1004.5694 752.4505,-1005.2444 755.1792,-1011.6906"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.readFloat (0.39s)">
<text text-anchor="middle" x="713.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.systemstack (6.51s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2755.2005,-587 2624.7995,-587 2624.7995,-537 2755.2005,-537 2755.2005,-587"/>
<text text-anchor="middle" x="2690" y="-571.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2690" y="-557.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.54s(1.28%)</text>
<text text-anchor="middle" x="2690" y="-543.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 6.51s(15.44%)</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.mach_semaphore_signal (2.96s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2830.4219,-487 2549.5781,-487 2549.5781,-439 2830.4219,-439 2830.4219,-487"/>
<text text-anchor="middle" x="2690" y="-467" font-family="Times,serif" font-size="20.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2690" y="-447" font-family="Times,serif" font-size="20.00" fill="#000000">2.96s(7.02%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N19 -->
<g id="edge20" class="edge">
<title>N10&#45;&gt;N19</title>
<g id="a_edge20"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (2.62s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2690,-536.762C2690,-524.7378 2690,-510.1762 2690,-497.1782"/>
<polygon fill="#000000" stroke="#000000" points="2693.5001,-497.1676 2690,-487.1677 2686.5001,-497.1677 2693.5001,-497.1676"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (2.62s)">
<text text-anchor="middle" x="2706.7241" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.62s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.96s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3130.1952,-481 2989.8048,-481 2989.8048,-445 3130.1952,-445 3130.1952,-481"/>
<text text-anchor="middle" x="3060" y="-469.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="3060" y="-460.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.024%)</text>
<text text-anchor="middle" x="3060" y="-451.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.96s(2.28%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N38 -->
<g id="edge41" class="edge">
<title>N10&#45;&gt;N38</title>
<g id="a_edge41"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.96s)">
<path fill="none" stroke="#000000" d="M2755.2243,-546.0359C2814.3412,-531.3658 2903.7692,-508.673 2981,-487 2984.5193,-486.0124 2988.1213,-484.9834 2991.7546,-483.9311"/>
<polygon fill="#000000" stroke="#000000" points="2992.797,-487.2729 3001.4102,-481.1034 2990.8296,-480.5551 2992.797,-487.2729"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.96s)">
<text text-anchor="middle" x="2925.7241" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.96s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.deferproc.func1 (0.62s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2531.3956,-483.5 2408.6044,-483.5 2408.6044,-442.5 2531.3956,-442.5 2531.3956,-483.5"/>
<text text-anchor="middle" x="2470" y="-470.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2470" y="-459.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.16s(0.38%)</text>
<text text-anchor="middle" x="2470" y="-448.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.62s(1.47%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N49 -->
<g id="edge53" class="edge">
<title>N10&#45;&gt;N49</title>
<g id="a_edge53"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.62s)">
<path fill="none" stroke="#000000" d="M2634.2003,-536.8901C2600.6888,-521.8099 2558.2297,-502.7034 2524.8832,-487.6974"/>
<polygon fill="#000000" stroke="#000000" points="2526.2899,-484.4925 2515.7344,-483.5805 2523.4173,-490.8759 2526.2899,-484.4925"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.62s)">
<text text-anchor="middle" x="2609.7241" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.62s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.(*mheap).alloc.func1 (0.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2971.7092,-481 2848.2908,-481 2848.2908,-445 2971.7092,-445 2971.7092,-481"/>
<text text-anchor="middle" x="2910" y="-469.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="2910" y="-460.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.02s(0.047%)</text>
<text text-anchor="middle" x="2910" y="-451.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.52s(1.23%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N58 -->
<g id="edge60" class="edge">
<title>N10&#45;&gt;N58</title>
<g id="a_edge60"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.52s)">
<path fill="none" stroke="#000000" d="M2745.7997,-536.8901C2781.173,-520.9721 2826.5156,-500.568 2860.5871,-485.2358"/>
<polygon fill="#000000" stroke="#000000" points="2862.1975,-488.3492 2869.8805,-481.0538 2859.3249,-481.9658 2862.1975,-488.3492"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.52s)">
<text text-anchor="middle" x="2829.7241" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.52s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="strconv.Atoi (5.84s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1249.6549,-1210 1150.3451,-1210 1150.3451,-1166 1249.6549,-1166 1249.6549,-1210"/>
<text text-anchor="middle" x="1200" y="-1196.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="1200" y="-1184.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.21s(0.5%)</text>
<text text-anchor="middle" x="1200" y="-1172.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 5.84s(13.86%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N12 -->
<g id="edge9" class="edge">
<title>N11&#45;&gt;N12</title>
<g id="a_edge9"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (5.84s)">
<path fill="none" stroke="#000000" d="M1200,-1265.8068C1200,-1252.4717 1200,-1235.2675 1200,-1220.4288"/>
<polygon fill="#000000" stroke="#000000" points="1203.5001,-1220.1312 1200,-1210.1312 1196.5001,-1220.1312 1203.5001,-1220.1312"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (5.84s)">
<text text-anchor="middle" x="1216.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.84s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="strconv.ParseInt (5.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1261.0686,-1116 1140.9314,-1116 1140.9314,-1063 1261.0686,-1063 1261.0686,-1116"/>
<text text-anchor="middle" x="1201" y="-1100" font-family="Times,serif" font-size="15.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="1201" y="-1085" font-family="Times,serif" font-size="15.00" fill="#000000">0.79s(1.87%)</text>
<text text-anchor="middle" x="1201" y="-1070" font-family="Times,serif" font-size="15.00" fill="#000000">of 5.63s(13.36%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N13 -->
<g id="edge10" class="edge">
<title>N12&#45;&gt;N13</title>
<g id="a_edge10"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (5.63s)">
<path fill="none" stroke="#000000" d="M1200.2269,-1165.6488C1200.3442,-1154.0935 1200.4905,-1139.6885 1200.6241,-1126.5267"/>
<polygon fill="#000000" stroke="#000000" points="1204.126,-1126.351 1200.7278,-1116.3159 1197.1263,-1126.2798 1204.126,-1126.351"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (5.63s)">
<text text-anchor="middle" x="1217.7241" y="-1136.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.63s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="strconv.ParseUint (4.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1294.0913,-1013 1171.9087,-1013 1171.9087,-960 1294.0913,-960 1294.0913,-1013"/>
<text text-anchor="middle" x="1233" y="-997" font-family="Times,serif" font-size="15.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="1233" y="-982" font-family="Times,serif" font-size="15.00" fill="#000000">0.95s(2.25%)</text>
<text text-anchor="middle" x="1233" y="-967" font-family="Times,serif" font-size="15.00" fill="#000000">of 4.43s(10.51%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N14 -->
<g id="edge11" class="edge">
<title>N13&#45;&gt;N14</title>
<g id="a_edge11"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (4.43s)">
<path fill="none" stroke="#000000" d="M1209.2408,-1062.9749C1213.0185,-1050.8154 1217.5577,-1036.2049 1221.6518,-1023.0269"/>
<polygon fill="#000000" stroke="#000000" points="1225.0513,-1023.8813 1224.6759,-1013.2932 1218.3665,-1021.8045 1225.0513,-1023.8813"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (4.43s)">
<text text-anchor="middle" x="1235.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.43s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N51 -->
<g id="edge75" class="edge">
<title>N13&#45;&gt;N51</title>
<g id="a_edge75"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.41s)">
<path fill="none" stroke="#000000" d="M1261.2086,-1086.2711C1437.6444,-1076.7643 1941.5563,-1049.2729 1949,-1045 1959.3984,-1039.031 1967.5588,-1029.03 1973.6678,-1018.9699"/>
<polygon fill="#000000" stroke="#000000" points="1976.7337,-1020.6582 1978.5129,-1010.2138 1970.6088,-1017.269 1976.7337,-1020.6582"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.41s)">
<text text-anchor="middle" x="1980.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N6 -->
<g id="edge15" class="edge">
<title>N14&#45;&gt;N6</title>
<g id="a_edge15"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (3.48s)">
<path fill="none" stroke="#000000" d="M1233,-959.9644C1233,-947.8495 1233,-933.3577 1233,-920.4589"/>
<polygon fill="#000000" stroke="#000000" points="1236.5001,-920.0858 1233,-910.0858 1229.5001,-920.0858 1236.5001,-920.0858"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (3.48s)">
<text text-anchor="middle" x="1249.7241" y="-930.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.48s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="regexp.(*Regexp).doExecute (4.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2300.9395,-1008.5 2145.0605,-1008.5 2145.0605,-964.5 2300.9395,-964.5 2300.9395,-1008.5"/>
<text text-anchor="middle" x="2223" y="-994.9" font-family="Times,serif" font-size="12.00" fill="#000000">regexp.(*Regexp).doExecute</text>
<text text-anchor="middle" x="2223" y="-982.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.32s(0.76%)</text>
<text text-anchor="middle" x="2223" y="-970.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 4.25s(10.08%)</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="regexp.(*machine).backtrack (2.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2531.9219,-908.5 2376.0781,-908.5 2376.0781,-864.5 2531.9219,-864.5 2531.9219,-908.5"/>
<text text-anchor="middle" x="2454" y="-894.9" font-family="Times,serif" font-size="12.00" fill="#000000">regexp.(*machine).backtrack</text>
<text text-anchor="middle" x="2454" y="-882.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.27s(0.64%)</text>
<text text-anchor="middle" x="2454" y="-870.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 2.43s(5.77%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N24 -->
<g id="edge22" class="edge">
<title>N15&#45;&gt;N24</title>
<g id="a_edge22"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*machine).backtrack (2.43s)">
<path fill="none" stroke="#000000" d="M2273.9799,-964.4308C2309.3781,-949.1069 2356.681,-928.6294 2393.9145,-912.511"/>
<polygon fill="#000000" stroke="#000000" points="2395.3638,-915.6976 2403.1503,-908.5129 2392.5828,-909.2737 2395.3638,-915.6976"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*machine).backtrack (2.43s)">
<text text-anchor="middle" x="2368.7241" y="-930.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.43s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N50 -->
<g id="edge61" class="edge">
<title>N15&#45;&gt;N50</title>
<g id="a_edge61"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; runtime.makeslice (0.50s)">
<path fill="none" stroke="#000000" d="M2145.0336,-972.6129C2106.1987,-964.5237 2064.2393,-953.6412 2048.5518,-942 2039.7361,-935.4582 2032.7686,-925.8489 2027.5204,-916.4576"/>
<polygon fill="#000000" stroke="#000000" points="2030.495,-914.5858 2022.8404,-907.2607 2024.2563,-917.7605 2030.495,-914.5858"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; runtime.makeslice (0.50s)">
<text text-anchor="middle" x="2064.7241" y="-930.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="regexp.(*Regexp).get (0.58s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2236.7943,-907 2125.2057,-907 2125.2057,-866 2236.7943,-866 2236.7943,-907"/>
<text text-anchor="middle" x="2181" y="-894.2" font-family="Times,serif" font-size="11.00" fill="#000000">regexp.(*Regexp).get</text>
<text text-anchor="middle" x="2181" y="-883.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.18s(0.43%)</text>
<text text-anchor="middle" x="2181" y="-872.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.58s(1.38%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N53 -->
<g id="edge54" class="edge">
<title>N15&#45;&gt;N53</title>
<g id="a_edge54"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*Regexp).get (0.58s)">
<path fill="none" stroke="#000000" d="M2213.6788,-964.3068C2207.8108,-950.3352 2200.1588,-932.1162 2193.7347,-916.8207"/>
<polygon fill="#000000" stroke="#000000" points="2196.8209,-915.1301 2189.7215,-907.2656 2190.367,-917.8408 2196.8209,-915.1301"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*Regexp).get (0.58s)">
<text text-anchor="middle" x="2219.7241" y="-930.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="regexp.(*Regexp).put (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2357.6926,-905.5 2254.3074,-905.5 2254.3074,-867.5 2357.6926,-867.5 2357.6926,-905.5"/>
<text text-anchor="middle" x="2306" y="-893.5" font-family="Times,serif" font-size="10.00" fill="#000000">regexp.(*Regexp).put</text>
<text text-anchor="middle" x="2306" y="-883.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.07s(0.17%)</text>
<text text-anchor="middle" x="2306" y="-873.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.41s(0.97%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N69 -->
<g id="edge72" class="edge">
<title>N15&#45;&gt;N69</title>
<g id="a_edge72"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*Regexp).put (0.41s)">
<path fill="none" stroke="#000000" d="M2241.4204,-964.3068C2253.8653,-949.3129 2270.3702,-929.4274 2283.5791,-913.5131"/>
<polygon fill="#000000" stroke="#000000" points="2286.4535,-915.5301 2290.1471,-905.5999 2281.0671,-911.0594 2286.4535,-915.5301"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*Regexp).put (0.41s)">
<text text-anchor="middle" x="2285.7241" y="-930.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="regexp.(*Regexp).ReplaceAllString (3.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1132.2272,-1208.5 957.7728,-1208.5 957.7728,-1167.5 1132.2272,-1167.5 1132.2272,-1208.5"/>
<text text-anchor="middle" x="1045" y="-1195.7" font-family="Times,serif" font-size="11.00" fill="#000000">regexp.(*Regexp).ReplaceAllString</text>
<text text-anchor="middle" x="1045" y="-1184.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.13s(0.31%)</text>
<text text-anchor="middle" x="1045" y="-1173.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 3.63s(8.61%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N17 -->
<g id="edge14" class="edge">
<title>N16&#45;&gt;N17</title>
<g id="a_edge14"><a xlink:title="main.getNonPrefixOf &#45;&gt; regexp.(*Regexp).ReplaceAllString (3.63s)">
<path fill="none" stroke="#000000" d="M1074.0588,-1268.719C1068.9151,-1254.4308 1061.8042,-1234.6783 1055.9042,-1218.2895"/>
<polygon fill="#000000" stroke="#000000" points="1059.0959,-1216.8222 1052.4156,-1208.5988 1052.5097,-1219.1932 1059.0959,-1216.8222"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.getNonPrefixOf &#45;&gt; regexp.(*Regexp).ReplaceAllString (3.63s)">
<text text-anchor="middle" x="1081.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.63s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="regexp.(*Regexp).replaceAll (2.95s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1122.7659,-1111.5 967.2341,-1111.5 967.2341,-1067.5 1122.7659,-1067.5 1122.7659,-1111.5"/>
<text text-anchor="middle" x="1045" y="-1097.9" font-family="Times,serif" font-size="12.00" fill="#000000">regexp.(*Regexp).replaceAll</text>
<text text-anchor="middle" x="1045" y="-1085.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.29s(0.69%)</text>
<text text-anchor="middle" x="1045" y="-1073.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 2.95s(7.00%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N20 -->
<g id="edge16" class="edge">
<title>N17&#45;&gt;N20</title>
<g id="a_edge16"><a xlink:title="regexp.(*Regexp).ReplaceAllString &#45;&gt; regexp.(*Regexp).replaceAll (2.95s)">
<path fill="none" stroke="#000000" d="M1045,-1167.1107C1045,-1154.0232 1045,-1136.8826 1045,-1122.0394"/>
<polygon fill="#000000" stroke="#000000" points="1048.5001,-1121.7281 1045,-1111.7281 1041.5001,-1121.7282 1048.5001,-1121.7281"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="regexp.(*Regexp).ReplaceAllString &#45;&gt; regexp.(*Regexp).replaceAll (2.95s)">
<text text-anchor="middle" x="1061.7241" y="-1136.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.95s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (2.88s)">
<polygon fill="#f8f8f8" stroke="#000000" points="940.4419,-1207 741.5581,-1207 741.5581,-1169 940.4419,-1169 940.4419,-1207"/>
<text text-anchor="middle" x="841" y="-1195" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="841" y="-1185" font-family="Times,serif" font-size="10.00" fill="#000000">0.08s(0.19%)</text>
<text text-anchor="middle" x="841" y="-1175" font-family="Times,serif" font-size="10.00" fill="#000000">of 2.88s(6.83%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N21 -->
<g id="edge17" class="edge">
<title>N18&#45;&gt;N21</title>
<g id="a_edge17"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.88s)">
<path fill="none" stroke="#000000" d="M933.7575,-1267.2799C915.5207,-1251.6929 890.4259,-1230.2444 870.9365,-1213.5867"/>
<polygon fill="#000000" stroke="#000000" points="873.1084,-1210.8389 863.2326,-1207.0022 868.5603,-1216.1601 873.1084,-1210.8389"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.88s)">
<text text-anchor="middle" x="920.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.88s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N15 -->
<g id="edge26" class="edge">
<title>N20&#45;&gt;N15</title>
<g id="a_edge26"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; regexp.(*Regexp).doExecute (2.05s)">
<path fill="none" stroke="#000000" d="M1111.0854,-1067.4936C1118.0888,-1065.7263 1125.1525,-1064.1734 1132,-1063 1312.2148,-1032.1171 1360.4207,-1054.7933 1543,-1045 1767.1289,-1032.978 1823.8189,-1036.8424 2047,-1013 2075.596,-1009.9451 2106.6619,-1005.6089 2134.6223,-1001.3268"/>
<polygon fill="#000000" stroke="#000000" points="2135.4264,-1004.744 2144.7726,-999.7541 2134.3546,-997.8265 2135.4264,-1004.744"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; regexp.(*Regexp).doExecute (2.05s)">
<text text-anchor="middle" x="1853.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.05s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N31 -->
<g id="edge91" class="edge">
<title>N20&#45;&gt;N31</title>
<g id="a_edge91"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; runtime.growslice (0.20s)">
<path fill="none" stroke="#000000" d="M1085.5275,-1067.4289C1111.3661,-1054.4614 1145.9984,-1039.0738 1178.5518,-1031 1230.2603,-1018.1754 1577.9636,-997.8499 1721.8497,-989.8719"/>
<polygon fill="#000000" stroke="#000000" points="1722.4696,-993.3431 1732.2612,-989.2965 1722.0833,-986.3537 1722.4696,-993.3431"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; runtime.growslice (0.20s)">
<text text-anchor="middle" x="1195.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="regexp.(*Regexp).ReplaceAllString.func1 (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1154.0225,-1007 951.9775,-1007 951.9775,-966 1154.0225,-966 1154.0225,-1007"/>
<text text-anchor="middle" x="1053" y="-994.2" font-family="Times,serif" font-size="11.00" fill="#000000">regexp.(*Regexp).ReplaceAllString.func1</text>
<text text-anchor="middle" x="1053" y="-983.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.16s(0.38%)</text>
<text text-anchor="middle" x="1053" y="-972.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.35s(0.83%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N80 -->
<g id="edge83" class="edge">
<title>N20&#45;&gt;N80</title>
<g id="a_edge83"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; regexp.(*Regexp).ReplaceAllString.func1 (0.35s)">
<path fill="none" stroke="#000000" d="M1046.7162,-1067.4039C1047.8536,-1052.7601 1049.3615,-1033.3463 1050.615,-1017.2069"/>
<polygon fill="#000000" stroke="#000000" points="1054.1106,-1017.3979 1051.3956,-1007.1569 1047.1316,-1016.8558 1054.1106,-1017.3979"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; regexp.(*Regexp).ReplaceAllString.func1 (0.35s)">
<text text-anchor="middle" x="1066.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N1 -->
<g id="edge19" class="edge">
<title>N21&#45;&gt;N1</title>
<g id="a_edge19"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.71s)">
<path fill="none" stroke="#000000" d="M842.9983,-1207.1041C844.8409,-1233.3344 844.9087,-1281.2032 826,-1316 817.0828,-1332.4099 803.6901,-1346.9679 789.427,-1359.2571"/>
<polygon fill="#000000" stroke="#000000" points="786.9236,-1356.785 781.4365,-1365.8483 791.3779,-1362.185 786.9236,-1356.785"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.71s)">
<text text-anchor="middle" x="859.7241" y="-1283.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.71s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N6 -->
<g id="edge103" class="edge">
<title>N21&#45;&gt;N6</title>
<g id="a_edge103"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.08s)">
<path fill="none" stroke="#000000" d="M847.1223,-1168.9553C863.3796,-1119.496 908.7318,-988.8155 943,-960 976.4584,-931.8654 1091.3032,-908.9513 1166.0369,-896.5568"/>
<polygon fill="#000000" stroke="#000000" points="1166.9991,-899.9461 1176.3033,-894.8783 1165.8695,-893.0378 1166.9991,-899.9461"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.08s)">
<text text-anchor="middle" x="916.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="regexp.(*Regexp).FindString (2.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2205.4224,-1208.5 2060.5776,-1208.5 2060.5776,-1167.5 2205.4224,-1167.5 2205.4224,-1208.5"/>
<text text-anchor="middle" x="2133" y="-1195.7" font-family="Times,serif" font-size="11.00" fill="#000000">regexp.(*Regexp).FindString</text>
<text text-anchor="middle" x="2133" y="-1184.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.10s(0.24%)</text>
<text text-anchor="middle" x="2133" y="-1173.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 2.30s(5.46%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N25 -->
<g id="edge23" class="edge">
<title>N22&#45;&gt;N25</title>
<g id="a_edge23"><a xlink:title="main.getPrefixOf &#45;&gt; regexp.(*Regexp).FindString (2.30s)">
<path fill="none" stroke="#000000" d="M1988.0899,-1268.9554C2016.2482,-1253.2244 2056.4708,-1230.7538 2087.398,-1213.476"/>
<polygon fill="#000000" stroke="#000000" points="2089.2414,-1216.4554 2096.2644,-1208.5227 2085.8273,-1210.3443 2089.2414,-1216.4554"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="main.getPrefixOf &#45;&gt; regexp.(*Regexp).FindString (2.30s)">
<text text-anchor="middle" x="2075.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.30s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="strings.TrimSpace (0.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2042.1564,-1206 1967.8436,-1206 1967.8436,-1170 2042.1564,-1170 2042.1564,-1206"/>
<text text-anchor="middle" x="2005" y="-1189.6" font-family="Times,serif" font-size="8.00" fill="#000000">strings.TrimSpace</text>
<text text-anchor="middle" x="2005" y="-1181.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.48s(1.14%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N63 -->
<g id="edge64" class="edge">
<title>N22&#45;&gt;N63</title>
<g id="a_edge64"><a xlink:title="main.getPrefixOf &#45;&gt; strings.TrimSpace (0.48s)">
<path fill="none" stroke="#000000" d="M1963.8333,-1268.719C1971.5278,-1253.6318 1982.3295,-1232.4521 1990.9377,-1215.5732"/>
<polygon fill="#000000" stroke="#000000" points="1994.2871,-1216.7093 1995.7125,-1206.2107 1988.0513,-1213.529 1994.2871,-1216.7093"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.getPrefixOf &#45;&gt; strings.TrimSpace (0.48s)">
<text text-anchor="middle" x="2000.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.48s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="regexp.(*machine).tryBacktrack (1.89s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2559.0698,-799.5 2348.9302,-799.5 2348.9302,-746.5 2559.0698,-746.5 2559.0698,-799.5"/>
<text text-anchor="middle" x="2454" y="-783.5" font-family="Times,serif" font-size="15.00" fill="#000000">regexp.(*machine).tryBacktrack</text>
<text text-anchor="middle" x="2454" y="-768.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.81s(1.92%)</text>
<text text-anchor="middle" x="2454" y="-753.5" font-family="Times,serif" font-size="15.00" fill="#000000">of 1.89s(4.48%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N28 -->
<g id="edge28" class="edge">
<title>N24&#45;&gt;N28</title>
<g id="a_edge28"><a xlink:title="regexp.(*machine).backtrack &#45;&gt; regexp.(*machine).tryBacktrack (1.89s)">
<path fill="none" stroke="#000000" d="M2454,-864.3466C2454,-848.923 2454,-827.9861 2454,-810.0478"/>
<polygon fill="#000000" stroke="#000000" points="2457.5001,-809.8968 2454,-799.8968 2450.5001,-809.8968 2457.5001,-809.8968"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="regexp.(*machine).backtrack &#45;&gt; regexp.(*machine).tryBacktrack (1.89s)">
<text text-anchor="middle" x="2470.7241" y="-833.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.89s</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N15 -->
<g id="edge25" class="edge">
<title>N25&#45;&gt;N15</title>
<g id="a_edge25"><a xlink:title="regexp.(*Regexp).FindString &#45;&gt; regexp.(*Regexp).doExecute (2.20s)">
<path fill="none" stroke="#000000" d="M2188.594,-1167.4165C2196.5596,-1162.22 2203.802,-1155.8243 2209,-1148 2234.6159,-1109.442 2233.0941,-1053.7606 2228.7325,-1018.8778"/>
<polygon fill="#000000" stroke="#000000" points="2232.1689,-1018.1791 2227.3146,-1008.7618 2225.2366,-1019.1508 2232.1689,-1018.1791"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="regexp.(*Regexp).FindString &#45;&gt; regexp.(*Regexp).doExecute (2.20s)">
<text text-anchor="middle" x="2247.7241" y="-1085.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.20s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N37 -->
<g id="edge88" class="edge">
<title>N26&#45;&gt;N37</title>
<g id="a_edge88"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.25s)">
<path fill="none" stroke="#000000" d="M1415.7759,-1259.9665C1438.244,-1248.7252 1465.1777,-1236.4579 1490.5518,-1228 1528.6093,-1215.3143 1539.9976,-1219.3869 1579,-1210 1579.6056,-1209.8543 1580.2135,-1209.7071 1580.8236,-1209.5585"/>
<polygon fill="#000000" stroke="#000000" points="1582.0006,-1212.872 1590.8513,-1207.0483 1580.3007,-1206.0815 1582.0006,-1212.872"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.25s)">
<text text-anchor="middle" x="1507.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.aeshashbody (0.59s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1402.0837,-1206 1267.9163,-1206 1267.9163,-1170 1402.0837,-1170 1402.0837,-1206"/>
<text text-anchor="middle" x="1335" y="-1190.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="1335" y="-1176.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.59s(1.40%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N52 -->
<g id="edge55" class="edge">
<title>N26&#45;&gt;N52</title>
<g id="a_edge55"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.58s)">
<path fill="none" stroke="#000000" d="M1355.8447,-1259.8783C1351.8664,-1246.1601 1347.0944,-1229.7049 1343.1207,-1216.0025"/>
<polygon fill="#000000" stroke="#000000" points="1346.4108,-1214.7813 1340.264,-1206.1518 1339.6878,-1216.731 1346.4108,-1214.7813"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.58s)">
<text text-anchor="middle" x="1367.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N6 -->
<g id="edge30" class="edge">
<title>N27&#45;&gt;N6</title>
<g id="a_edge30"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.63s)">
<path fill="none" stroke="#000000" d="M392.6995,-1265.7607C393.2762,-1245.4973 394,-1214.7415 394,-1188 394,-1188 394,-1188 394,-986.5 394,-984.2346 480.2204,-930.7514 489,-928 552.5881,-908.0726 995.7664,-893.3394 1166.3196,-888.3479"/>
<polygon fill="#000000" stroke="#000000" points="1166.5311,-891.8433 1176.4252,-888.0542 1166.3277,-884.8463 1166.5311,-891.8433"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.63s)">
<text text-anchor="middle" x="410.7241" y="-1085.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.63s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="regexp/syntax.(*Inst).MatchRune (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2535.8502,-680.5 2372.1498,-680.5 2372.1498,-639.5 2535.8502,-639.5 2535.8502,-680.5"/>
<text text-anchor="middle" x="2454" y="-667.7" font-family="Times,serif" font-size="11.00" fill="#000000">regexp/syntax.(*Inst).MatchRune</text>
<text text-anchor="middle" x="2454" y="-656.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.10s(0.24%)</text>
<text text-anchor="middle" x="2454" y="-645.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.41s(0.97%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N70 -->
<g id="edge73" class="edge">
<title>N28&#45;&gt;N70</title>
<g id="a_edge73"><a xlink:title="regexp.(*machine).tryBacktrack &#45;&gt; regexp/syntax.(*Inst).MatchRune (0.41s)">
<path fill="none" stroke="#000000" d="M2454,-746.2206C2454,-729.5739 2454,-708.1154 2454,-690.7705"/>
<polygon fill="#000000" stroke="#000000" points="2457.5001,-690.5822 2454,-680.5822 2450.5001,-690.5823 2457.5001,-690.5822"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="regexp.(*machine).tryBacktrack &#45;&gt; regexp/syntax.(*Inst).MatchRune (0.41s)">
<text text-anchor="middle" x="2470.7241" y="-703.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N30 -->
<g id="edge96" class="edge">
<title>N29&#45;&gt;N30</title>
<g id="a_edge96"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.15s)">
<path fill="none" stroke="#000000" d="M1621.9937,-1265.9308C1655.9858,-1250.619 1701.4007,-1230.1619 1737.1705,-1214.0493"/>
<polygon fill="#000000" stroke="#000000" points="1738.8335,-1217.139 1746.5137,-1209.8407 1735.9585,-1210.7566 1738.8335,-1217.139"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.15s)">
<text text-anchor="middle" x="1720.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N37 -->
<g id="edge102" class="edge">
<title>N29&#45;&gt;N37</title>
<g id="a_edge102"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.08s)">
<path fill="none" stroke="#000000" d="M1591.8643,-1265.8068C1604.609,-1250.8129 1621.5117,-1230.9274 1635.0388,-1215.0131"/>
<polygon fill="#000000" stroke="#000000" points="1637.9553,-1216.9861 1641.7651,-1207.0999 1632.6217,-1212.4526 1637.9553,-1216.9861"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.08s)">
<text text-anchor="middle" x="1640.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="main.(*machine).executeSubtract (0.69s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1570.3853,-1207 1419.6147,-1207 1419.6147,-1169 1570.3853,-1169 1570.3853,-1207"/>
<text text-anchor="middle" x="1495" y="-1195" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="1495" y="-1185" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.095%)</text>
<text text-anchor="middle" x="1495" y="-1175" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.69s(1.64%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N45 -->
<g id="edge49" class="edge">
<title>N29&#45;&gt;N45</title>
<g id="a_edge49"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.69s)">
<path fill="none" stroke="#000000" d="M1555.6893,-1265.8068C1543.9941,-1250.8129 1528.4834,-1230.9274 1516.0703,-1215.0131"/>
<polygon fill="#000000" stroke="#000000" points="1518.8081,-1212.8323 1509.8979,-1207.0999 1513.2885,-1217.1376 1518.8081,-1212.8323"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.69s)">
<text text-anchor="middle" x="1553.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.69s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N6 -->
<g id="edge40" class="edge">
<title>N30&#45;&gt;N6</title>
<g id="a_edge40"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.96s)">
<path fill="none" stroke="#000000" d="M1753.6748,-1165.83C1653.4486,-1112.061 1397.5155,-974.7587 1286.13,-915.003"/>
<polygon fill="#000000" stroke="#000000" points="1287.5521,-911.7941 1277.0855,-910.1508 1284.2429,-917.9625 1287.5521,-911.7941"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.96s)">
<text text-anchor="middle" x="1543.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.96s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.typedmemmove (0.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1850.6392,-1111.5 1717.3608,-1111.5 1717.3608,-1067.5 1850.6392,-1067.5 1850.6392,-1111.5"/>
<text text-anchor="middle" x="1784" y="-1097.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="1784" y="-1085.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.34s(0.81%)</text>
<text text-anchor="middle" x="1784" y="-1073.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.65s(1.54%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N47 -->
<g id="edge77" class="edge">
<title>N30&#45;&gt;N47</title>
<g id="a_edge77"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.38s)">
<path fill="none" stroke="#000000" d="M1792.5039,-1165.6488C1791.0553,-1152.6772 1789.2057,-1136.1143 1787.6016,-1121.7504"/>
<polygon fill="#000000" stroke="#000000" points="1791.0745,-1121.3125 1786.4862,-1111.7627 1784.1178,-1122.0894 1791.0745,-1121.3125"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.38s)">
<text text-anchor="middle" x="1806.7241" y="-1136.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N5 -->
<g id="edge34" class="edge">
<title>N31&#45;&gt;N5</title>
<g id="a_edge34"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (1.22s)">
<path fill="none" stroke="#000000" d="M1732.1633,-966.4144C1642.8275,-931.7988 1458.1162,-860.2274 1340.1633,-814.5233"/>
<polygon fill="#000000" stroke="#000000" points="1341.3195,-811.2178 1330.7304,-810.8683 1338.7903,-817.745 1341.3195,-811.2178"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (1.22s)">
<text text-anchor="middle" x="1598.7241" y="-882.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.22s</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N10 -->
<g id="edge32" class="edge">
<title>N32&#45;&gt;N10</title>
<g id="a_edge32"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (1.48s)">
<path fill="none" stroke="#000000" d="M2208.185,-649.2789C2307.0896,-631.3627 2505.8044,-595.3663 2614.5857,-575.661"/>
<polygon fill="#000000" stroke="#000000" points="2615.289,-579.0906 2624.505,-573.8642 2614.0413,-572.2027 2615.289,-579.0906"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (1.48s)">
<text text-anchor="middle" x="2467.7241" y="-607.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.48s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.mapassign1 (1.03s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2397.4024,-1208.5 2292.5976,-1208.5 2292.5976,-1167.5 2397.4024,-1167.5 2397.4024,-1208.5"/>
<text text-anchor="middle" x="2345" y="-1195.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="2345" y="-1184.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.11s(0.26%)</text>
<text text-anchor="middle" x="2345" y="-1173.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 1.03s(2.44%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N36 -->
<g id="edge39" class="edge">
<title>N34&#45;&gt;N36</title>
<g id="a_edge39"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (1.03s)">
<path fill="none" stroke="#000000" d="M2149.088,-1268.9554C2187.9738,-1252.8869 2243.8773,-1229.7863 2286.0222,-1212.371"/>
<polygon fill="#000000" stroke="#000000" points="2287.4298,-1215.5765 2295.3351,-1208.5227 2284.7564,-1209.107 2287.4298,-1215.5765"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (1.03s)">
<text text-anchor="middle" x="2261.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.03s</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N10 -->
<g id="edge84" class="edge">
<title>N35&#45;&gt;N10</title>
<g id="a_edge84"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.34s)">
<path fill="none" stroke="#000000" d="M2779.4907,-1262.7682C2774.1799,-1242.6981 2768,-1213.8007 2768,-1188 2768,-1188 2768,-1188 2768,-660 2768,-634.3136 2751.3927,-611.4664 2733.5042,-594.3072"/>
<polygon fill="#000000" stroke="#000000" points="2735.5586,-591.4448 2725.804,-587.3098 2730.8509,-596.6254 2735.5586,-591.4448"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.34s)">
<text text-anchor="middle" x="2784.7241" y="-930.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.memmove (0.58s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2442.1417,-386.5 2319.8583,-386.5 2319.8583,-350.5 2442.1417,-350.5 2442.1417,-386.5"/>
<text text-anchor="middle" x="2381" y="-371.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="2381" y="-357.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.58s(1.38%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N54 -->
<g id="edge101" class="edge">
<title>N35&#45;&gt;N54</title>
<g id="a_edge101"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.09s)">
<path fill="none" stroke="#000000" d="M2729.332,-1262.884C2701.0564,-1246.3076 2673,-1221.4355 2673,-1188 2673,-1188 2673,-1188 2673,-986.5 2673,-883.8069 2648.2084,-797.6961 2545,-637 2494.8925,-558.9823 2441.4727,-569.931 2400,-487 2385.7935,-458.592 2381.769,-421.9976 2380.8378,-397.0396"/>
<polygon fill="#000000" stroke="#000000" points="2384.3312,-396.706 2380.6046,-386.7882 2377.333,-396.8653 2384.3312,-396.706"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.09s)">
<text text-anchor="middle" x="2667.7241" y="-833.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.newarray (0.87s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2186.7212,-1107.5 2107.2788,-1107.5 2107.2788,-1071.5 2186.7212,-1071.5 2186.7212,-1107.5"/>
<text text-anchor="middle" x="2147" y="-1095.8" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="2147" y="-1086.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.02s(0.047%)</text>
<text text-anchor="middle" x="2147" y="-1077.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.87s(2.06%)</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N42 -->
<g id="edge45" class="edge">
<title>N36&#45;&gt;N42</title>
<g id="a_edge45"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.87s)">
<path fill="none" stroke="#000000" d="M2303.4927,-1167.3512C2271.0493,-1151.2114 2225.9995,-1128.8002 2192.5624,-1112.1661"/>
<polygon fill="#000000" stroke="#000000" points="2193.9717,-1108.9581 2183.4595,-1107.6377 2190.8539,-1115.2254 2193.9717,-1108.9581"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.87s)">
<text text-anchor="middle" x="2279.7241" y="-1136.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.87s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.(*mcache).refill (0.95s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3116.6828,-387.5 3003.3172,-387.5 3003.3172,-349.5 3116.6828,-349.5 3116.6828,-387.5"/>
<text text-anchor="middle" x="3060" y="-375.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="3060" y="-365.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.095%)</text>
<text text-anchor="middle" x="3060" y="-355.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.95s(2.25%)</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N39 -->
<g id="edge42" class="edge">
<title>N38&#45;&gt;N39</title>
<g id="a_edge42"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.95s)">
<path fill="none" stroke="#000000" d="M3060,-444.7794C3060,-431.4447 3060,-413.0736 3060,-397.7018"/>
<polygon fill="#000000" stroke="#000000" points="3063.5001,-397.6377 3060,-387.6377 3056.5001,-397.6377 3063.5001,-397.6377"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.95s)">
<text text-anchor="middle" x="3076.7241" y="-409.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.95s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.(*mcentral).cacheSpan (0.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3130.9989,-298 2989.0011,-298 2989.0011,-260 3130.9989,-260 3130.9989,-298"/>
<text text-anchor="middle" x="3060" y="-286" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="3060" y="-276" font-family="Times,serif" font-size="10.00" fill="#000000">0.08s(0.19%)</text>
<text text-anchor="middle" x="3060" y="-266" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.91s(2.16%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N40 -->
<g id="edge43" class="edge">
<title>N39&#45;&gt;N40</title>
<g id="a_edge43"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.91s)">
<path fill="none" stroke="#000000" d="M3060,-349.0798C3060,-337.1532 3060,-321.6473 3060,-308.2542"/>
<polygon fill="#000000" stroke="#000000" points="3063.5001,-308.0748 3060,-298.0748 3056.5001,-308.0748 3063.5001,-308.0748"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.91s)">
<text text-anchor="middle" x="3076.7241" y="-318.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.91s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.(*mcentral).grow (0.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3119.7963,-210 3000.2037,-210 3000.2037,-172 3119.7963,-172 3119.7963,-210"/>
<text text-anchor="middle" x="3060" y="-198" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="3060" y="-188" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.071%)</text>
<text text-anchor="middle" x="3060" y="-178" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.70s(1.66%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N44 -->
<g id="edge48" class="edge">
<title>N40&#45;&gt;N44</title>
<g id="a_edge48"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.70s)">
<path fill="none" stroke="#000000" d="M3060,-259.9053C3060,-248.3736 3060,-233.4389 3060,-220.4228"/>
<polygon fill="#000000" stroke="#000000" points="3063.5001,-220.0574 3060,-210.0574 3056.5001,-220.0575 3063.5001,-220.0574"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.70s)">
<text text-anchor="middle" x="3076.7241" y="-230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.70s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N10 -->
<g id="edge52" class="edge">
<title>N41&#45;&gt;N10</title>
<g id="a_edge52"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.62s)">
<path fill="none" stroke="#000000" d="M2548.3757,-1267.4365C2580.0096,-1244.8857 2625,-1209.1037 2625,-1188 2625,-1188 2625,-1188 2625,-660 2625,-635.5677 2639.2042,-612.5624 2654.3326,-594.9891"/>
<polygon fill="#000000" stroke="#000000" points="2657.1718,-597.0687 2661.3008,-587.3115 2651.9884,-592.3642 2657.1718,-597.0687"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.62s)">
<text text-anchor="middle" x="2641.7241" y="-930.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.62s</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N5 -->
<g id="edge46" class="edge">
<title>N42&#45;&gt;N5</title>
<g id="a_edge46"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.85s)">
<path fill="none" stroke="#000000" d="M2143.4308,-1071.234C2133.5432,-1022.5139 2104.3806,-891.2565 2072,-863 2017.9109,-815.8 1554.7765,-788.1163 1340.7016,-777.7342"/>
<polygon fill="#000000" stroke="#000000" points="1340.8551,-774.2376 1330.6984,-777.2528 1340.5186,-781.2295 1340.8551,-774.2376"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.85s)">
<text text-anchor="middle" x="2126.7241" y="-930.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.85s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.schedule (0.80s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3040.7699,-904.5 2967.2301,-904.5 2967.2301,-868.5 3040.7699,-868.5 3040.7699,-904.5"/>
<text text-anchor="middle" x="3004" y="-888.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="3004" y="-880.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.80s(1.90%)</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.findrunnable (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3004.7357,-791 2913.2643,-791 2913.2643,-755 3004.7357,-755 3004.7357,-791"/>
<text text-anchor="middle" x="2959" y="-779.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="2959" y="-770.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.02s(0.047%)</text>
<text text-anchor="middle" x="2959" y="-761.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.36s(0.85%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N78 -->
<g id="edge82" class="edge">
<title>N43&#45;&gt;N78</title>
<g id="a_edge82"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.36s)">
<path fill="none" stroke="#000000" d="M2996.77,-868.2643C2989.5206,-849.9797 2978.2669,-821.5953 2969.9275,-800.5615"/>
<polygon fill="#000000" stroke="#000000" points="2973.1514,-799.1965 2966.2121,-791.1905 2966.6442,-801.7765 2973.1514,-799.1965"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.36s)">
<text text-anchor="middle" x="3002.7241" y="-833.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.(*mheap).alloc (0.54s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3110.4684,-122 3009.5316,-122 3009.5316,-86 3110.4684,-86 3110.4684,-122"/>
<text text-anchor="middle" x="3060" y="-110.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="3060" y="-101.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.024%)</text>
<text text-anchor="middle" x="3060" y="-92.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.54s(1.28%)</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N55 -->
<g id="edge56" class="edge">
<title>N44&#45;&gt;N55</title>
<g id="a_edge56"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.54s)">
<path fill="none" stroke="#000000" d="M3060,-171.6919C3060,-160.1154 3060,-145.1873 3060,-132.2967"/>
<polygon fill="#000000" stroke="#000000" points="3063.5001,-132.066 3060,-122.0661 3056.5001,-132.0661 3063.5001,-132.066"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.54s)">
<text text-anchor="middle" x="3076.7241" y="-142.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N54 -->
<g id="edge94" class="edge">
<title>N47&#45;&gt;N54</title>
<g id="a_edge94"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.18s)">
<path fill="none" stroke="#000000" d="M1845.7658,-1067.2449C1856.2502,-1061.2971 1866.2385,-1053.9582 1874,-1045 1907.6843,-1006.1221 1910,-986.4405 1910,-935 1910,-935 1910,-935 1910,-463 1910,-422.7142 2178.3049,-389.408 2309.9077,-375.4945"/>
<polygon fill="#000000" stroke="#000000" points="2310.327,-378.9698 2319.9078,-374.4468 2309.5975,-372.008 2310.327,-378.9698"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.18s)">
<text text-anchor="middle" x="1926.7241" y="-703.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N54 -->
<g id="edge98" class="edge">
<title>N49&#45;&gt;N54</title>
<g id="a_edge98"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.12s)">
<path fill="none" stroke="#000000" d="M2450.6883,-442.4949C2437.3665,-428.3498 2419.5539,-409.4365 2405.2723,-394.2723"/>
<polygon fill="#000000" stroke="#000000" points="2407.5723,-391.6094 2398.1683,-386.7293 2402.4765,-396.4087 2407.5723,-391.6094"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.12s)">
<text text-anchor="middle" x="2444.7241" y="-409.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N5 -->
<g id="edge67" class="edge">
<title>N50&#45;&gt;N5</title>
<g id="a_edge67"><a xlink:title="runtime.makeslice &#45;&gt; runtime.mallocgc (0.45s)">
<path fill="none" stroke="#000000" d="M1966.5281,-871.9777C1922.643,-859.354 1856.0238,-841.4897 1797,-831 1639.5417,-803.0165 1454.7753,-787.1911 1340.7852,-779.3628"/>
<polygon fill="#000000" stroke="#000000" points="1340.8743,-775.8609 1330.6603,-778.6757 1340.4003,-782.8448 1340.8743,-775.8609"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.makeslice &#45;&gt; runtime.mallocgc (0.45s)">
<text text-anchor="middle" x="1879.7241" y="-833.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.45s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="sync.(*Mutex).Lock (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2298.8102,-793.5 2193.1898,-793.5 2193.1898,-752.5 2298.8102,-752.5 2298.8102,-793.5"/>
<text text-anchor="middle" x="2246" y="-780.7" font-family="Times,serif" font-size="11.00" fill="#000000">sync.(*Mutex).Lock</text>
<text text-anchor="middle" x="2246" y="-769.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.11s(0.26%)</text>
<text text-anchor="middle" x="2246" y="-758.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.40s(0.95%)</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N72 -->
<g id="edge90" class="edge">
<title>N53&#45;&gt;N72</title>
<g id="a_edge90"><a xlink:title="regexp.(*Regexp).get &#45;&gt; sync.(*Mutex).Lock (0.21s)">
<path fill="none" stroke="#000000" d="M2192.771,-865.946C2202.9232,-848.2188 2217.7069,-822.4042 2229.1193,-802.4763"/>
<polygon fill="#000000" stroke="#000000" points="2232.1644,-804.2017 2234.0969,-793.7846 2226.09,-800.723 2232.1644,-804.2017"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="regexp.(*Regexp).get &#45;&gt; sync.(*Mutex).Lock (0.21s)">
<text text-anchor="middle" x="2227.7241" y="-833.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N46 -->
<g id="edge59" class="edge">
<title>N55&#45;&gt;N46</title>
<g id="a_edge59"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.53s)">
<path fill="none" stroke="#000000" d="M3060,-85.7616C3060,-74.3597 3060,-59.4342 3060,-46.494"/>
<polygon fill="#000000" stroke="#000000" points="3063.5001,-46.2121 3060,-36.2121 3056.5001,-46.2121 3063.5001,-46.2121"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.53s)">
<text text-anchor="middle" x="3076.7241" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.53s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime._System (0.54s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2726.7699,-678 2653.2301,-678 2653.2301,-642 2726.7699,-642 2726.7699,-678"/>
<text text-anchor="middle" x="2690" y="-661.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="2690" y="-653.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.54s(1.28%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N10 -->
<g id="edge57" class="edge">
<title>N56&#45;&gt;N10</title>
<g id="a_edge57"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.54s)">
<path fill="none" stroke="#000000" d="M2690,-641.5669C2690,-629.0431 2690,-612.0838 2690,-597.0398"/>
<polygon fill="#000000" stroke="#000000" points="2693.5001,-597.0089 2690,-587.0089 2686.5001,-597.0089 2693.5001,-597.0089"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.54s)">
<text text-anchor="middle" x="2706.7241" y="-607.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.(*mheap).alloc_m (0.50s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2976.7943,-389 2843.2057,-389 2843.2057,-348 2976.7943,-348 2976.7943,-389"/>
<text text-anchor="middle" x="2910" y="-376.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="2910" y="-365.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.09s(0.21%)</text>
<text text-anchor="middle" x="2910" y="-354.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.50s(1.19%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N59 -->
<g id="edge62" class="edge">
<title>N58&#45;&gt;N59</title>
<g id="a_edge62"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.50s)">
<path fill="none" stroke="#000000" d="M2910,-444.7794C2910,-432.0045 2910,-414.6072 2910,-399.653"/>
<polygon fill="#000000" stroke="#000000" points="2913.5001,-399.2969 2910,-389.2969 2906.5001,-399.2969 2913.5001,-399.2969"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.50s)">
<text text-anchor="middle" x="2926.7241" y="-409.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.stkbucket (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1114.3149,-584 1011.6851,-584 1011.6851,-540 1114.3149,-540 1114.3149,-584"/>
<text text-anchor="middle" x="1063" y="-570.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="1063" y="-558.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.32s(0.76%)</text>
<text text-anchor="middle" x="1063" y="-546.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.36s(0.85%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N79 -->
<g id="edge81" class="edge">
<title>N60&#45;&gt;N79</title>
<g id="a_edge81"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.36s)">
<path fill="none" stroke="#000000" d="M1061.3762,-641.5669C1061.6465,-628.3224 1062.018,-610.1169 1062.3375,-594.4626"/>
<polygon fill="#000000" stroke="#000000" points="1065.8436,-594.1942 1062.5485,-584.1249 1058.8451,-594.0513 1065.8436,-594.1942"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.36s)">
<text text-anchor="middle" x="1079.7241" y="-607.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.usleep (0.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2998.3956,-1306 2905.6044,-1306 2905.6044,-1270 2998.3956,-1270 2998.3956,-1306"/>
<text text-anchor="middle" x="2952" y="-1290.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="2952" y="-1277.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.48s(1.14%)</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="strings.TrimFunc (0.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2050.7007,-1110 1959.2993,-1110 1959.2993,-1069 2050.7007,-1069 2050.7007,-1110"/>
<text text-anchor="middle" x="2005" y="-1097.2" font-family="Times,serif" font-size="11.00" fill="#000000">strings.TrimFunc</text>
<text text-anchor="middle" x="2005" y="-1086.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.09s(0.21%)</text>
<text text-anchor="middle" x="2005" y="-1075.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.48s(1.14%)</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N62 -->
<g id="edge65" class="edge">
<title>N63&#45;&gt;N62</title>
<g id="a_edge65"><a xlink:title="strings.TrimSpace &#45;&gt; strings.TrimFunc (0.48s)">
<path fill="none" stroke="#000000" d="M2005,-1169.9336C2005,-1156.0835 2005,-1136.644 2005,-1120.3454"/>
<polygon fill="#000000" stroke="#000000" points="2008.5001,-1120.1788 2005,-1110.1788 2001.5001,-1120.1789 2008.5001,-1120.1788"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="strings.TrimSpace &#45;&gt; strings.TrimFunc (0.48s)">
<text text-anchor="middle" x="2021.7241" y="-1136.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.48s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.morestack (0.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3101.7582,-1306 3026.2418,-1306 3026.2418,-1270 3101.7582,-1270 3101.7582,-1306"/>
<text text-anchor="middle" x="3064" y="-1289.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="3064" y="-1281.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.45s(1.07%)</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.newstack (0.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3100.7699,-1206 3027.2301,-1206 3027.2301,-1170 3100.7699,-1170 3100.7699,-1206"/>
<text text-anchor="middle" x="3064" y="-1189.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="3064" y="-1181.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.45s(1.07%)</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N66 -->
<g id="edge68" class="edge">
<title>N65&#45;&gt;N66</title>
<g id="a_edge68"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.45s)">
<path fill="none" stroke="#000000" d="M3064,-1269.6585C3064,-1254.7164 3064,-1233.3665 3064,-1216.2446"/>
<polygon fill="#000000" stroke="#000000" points="3067.5001,-1216.2252 3064,-1206.2253 3060.5001,-1216.2253 3067.5001,-1216.2252"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.45s)">
<text text-anchor="middle" x="3080.7241" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.45s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.gopreempt_m (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3107.817,-1107.5 3020.183,-1107.5 3020.183,-1071.5 3107.817,-1071.5 3107.817,-1107.5"/>
<text text-anchor="middle" x="3064" y="-1091.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="3064" y="-1083.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.42s(1%)</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N68 -->
<g id="edge71" class="edge">
<title>N66&#45;&gt;N68</title>
<g id="a_edge71"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.42s)">
<path fill="none" stroke="#000000" d="M3064,-1169.9336C3064,-1155.4456 3064,-1134.8416 3064,-1118.1145"/>
<polygon fill="#000000" stroke="#000000" points="3067.5001,-1117.7854 3064,-1107.7855 3060.5001,-1117.7855 3067.5001,-1117.7854"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.42s)">
<text text-anchor="middle" x="3080.7241" y="-1136.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.goschedImpl (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3105.2073,-1004.5 3020.7927,-1004.5 3020.7927,-968.5 3105.2073,-968.5 3105.2073,-1004.5"/>
<text text-anchor="middle" x="3063" y="-988.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="3063" y="-980.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.44s(1.04%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N43 -->
<g id="edge69" class="edge">
<title>N67&#45;&gt;N43</title>
<g id="a_edge69"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.43s)">
<path fill="none" stroke="#000000" d="M3052.1785,-968.1585C3043.1964,-952.9345 3030.2895,-931.0585 3020.0952,-913.78"/>
<polygon fill="#000000" stroke="#000000" points="3022.8489,-911.5594 3014.7529,-904.7253 3016.82,-915.1165 3022.8489,-911.5594"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.43s)">
<text text-anchor="middle" x="3051.7241" y="-930.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N67 -->
<g id="edge70" class="edge">
<title>N68&#45;&gt;N67</title>
<g id="a_edge70"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.42s)">
<path fill="none" stroke="#000000" d="M3063.8212,-1071.0857C3063.6698,-1055.4868 3063.4501,-1032.865 3063.2761,-1014.9401"/>
<polygon fill="#000000" stroke="#000000" points="3066.7742,-1014.7204 3063.1772,-1004.7549 3059.7746,-1014.7885 3066.7742,-1014.7204"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.42s)">
<text text-anchor="middle" x="3079.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N72 -->
<g id="edge93" class="edge">
<title>N69&#45;&gt;N72</title>
<g id="a_edge93"><a xlink:title="regexp.(*Regexp).put &#45;&gt; sync.(*Mutex).Lock (0.19s)">
<path fill="none" stroke="#000000" d="M2295.8218,-867.2463C2286.4279,-849.4761 2272.3405,-822.8274 2261.5398,-802.3962"/>
<polygon fill="#000000" stroke="#000000" points="2264.6051,-800.7056 2256.8373,-793.5006 2258.4166,-803.9771 2264.6051,-800.7056"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="regexp.(*Regexp).put &#45;&gt; sync.(*Mutex).Lock (0.19s)">
<text text-anchor="middle" x="2299.7241" y="-833.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N61 -->
<g id="edge74" class="edge">
<title>N71&#45;&gt;N61</title>
<g id="a_edge74"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.41s)">
<path fill="none" stroke="#000000" d="M2500.0659,-1401.3097C2591.0835,-1396.6764 2823.1665,-1381.8 2892,-1348 2907.9453,-1340.1702 2922.1816,-1326.404 2932.7809,-1314.0313"/>
<polygon fill="#000000" stroke="#000000" points="2935.5817,-1316.1352 2939.2024,-1306.1782 2930.1627,-1311.704 2935.5817,-1316.1352"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.41s)">
<text text-anchor="middle" x="2927.7241" y="-1336.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.mcall (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3001.7699,-1107.5 2928.2301,-1107.5 2928.2301,-1071.5 3001.7699,-1071.5 3001.7699,-1107.5"/>
<text text-anchor="middle" x="2965" y="-1091.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="2965" y="-1083.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.39s(0.93%)</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.park_m (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3002.7699,-1004.5 2929.2301,-1004.5 2929.2301,-968.5 3002.7699,-968.5 3002.7699,-1004.5"/>
<text text-anchor="middle" x="2966" y="-988.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.park_m</text>
<text text-anchor="middle" x="2966" y="-980.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.37s(0.88%)</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N77 -->
<g id="edge79" class="edge">
<title>N73&#45;&gt;N77</title>
<g id="a_edge79"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.37s)">
<path fill="none" stroke="#000000" d="M2965.1788,-1071.0857C2965.3302,-1055.4868 2965.5499,-1032.865 2965.7239,-1014.9401"/>
<polygon fill="#000000" stroke="#000000" points="2969.2254,-1014.7885 2965.8228,-1004.7549 2962.2258,-1014.7204 2969.2254,-1014.7885"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.37s)">
<text text-anchor="middle" x="2981.7241" y="-1033.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.stopm (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2983.7699,-678 2910.2301,-678 2910.2301,-642 2983.7699,-642 2983.7699,-678"/>
<text text-anchor="middle" x="2947" y="-661.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="2947" y="-653.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.39s(0.93%)</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N10 -->
<g id="edge86" class="edge">
<title>N74&#45;&gt;N10</title>
<g id="a_edge86"><a xlink:title="runtime.stopm ... runtime.systemstack (0.26s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2933.5889,-641.9139C2923.5044,-629.6264 2908.6129,-614.0233 2892,-605 2870.2694,-593.197 2813.3102,-581.6293 2765.3952,-573.4701"/>
<polygon fill="#000000" stroke="#000000" points="2765.765,-569.9833 2755.3239,-571.7818 2764.6077,-576.887 2765.765,-569.9833"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.stopm ... runtime.systemstack (0.26s)">
<text text-anchor="middle" x="2927.7241" y="-607.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N10 -->
<g id="edge89" class="edge">
<title>N76&#45;&gt;N10</title>
<g id="a_edge89"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.22s)">
<path fill="none" stroke="#000000" d="M1920.6189,-1400.0213C2011.7177,-1393.6661 2232.1638,-1378.3496 2417,-1366 2540.0963,-1357.7755 2571.6421,-1363.776 2694,-1348 2779.3096,-1337.0007 2878,-1374.0158 2878,-1288 2878,-1288 2878,-1288 2878,-660 2878,-606.576 2817.5655,-582.229 2765.2261,-571.1609"/>
<polygon fill="#000000" stroke="#000000" points="2765.7149,-567.6898 2755.2257,-569.1821 2764.3561,-574.5567 2765.7149,-567.6898"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.22s)">
<text text-anchor="middle" x="2894.7241" y="-982.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N43 -->
<g id="edge80" class="edge">
<title>N77&#45;&gt;N43</title>
<g id="a_edge80"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.37s)">
<path fill="none" stroke="#000000" d="M2972.9698,-968.1585C2978.7013,-953.0755 2986.914,-931.4631 2993.4508,-914.2611"/>
<polygon fill="#000000" stroke="#000000" points="2996.7939,-915.3164 2997.0744,-904.7253 2990.2504,-912.8298 2996.7939,-915.3164"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.37s)">
<text text-anchor="middle" x="3003.7241" y="-930.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N74 -->
<g id="edge85" class="edge">
<title>N78&#45;&gt;N74</title>
<g id="a_edge85"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.29s)">
<path fill="none" stroke="#000000" d="M2957.072,-754.8446C2955.1651,-736.8877 2952.2191,-709.1466 2950.005,-688.2969"/>
<polygon fill="#000000" stroke="#000000" points="2953.4597,-687.6848 2948.9232,-678.1103 2946.4989,-688.4241 2953.4597,-687.6848"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.29s)">
<text text-anchor="middle" x="2968.7241" y="-703.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion1.svg.























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1829)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1829 3028.0815,-1829 3028.0815,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="200.1123,-1601 200.1123,-1817 862.1123,-1817 862.1123,-1601 200.1123,-1601"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="853.9561,-1809 208.2685,-1809 208.2685,-1609 853.9561,-1609 853.9561,-1809"/>
<text text-anchor="start" x="216.1904" y="-1779.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="216.1904" y="-1747.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="216.1904" y="-1715.4" font-family="Times,serif" font-size="32.00" fill="#000000">25.77s of 28.74s total (89.67%)</text>
<text text-anchor="start" x="216.1904" y="-1683.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 105 nodes (cum &lt;= 0.14s)</text>
<text text-anchor="start" x="216.1904" y="-1651.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 12 edges (freq &lt;= 0.03s)</text>
<text text-anchor="start" x="216.1904" y="-1619.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 108 (cum &gt;= 0.22s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (26.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1032.4436,-1559 793.781,-1559 793.781,-1485 1032.4436,-1485 1032.4436,-1559"/>
<text text-anchor="middle" x="913.1123" y="-1537.4" font-family="Times,serif" font-size="22.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="913.1123" y="-1515.4" font-family="Times,serif" font-size="22.00" fill="#000000">2.60s(9.05%)</text>
<text text-anchor="middle" x="913.1123" y="-1493.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 26.91s(93.63%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).loadLoopWords.func1 (26.76s)">
<polygon fill="#f8f8f8" stroke="#000000" points="429.0977,-1429 253.127,-1429 253.127,-1391 429.0977,-1391 429.0977,-1429"/>
<text text-anchor="middle" x="341.1123" y="-1417" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="341.1123" y="-1407" font-family="Times,serif" font-size="10.00" fill="#000000">0.05s(0.17%)</text>
<text text-anchor="middle" x="341.1123" y="-1397" font-family="Times,serif" font-size="10.00" fill="#000000">of 26.76s(93.11%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge89" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge89"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.17s)">
<path fill="none" stroke="#000000" d="M793.8582,-1515.9435C669.5805,-1508.3613 483.8919,-1493.0916 417.6641,-1467 407.7939,-1463.1115 388.6455,-1448.8525 371.9699,-1435.5701"/>
<polygon fill="#000000" stroke="#000000" points="374.0173,-1432.725 364.0339,-1429.1778 369.6262,-1438.1765 374.0173,-1432.725"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.17s)">
<text text-anchor="middle" x="434.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="991.667,-1429 834.5576,-1429 834.5576,-1391 991.667,-1391 991.667,-1429"/>
<text text-anchor="middle" x="913.1123" y="-1417" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="913.1123" y="-1407" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.14%)</text>
<text text-anchor="middle" x="913.1123" y="-1397" font-family="Times,serif" font-size="10.00" fill="#000000">of 25s(86.99%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N4 -->
<g id="edge95" class="edge">
<title>N1&#45;&gt;N4</title>
<g id="a_edge95"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.12s)">
<path fill="none" stroke="#000000" d="M883.5669,-1484.7545C880.3304,-1479.0733 877.5349,-1473.0718 875.6641,-1467 872.4074,-1456.4306 876.5127,-1445.9858 883.0412,-1436.9816"/>
<polygon fill="#000000" stroke="#000000" points="885.8534,-1439.0745 889.5764,-1429.1554 880.4803,-1434.5879 885.8534,-1439.0745"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.12s)">
<text text-anchor="middle" x="892.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="main.tryParseFloat (5.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="235.5967,-1432 128.6279,-1432 128.6279,-1388 235.5967,-1388 235.5967,-1432"/>
<text text-anchor="middle" x="182.1123" y="-1418.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="182.1123" y="-1406.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.14s(0.49%)</text>
<text text-anchor="middle" x="182.1123" y="-1394.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 5.40s(18.79%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N8 -->
<g id="edge5" class="edge">
<title>N1&#45;&gt;N8</title>
<g id="a_edge5"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (5.40s)">
<path fill="none" stroke="#000000" d="M793.6678,-1515.959C643.7719,-1507.5458 395.552,-1490.6287 306.6641,-1467 280.4051,-1460.0197 252.775,-1447.9158 230.2286,-1436.6523"/>
<polygon fill="#000000" stroke="#000000" points="231.7149,-1433.4815 221.2158,-1432.0602 228.537,-1439.7186 231.7149,-1433.4815"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (5.40s)">
<text text-anchor="middle" x="323.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.40s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.tryParseInt (4.69s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1108.7672,-1432 1009.4574,-1432 1009.4574,-1388 1108.7672,-1388 1108.7672,-1432"/>
<text text-anchor="middle" x="1059.1123" y="-1418.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="1059.1123" y="-1406.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.17s(0.59%)</text>
<text text-anchor="middle" x="1059.1123" y="-1394.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 4.69s(16.32%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N11 -->
<g id="edge8" class="edge">
<title>N1&#45;&gt;N11</title>
<g id="a_edge8"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (4.69s)">
<path fill="none" stroke="#000000" d="M961.7282,-1484.7056C981.4384,-1469.5855 1003.8281,-1452.4098 1022.1652,-1438.343"/>
<polygon fill="#000000" stroke="#000000" points="1024.477,-1440.9808 1030.281,-1432.1171 1020.2164,-1435.4268 1024.477,-1440.9808"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (4.69s)">
<text text-anchor="middle" x="1016.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.69s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="main.NilWord.func1 (2.97s)">
<polygon fill="#f8f8f8" stroke="#000000" points="623.3787,-1430.5 516.8459,-1430.5 516.8459,-1389.5 623.3787,-1389.5 623.3787,-1430.5"/>
<text text-anchor="middle" x="570.1123" y="-1417.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="570.1123" y="-1406.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.21%)</text>
<text text-anchor="middle" x="570.1123" y="-1395.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 2.97s(10.33%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N16 -->
<g id="edge38" class="edge">
<title>N1&#45;&gt;N16</title>
<g id="a_edge38"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.67s)">
<path fill="none" stroke="#000000" d="M793.9211,-1487.1637C743.957,-1471.993 685.43,-1453.478 633.1123,-1435 632.2385,-1434.6914 631.3589,-1434.3781 630.4746,-1434.0608"/>
<polygon fill="#000000" stroke="#000000" points="631.4688,-1430.6973 620.8753,-1430.5302 629.0525,-1437.267 631.4688,-1430.6973"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.67s)">
<text text-anchor="middle" x="741.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.67s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.convT2I (2.89s)">
<polygon fill="#f8f8f8" stroke="#000000" points="958.7672,-1020 859.4574,-1020 859.4574,-976 958.7672,-976 958.7672,-1020"/>
<text text-anchor="middle" x="909.1123" y="-1006.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="909.1123" y="-994.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.23s(0.8%)</text>
<text text-anchor="middle" x="909.1123" y="-982.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 2.89s(10.06%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N17 -->
<g id="edge19" class="edge">
<title>N1&#45;&gt;N17</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.96s)">
<path fill="none" stroke="#000000" d="M1032.3833,-1491.8712C1063.8919,-1478.8866 1095.4004,-1460.5917 1118.1123,-1435 1177.0142,-1368.6295 1218.7318,-1105.4868 1161.1123,-1038 1148.7584,-1023.5305 1039.4923,-1010.467 968.9529,-1003.4391"/>
<polygon fill="#000000" stroke="#000000" points="969.1367,-999.9404 958.8425,-1002.4465 968.4527,-1006.9069 969.1367,-999.9404"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.96s)">
<text text-anchor="middle" x="1198.8364" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.96s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.mapaccess2_faststr (1.84s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1979.4656,-1335 1774.759,-1335 1774.759,-1276 1979.4656,-1276 1979.4656,-1335"/>
<text text-anchor="middle" x="1877.1123" y="-1317.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="1877.1123" y="-1300.4" font-family="Times,serif" font-size="17.00" fill="#000000">1.17s(4.07%)</text>
<text text-anchor="middle" x="1877.1123" y="-1283.4" font-family="Times,serif" font-size="17.00" fill="#000000">of 1.84s(6.40%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N20 -->
<g id="edge22" class="edge">
<title>N1&#45;&gt;N20</title>
<g id="a_edge22"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.55s)">
<path fill="none" stroke="#000000" d="M1032.5113,-1518.6762C1186.6708,-1513.2293 1462.9711,-1499.544 1697.1123,-1467 1765.9222,-1457.4359 1801.0041,-1484.1391 1850.1123,-1435 1873.3186,-1411.7791 1879.0273,-1374.1138 1879.5436,-1345.375"/>
<polygon fill="#000000" stroke="#000000" points="1883.0434,-1345.2266 1879.5217,-1335.2342 1876.0434,-1345.2418 1883.0434,-1345.2266"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.55s)">
<text text-anchor="middle" x="1890.8364" y="-1405.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.55s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="main.(*machine).executeMathWord (1.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="816.1676,-1430.5 642.0571,-1430.5 642.0571,-1389.5 816.1676,-1389.5 816.1676,-1430.5"/>
<text text-anchor="middle" x="729.1123" y="-1417.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="729.1123" y="-1406.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.24%)</text>
<text text-anchor="middle" x="729.1123" y="-1395.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 1.65s(5.74%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N21 -->
<g id="edge20" class="edge">
<title>N1&#45;&gt;N21</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.65s)">
<path fill="none" stroke="#000000" d="M852.0985,-1484.8612C825.7546,-1468.8258 795.5727,-1450.4541 771.7013,-1435.9237"/>
<polygon fill="#000000" stroke="#000000" points="773.2443,-1432.7656 762.8825,-1430.5558 769.6047,-1438.745 773.2443,-1432.7656"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.65s)">
<text text-anchor="middle" x="837.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.65s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="main.(*CodeQuotation).cloneCode (1.60s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1385.0615,-1432 1203.1631,-1432 1203.1631,-1388 1385.0615,-1388 1385.0615,-1432"/>
<text text-anchor="middle" x="1294.1123" y="-1418.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="1294.1123" y="-1406.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.18s(0.63%)</text>
<text text-anchor="middle" x="1294.1123" y="-1394.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.60s(5.57%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N22 -->
<g id="edge21" class="edge">
<title>N1&#45;&gt;N22</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.60s)">
<path fill="none" stroke="#000000" d="M1032.4141,-1506.2792C1081.8245,-1497.7136 1139.1457,-1485.0707 1189.1123,-1467 1210.4008,-1459.3009 1232.622,-1447.8063 1251.1112,-1437.1519"/>
<polygon fill="#000000" stroke="#000000" points="1253.0171,-1440.0916 1259.8676,-1432.0094 1249.4722,-1434.0556 1253.0171,-1440.0916"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.60s)">
<text text-anchor="middle" x="1236.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.60s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.growslice (1.53s)">
<polygon fill="#f8f8f8" stroke="#000000" points="110.3371,-1433.5 -.1125,-1433.5 -.1125,-1386.5 110.3371,-1386.5 110.3371,-1433.5"/>
<text text-anchor="middle" x="55.1123" y="-1419.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="55.1123" y="-1406.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.32s(1.11%)</text>
<text text-anchor="middle" x="55.1123" y="-1393.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.53s(5.32%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N23 -->
<g id="edge23" class="edge">
<title>N1&#45;&gt;N23</title>
<g id="a_edge23"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.53s)">
<path fill="none" stroke="#000000" d="M793.812,-1519.6424C656.847,-1515.2631 425.9223,-1502.7505 230.6641,-1467 193.0825,-1460.1191 152.4275,-1447.2834 119.714,-1435.5322"/>
<polygon fill="#000000" stroke="#000000" points="120.863,-1432.2259 110.2691,-1432.0908 118.4665,-1438.8029 120.863,-1432.2259"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.53s)">
<text text-anchor="middle" x="247.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.53s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.memeqbody (0.94s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1683.4717,-1219.5 1534.7529,-1219.5 1534.7529,-1179.5 1683.4717,-1179.5 1683.4717,-1219.5"/>
<text text-anchor="middle" x="1609.1123" y="-1202.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="1609.1123" y="-1186.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.94s(3.27%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N26 -->
<g id="edge35" class="edge">
<title>N1&#45;&gt;N26</title>
<g id="a_edge35"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.79s)">
<path fill="none" stroke="#000000" d="M1032.5135,-1514.7808C1216.5973,-1502.4612 1552.5319,-1474.7918 1590.1123,-1435 1642.6994,-1379.3184 1628.6832,-1279.5803 1617.2453,-1229.6743"/>
<polygon fill="#000000" stroke="#000000" points="1620.6147,-1228.7163 1614.8686,-1219.815 1613.8097,-1230.3568 1620.6147,-1228.7163"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.79s)">
<text text-anchor="middle" x="1642.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.79s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.deferproc (0.89s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2560.4037,-1432 2457.8209,-1432 2457.8209,-1388 2560.4037,-1388 2560.4037,-1432"/>
<text text-anchor="middle" x="2509.1123" y="-1418.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="2509.1123" y="-1406.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.16s(0.56%)</text>
<text text-anchor="middle" x="2509.1123" y="-1394.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.89s(3.10%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N27 -->
<g id="edge29" class="edge">
<title>N1&#45;&gt;N27</title>
<g id="a_edge29"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.89s)">
<path fill="none" stroke="#000000" d="M1032.4949,-1520.0144C1258.5685,-1515.5533 1764.5653,-1502.2198 2189.1123,-1467 2305.1412,-1457.3744 2336.5569,-1464.7766 2449.1123,-1435 2449.2146,-1434.9729 2449.3169,-1434.9457 2449.4193,-1434.9184"/>
<polygon fill="#000000" stroke="#000000" points="2450.4737,-1438.2562 2459.0432,-1432.0261 2448.459,-1431.5524 2450.4737,-1438.2562"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.89s)">
<text text-anchor="middle" x="2381.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.89s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.deferreturn (0.82s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2703.8371,-1435 2578.3875,-1435 2578.3875,-1385 2703.8371,-1385 2703.8371,-1435"/>
<text text-anchor="middle" x="2641.1123" y="-1419.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="2641.1123" y="-1405.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.39s(1.36%)</text>
<text text-anchor="middle" x="2641.1123" y="-1391.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.82s(2.85%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N32 -->
<g id="edge33" class="edge">
<title>N1&#45;&gt;N32</title>
<g id="a_edge33"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.82s)">
<path fill="none" stroke="#000000" d="M1032.4145,-1519.9417C1336.9723,-1514.3098 2137.7731,-1497.0306 2402.1123,-1467 2474.122,-1458.8192 2494.4682,-1454.8855 2568.6307,-1434.9981"/>
<polygon fill="#000000" stroke="#000000" points="2569.7022,-1438.3343 2578.4501,-1432.3572 2567.8842,-1431.5745 2569.7022,-1438.3343"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.82s)">
<text text-anchor="middle" x="2510.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.82s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.ifaceeq (0.56s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1147.2097,-1121.5 1041.0149,-1121.5 1041.0149,-1071.5 1147.2097,-1071.5 1147.2097,-1121.5"/>
<text text-anchor="middle" x="1094.1123" y="-1106.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="1094.1123" y="-1092.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.49s(1.70%)</text>
<text text-anchor="middle" x="1094.1123" y="-1078.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.56s(1.95%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N39 -->
<g id="edge93" class="edge">
<title>N1&#45;&gt;N39</title>
<g id="a_edge93"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.13s)">
<path fill="none" stroke="#000000" d="M1032.521,-1506.3396C1082.7562,-1497.3969 1133.6169,-1484.4397 1151.1123,-1467 1187.0464,-1431.1802 1215.6659,-1292.295 1200.1123,-1244 1185.7537,-1199.4155 1152.3724,-1156.9124 1126.8767,-1129.0847"/>
<polygon fill="#000000" stroke="#000000" points="1129.3015,-1126.5532 1119.9171,-1121.6355 1124.1865,-1131.332 1129.3015,-1126.5532"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.13s)">
<text text-anchor="middle" x="1221.8364" y="-1301.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="main.(*CodeQuotation).nextWord (0.51s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1841.2162,-1428 1637.0084,-1428 1637.0084,-1392 1841.2162,-1392 1841.2162,-1428"/>
<text text-anchor="middle" x="1739.1123" y="-1412.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="1739.1123" y="-1398.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.51s(1.77%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N41 -->
<g id="edge42" class="edge">
<title>N1&#45;&gt;N41</title>
<g id="a_edge42"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.51s)">
<path fill="none" stroke="#000000" d="M1032.4355,-1518.2058C1204.9521,-1511.7924 1515.1894,-1496.5225 1623.1123,-1467 1650.6953,-1459.4546 1679.5631,-1445.2958 1701.6008,-1432.978"/>
<polygon fill="#000000" stroke="#000000" points="1703.3493,-1436.0101 1710.2996,-1428.0136 1699.8796,-1429.9305 1703.3493,-1436.0101"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.51s)">
<text text-anchor="middle" x="1676.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.51s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.46s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1580.7533,-1429 1403.4713,-1429 1403.4713,-1391 1580.7533,-1391 1580.7533,-1429"/>
<text text-anchor="middle" x="1492.1123" y="-1417" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="1492.1123" y="-1407" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.07%)</text>
<text text-anchor="middle" x="1492.1123" y="-1397" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.46s(1.60%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N45 -->
<g id="edge46" class="edge">
<title>N1&#45;&gt;N45</title>
<g id="a_edge46"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.46s)">
<path fill="none" stroke="#000000" d="M1032.485,-1505.0427C1098.8399,-1495.0834 1182.7813,-1481.6041 1257.1123,-1467 1318.4671,-1454.9454 1333.371,-1449.8399 1394.1123,-1435 1398.7204,-1433.8742 1403.4473,-1432.7076 1408.2166,-1431.5213"/>
<polygon fill="#000000" stroke="#000000" points="1409.1885,-1434.8861 1418.0412,-1429.0655 1407.4909,-1428.0951 1409.1885,-1434.8861"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.46s)">
<text text-anchor="middle" x="1338.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.46s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="main.(*machine).hasPrefixWord (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2087.3064,-1430.5 1928.9182,-1430.5 1928.9182,-1389.5 2087.3064,-1389.5 2087.3064,-1430.5"/>
<text text-anchor="middle" x="2008.1123" y="-1417.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="2008.1123" y="-1406.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.21%)</text>
<text text-anchor="middle" x="2008.1123" y="-1395.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.38s(1.32%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N47 -->
<g id="edge49" class="edge">
<title>N1&#45;&gt;N47</title>
<g id="a_edge49"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.38s)">
<path fill="none" stroke="#000000" d="M1032.3602,-1521.1656C1256.4613,-1518.6293 1732.1983,-1508.3839 1891.1123,-1467 1917.1323,-1460.224 1944.2432,-1447.431 1965.8083,-1435.6791"/>
<polygon fill="#000000" stroke="#000000" points="1967.6614,-1438.6532 1974.6917,-1430.7269 1964.2529,-1432.5391 1967.6614,-1438.6532"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.38s)">
<text text-anchor="middle" x="1943.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="main.wordIsWhitespace (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2228.2131,-1430.5 2106.0116,-1430.5 2106.0116,-1389.5 2228.2131,-1389.5 2228.2131,-1430.5"/>
<text text-anchor="middle" x="2167.1123" y="-1417.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="2167.1123" y="-1406.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.12s(0.42%)</text>
<text text-anchor="middle" x="2167.1123" y="-1395.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.28s(0.97%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N62 -->
<g id="edge64" class="edge">
<title>N1&#45;&gt;N62</title>
<g id="a_edge64"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.28s)">
<path fill="none" stroke="#000000" d="M1032.3071,-1518.5483C1268.3075,-1511.2549 1787.4973,-1492.8009 1964.1123,-1467 2023.8443,-1458.274 2038.2359,-1452.1574 2096.1123,-1435 2097.561,-1434.5705 2099.0237,-1434.1289 2100.4961,-1433.677"/>
<polygon fill="#000000" stroke="#000000" points="2101.8352,-1436.9242 2110.3109,-1430.567 2099.7207,-1430.2512 2101.8352,-1436.9242"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.28s)">
<text text-anchor="middle" x="2048.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2439.9171,-1430.5 2246.3075,-1430.5 2246.3075,-1389.5 2439.9171,-1389.5 2439.9171,-1430.5"/>
<text text-anchor="middle" x="2343.1123" y="-1417.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2343.1123" y="-1406.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.08s(0.28%)</text>
<text text-anchor="middle" x="2343.1123" y="-1395.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.24s(0.84%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N71 -->
<g id="edge73" class="edge">
<title>N1&#45;&gt;N71</title>
<g id="a_edge73"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.24s)">
<path fill="none" stroke="#000000" d="M1032.3798,-1518.457C1285.8685,-1510.5778 1871.2064,-1490.4382 2069.1123,-1467 2131.1153,-1459.6569 2199.9105,-1445.3237 2253.0564,-1432.8682"/>
<polygon fill="#000000" stroke="#000000" points="2253.8662,-1436.2733 2262.7927,-1430.5664 2252.2557,-1429.4611 2253.8662,-1436.2733"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.24s)">
<text text-anchor="middle" x="2168.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge1" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge1"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (26.59s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M339.2502,-1429.1804C339.1664,-1441.7779 341.4333,-1457.6077 351.6641,-1467 382.8371,-1495.6185 627.8188,-1510.6634 783.7086,-1517.4184"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="783.6671,-1521.7955 793.8448,-1517.8514 784.0406,-1513.0535 783.6671,-1521.7955"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (26.59s)">
<text text-anchor="middle" x="372.3364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 26.59s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.newobject (9.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="807.7188,-926 694.5058,-926 694.5058,-879 807.7188,-879 807.7188,-926"/>
<text text-anchor="middle" x="751.1123" y="-911.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="751.1123" y="-898.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.34s(1.18%)</text>
<text text-anchor="middle" x="751.1123" y="-885.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 9.66s(33.61%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge97" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge97"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.10s)">
<path fill="none" stroke="#000000" d="M319.4757,-1390.7259C305.5694,-1376.8118 288.7292,-1356.714 281.1123,-1335 272.4326,-1310.256 268.5912,-1299.0397 281.1123,-1276 340.8011,-1166.1686 434.9475,-1217.2052 517.1123,-1123 576.3128,-1055.1243 537.2385,-994.0572 612.1123,-944 633.6418,-929.6064 660.3031,-920.0801 684.4996,-913.8333"/>
<polygon fill="#000000" stroke="#000000" points="685.4542,-917.2031 694.3405,-911.4339 683.796,-910.4024 685.4542,-917.2031"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.10s)">
<text text-anchor="middle" x="516.8364" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="runtime.goexit (26.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="953.8822,-1727 872.3424,-1727 872.3424,-1691 953.8822,-1691 953.8822,-1727"/>
<text text-anchor="middle" x="913.1123" y="-1710.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="913.1123" y="-1702.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 26.37s(91.75%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N1 -->
<g id="edge2" class="edge">
<title>N3&#45;&gt;N1</title>
<g id="a_edge2"><a xlink:title="runtime.goexit ... main.(*machine).execute (25.45s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M913.1123,-1690.7292C913.1123,-1662.8892 913.1123,-1608.9273 913.1123,-1569.4997"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="917.4874,-1569.3069 913.1123,-1559.307 908.7374,-1569.307 917.4874,-1569.3069"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (25.45s)">
<text text-anchor="middle" x="933.3364" y="-1579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 25.45s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.gcBgMarkWorker (0.87s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2914.503,-1540 2813.7216,-1540 2813.7216,-1504 2914.503,-1504 2914.503,-1540"/>
<text text-anchor="middle" x="2864.1123" y="-1523.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="2864.1123" y="-1515.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.87s(3.03%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N28 -->
<g id="edge30" class="edge">
<title>N3&#45;&gt;N28</title>
<g id="a_edge30"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.87s)">
<path fill="none" stroke="#000000" d="M954.1667,-1708.3962C1196.7374,-1704.4326 2444.2016,-1678.4492 2805.1123,-1559 2814.5684,-1555.8703 2824.0485,-1550.9232 2832.5578,-1545.6526"/>
<polygon fill="#000000" stroke="#000000" points="2834.5823,-1548.5106 2841.0324,-1540.1054 2830.7485,-1542.6537 2834.5823,-1548.5106"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.87s)">
<text text-anchor="middle" x="2737.8364" y="-1579.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.87s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (24.88s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M913.1123,-1429.2336C913.1123,-1441.7067 913.1123,-1458.5404 913.1123,-1474.4441"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="908.7374,-1474.7056 913.1123,-1484.7056 917.4874,-1474.7057 908.7374,-1474.7056"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (24.88s)">
<text text-anchor="middle" x="933.3364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 24.88s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N6 -->
<g id="edge101" class="edge">
<title>N4&#45;&gt;N6</title>
<g id="a_edge101"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.05s)">
<path fill="none" stroke="#000000" d="M877.9631,-1390.8126C867.1392,-1384.0463 855.5887,-1375.8879 846.1123,-1367 809.4792,-1332.6418 817.3974,-1308.5072 779.1123,-1276 741.8389,-1244.3518 711.4374,-1264.3575 681.1123,-1226 658.9839,-1198.0103 662.1123,-1183.6803 662.1123,-1148 662.1123,-1148 662.1123,-1148 662.1123,-998 662.1123,-971.0897 681.2589,-948.5976 701.7909,-932.2144"/>
<polygon fill="#000000" stroke="#000000" points="704.1273,-934.8359 709.999,-926.017 699.9093,-929.2494 704.1273,-934.8359"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.05s)">
<text text-anchor="middle" x="678.8364" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.mallocgc (10.76s)">
<polygon fill="#f8f8f8" stroke="#000000" points="848.9211,-829 653.3035,-829 653.3035,-749 848.9211,-749 848.9211,-829"/>
<text text-anchor="middle" x="751.1123" y="-805.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="751.1123" y="-781.8" font-family="Times,serif" font-size="24.00" fill="#000000">3.81s(13.26%)</text>
<text text-anchor="middle" x="751.1123" y="-757.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 10.76s(37.44%)</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.heapBitsSetType (2.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="865.1864,-699 637.0382,-699 637.0382,-649 865.1864,-649 865.1864,-699"/>
<text text-anchor="middle" x="751.1123" y="-678.2" font-family="Times,serif" font-size="21.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="751.1123" y="-657.2" font-family="Times,serif" font-size="21.00" fill="#000000">2.19s(7.62%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N19 -->
<g id="edge18" class="edge">
<title>N5&#45;&gt;N19</title>
<g id="a_edge18"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (2.19s)">
<path fill="none" stroke="#000000" d="M751.1123,-748.7786C751.1123,-735.9256 751.1123,-721.8029 751.1123,-709.3253"/>
<polygon fill="#000000" stroke="#000000" points="754.6124,-709.295 751.1123,-699.295 747.6124,-709.2951 754.6124,-709.295"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (2.19s)">
<text text-anchor="middle" x="767.8364" y="-719.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.19s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.(*mcache).nextFree (1.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1694.8939,-693 1565.3307,-693 1565.3307,-655 1694.8939,-655 1694.8939,-693"/>
<text text-anchor="middle" x="1630.1123" y="-681" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="1630.1123" y="-671" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.07%)</text>
<text text-anchor="middle" x="1630.1123" y="-661" font-family="Times,serif" font-size="10.00" fill="#000000">of 1.16s(4.04%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N24 -->
<g id="edge26" class="edge">
<title>N5&#45;&gt;N24</title>
<g id="a_edge26"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (1.16s)">
<path fill="none" stroke="#000000" d="M848.9623,-776.1982C1026.0838,-753.0253 1396.1912,-704.604 1555.0498,-683.8205"/>
<polygon fill="#000000" stroke="#000000" points="1555.7423,-687.2598 1565.2038,-682.492 1554.8342,-680.3189 1555.7423,-687.2598"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (1.16s)">
<text text-anchor="middle" x="1312.8364" y="-719.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.16s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.memclr (0.61s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1112.3308,-693 999.8938,-693 999.8938,-655 1112.3308,-655 1112.3308,-693"/>
<text text-anchor="middle" x="1056.1123" y="-677" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="1056.1123" y="-662" font-family="Times,serif" font-size="15.00" fill="#000000">0.61s(2.12%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N37 -->
<g id="edge99" class="edge">
<title>N5&#45;&gt;N37</title>
<g id="a_edge99"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.06s)">
<path fill="none" stroke="#000000" d="M848.9773,-752.5126C892.5269,-736.2213 944.4156,-716.7354 991.1123,-699 993.1786,-698.2152 995.2813,-697.415 997.4046,-696.6056"/>
<polygon fill="#000000" stroke="#000000" points="998.705,-699.8556 1006.7974,-693.0172 996.2068,-693.3166 998.705,-699.8556"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.06s)">
<text text-anchor="middle" x="955.8364" y="-719.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.mProf_Malloc (0.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="982.3485,-692 883.8761,-692 883.8761,-656 982.3485,-656 982.3485,-692"/>
<text text-anchor="middle" x="933.1123" y="-680.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.mProf_Malloc</text>
<text text-anchor="middle" x="933.1123" y="-671.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.035%)</text>
<text text-anchor="middle" x="933.1123" y="-662.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.52s(1.81%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N40 -->
<g id="edge41" class="edge">
<title>N5&#45;&gt;N40</title>
<g id="a_edge41"><a xlink:title="runtime.mallocgc ... runtime.mProf_Malloc (0.52s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M814.5116,-748.94C841.6196,-731.8113 872.337,-712.402 895.7178,-697.6284"/>
<polygon fill="#000000" stroke="#000000" points="897.7124,-700.5083 904.2966,-692.2077 893.9732,-694.5906 897.7124,-700.5083"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.mallocgc ... runtime.mProf_Malloc (0.52s)">
<text text-anchor="middle" x="880.8364" y="-719.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.52s</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N5 -->
<g id="edge4" class="edge">
<title>N6&#45;&gt;N5</title>
<g id="a_edge4"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (9.32s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M751.1123,-878.9827C751.1123,-867.496 751.1123,-853.2045 751.1123,-839.4179"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="754.6124,-839.0283 751.1123,-829.0283 747.6124,-839.0284 754.6124,-839.0283"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (9.32s)">
<text text-anchor="middle" x="767.8364" y="-849.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.32s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.systemstack (6.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2250.1206,-599 2128.104,-599 2128.104,-552 2250.1206,-552 2250.1206,-599"/>
<text text-anchor="middle" x="2189.1123" y="-584.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2189.1123" y="-571.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.27s(0.94%)</text>
<text text-anchor="middle" x="2189.1123" y="-558.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 6.27s(21.82%)</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="runtime.mach_semaphore_signal (3.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2349.2726,-502 2028.952,-502 2028.952,-448 2349.2726,-448 2349.2726,-502"/>
<text text-anchor="middle" x="2189.1123" y="-479.6" font-family="Times,serif" font-size="23.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2189.1123" y="-456.6" font-family="Times,serif" font-size="23.00" fill="#000000">3.29s(11.45%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N15 -->
<g id="edge12" class="edge">
<title>N7&#45;&gt;N15</title>
<g id="a_edge12"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (2.94s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2189.1123,-551.9372C2189.1123,-540.2178 2189.1123,-525.77 2189.1123,-512.571"/>
<polygon fill="#000000" stroke="#000000" points="2192.6124,-512.3293 2189.1123,-502.3293 2185.6124,-512.3294 2192.6124,-512.3293"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (2.94s)">
<text text-anchor="middle" x="2205.8364" y="-522.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.94s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.84s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2786.3075,-493 2645.9172,-493 2645.9172,-457 2786.3075,-457 2786.3075,-493"/>
<text text-anchor="middle" x="2716.1123" y="-481.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="2716.1123" y="-472.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.035%)</text>
<text text-anchor="middle" x="2716.1123" y="-463.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.84s(2.92%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N29 -->
<g id="edge31" class="edge">
<title>N7&#45;&gt;N29</title>
<g id="a_edge31"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.84s)">
<path fill="none" stroke="#000000" d="M2250.3943,-569.2072C2337.405,-559.4269 2501.2782,-537.8775 2637.1123,-502 2643.6089,-500.2841 2650.3433,-498.3042 2657.0163,-496.2122"/>
<polygon fill="#000000" stroke="#000000" points="2658.2712,-499.4851 2666.7142,-493.0847 2656.1226,-492.823 2658.2712,-499.4851"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.84s)">
<text text-anchor="middle" x="2568.8364" y="-522.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.84s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.deferproc.func1 (0.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2490.5079,-495.5 2367.7168,-495.5 2367.7168,-454.5 2490.5079,-454.5 2490.5079,-495.5"/>
<text text-anchor="middle" x="2429.1123" y="-482.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2429.1123" y="-471.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.11s(0.38%)</text>
<text text-anchor="middle" x="2429.1123" y="-460.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.65s(2.26%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N35 -->
<g id="edge40" class="edge">
<title>N7&#45;&gt;N35</title>
<g id="a_edge40"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.65s)">
<path fill="none" stroke="#000000" d="M2245.3816,-551.9372C2283.0603,-536.1593 2332.5481,-515.4363 2370.6697,-499.4728"/>
<polygon fill="#000000" stroke="#000000" points="2372.2306,-502.6137 2380.1027,-495.5228 2369.5268,-496.157 2372.2306,-502.6137"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.65s)">
<text text-anchor="middle" x="2332.8364" y="-522.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.65s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.deferreturn.func1 (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2627.8988,-494 2508.3258,-494 2508.3258,-456 2627.8988,-456 2627.8988,-494"/>
<text text-anchor="middle" x="2568.1123" y="-482" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="2568.1123" y="-472" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="2568.1123" y="-462" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.34s(1.18%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N53 -->
<g id="edge55" class="edge">
<title>N7&#45;&gt;N53</title>
<g id="a_edge55"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.34s)">
<path fill="none" stroke="#000000" d="M2250.3837,-563.6209C2313.416,-550.7853 2414.1146,-528.5625 2499.1123,-502 2503.4422,-500.6469 2507.8886,-499.1542 2512.3372,-497.586"/>
<polygon fill="#000000" stroke="#000000" points="2513.8345,-500.7658 2522.0351,-494.0575 2511.441,-494.1876 2513.8345,-500.7658"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.34s)">
<text text-anchor="middle" x="2447.8364" y="-522.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.(*mheap).alloc.func1 (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1508.9096,-493 1397.315,-493 1397.315,-457 1508.9096,-457 1508.9096,-493"/>
<text text-anchor="middle" x="1453.1123" y="-476.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="1453.1123" y="-468.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.27s(0.94%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N65 -->
<g id="edge69" class="edge">
<title>N7&#45;&gt;N65</title>
<g id="a_edge69"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.27s)">
<path fill="none" stroke="#000000" d="M2127.9421,-567.1473C1990.9756,-548.4446 1660.59,-503.3309 1519.1588,-484.0186"/>
<polygon fill="#000000" stroke="#000000" points="1519.2835,-480.5032 1508.9019,-482.618 1518.3364,-487.4388 1519.2835,-480.5032"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.27s)">
<text text-anchor="middle" x="1881.8364" y="-522.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.mach_semaphore_wait (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2010.6412,-493 1831.5834,-493 1831.5834,-457 2010.6412,-457 2010.6412,-493"/>
<text text-anchor="middle" x="1921.1123" y="-477.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="1921.1123" y="-464.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.26s(0.9%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N69 -->
<g id="edge70" class="edge">
<title>N7&#45;&gt;N69</title>
<g id="a_edge70"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.26s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2127.9636,-552.5692C2083.2024,-535.7838 2022.8594,-513.1552 1978.9045,-496.6721"/>
<polygon fill="#000000" stroke="#000000" points="1980.0985,-493.3819 1969.5062,-493.1477 1977.6406,-499.9362 1980.0985,-493.3819"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.26s)">
<text text-anchor="middle" x="2087.8364" y="-522.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="strconv.ParseFloat (5.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="234.3195,-1327.5 129.9051,-1327.5 129.9051,-1283.5 234.3195,-1283.5 234.3195,-1327.5"/>
<text text-anchor="middle" x="182.1123" y="-1313.9" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.ParseFloat</text>
<text text-anchor="middle" x="182.1123" y="-1301.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.14s(0.49%)</text>
<text text-anchor="middle" x="182.1123" y="-1289.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 5.26s(18.30%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N9 -->
<g id="edge6" class="edge">
<title>N8&#45;&gt;N9</title>
<g id="a_edge6"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (5.26s)">
<path fill="none" stroke="#000000" d="M182.1123,-1387.8382C182.1123,-1373.2908 182.1123,-1354.023 182.1123,-1337.7839"/>
<polygon fill="#000000" stroke="#000000" points="185.6124,-1337.6298 182.1123,-1327.6298 178.6124,-1337.6299 185.6124,-1337.6298"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (5.26s)">
<text text-anchor="middle" x="198.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.26s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="strconv.atof64 (5.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="242.1809,-1226 122.0437,-1226 122.0437,-1173 242.1809,-1173 242.1809,-1226"/>
<text text-anchor="middle" x="182.1123" y="-1210" font-family="Times,serif" font-size="15.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="182.1123" y="-1195" font-family="Times,serif" font-size="15.00" fill="#000000">0.63s(2.19%)</text>
<text text-anchor="middle" x="182.1123" y="-1180" font-family="Times,serif" font-size="15.00" fill="#000000">of 5.12s(17.81%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N10 -->
<g id="edge7" class="edge">
<title>N9&#45;&gt;N10</title>
<g id="a_edge7"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (5.12s)">
<path fill="none" stroke="#000000" d="M182.1123,-1283.2789C182.1123,-1269.7638 182.1123,-1252.1622 182.1123,-1236.5832"/>
<polygon fill="#000000" stroke="#000000" points="185.6124,-1236.1958 182.1123,-1226.1959 178.6124,-1236.1959 185.6124,-1236.1958"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (5.12s)">
<text text-anchor="middle" x="198.8364" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.12s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N6 -->
<g id="edge14" class="edge">
<title>N10&#45;&gt;N6</title>
<g id="a_edge14"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (2.60s)">
<path fill="none" stroke="#000000" d="M242.2059,-1192.3734C322.9271,-1181.574 460.2911,-1158.4853 495.1123,-1123 522.2627,-1095.3318 503.8033,-1075.2118 514.6641,-1038 527.088,-995.4321 514.6371,-973.0825 548.1123,-944 568.2242,-926.5273 633.0251,-915.3805 684.0664,-909.0889"/>
<polygon fill="#000000" stroke="#000000" points="684.559,-912.5551 694.0739,-907.8949 683.7296,-905.6044 684.559,-912.5551"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (2.60s)">
<text text-anchor="middle" x="531.8364" y="-1040.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.60s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.duffzero (1.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="237.5143,-1117.5 106.7103,-1117.5 106.7103,-1075.5 237.5143,-1075.5 237.5143,-1117.5"/>
<text text-anchor="middle" x="172.1123" y="-1099.9" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="172.1123" y="-1082.9" font-family="Times,serif" font-size="17.00" fill="#000000">1.09s(3.79%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N25 -->
<g id="edge28" class="edge">
<title>N10&#45;&gt;N25</title>
<g id="a_edge28"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (1.07s)">
<path fill="none" stroke="#000000" d="M179.5371,-1172.9749C178.1959,-1159.1613 176.5477,-1142.1846 175.1452,-1127.7384"/>
<polygon fill="#000000" stroke="#000000" points="178.6253,-1127.3629 174.1752,-1117.748 171.658,-1128.0394 178.6253,-1127.3629"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (1.07s)">
<text text-anchor="middle" x="194.8364" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.07s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="strconv.readFloat (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="368.2866,-1114.5 255.938,-1114.5 255.938,-1078.5 368.2866,-1078.5 368.2866,-1114.5"/>
<text text-anchor="middle" x="312.1123" y="-1099.3" font-family="Times,serif" font-size="14.00" fill="#000000">strconv.readFloat</text>
<text text-anchor="middle" x="312.1123" y="-1085.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.40s(1.39%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N46 -->
<g id="edge48" class="edge">
<title>N10&#45;&gt;N46</title>
<g id="a_edge48"><a xlink:title="strconv.atof64 &#45;&gt; strconv.readFloat (0.40s)">
<path fill="none" stroke="#000000" d="M215.5905,-1172.9749C235.8652,-1156.9112 261.5386,-1136.57 281.3099,-1120.905"/>
<polygon fill="#000000" stroke="#000000" points="283.7246,-1123.4573 289.389,-1114.5038 279.3775,-1117.9707 283.7246,-1123.4573"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.readFloat (0.40s)">
<text text-anchor="middle" x="271.8364" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="strconv.special (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="485.7623,-1120 386.4623,-1120 386.4623,-1073 485.7623,-1073 485.7623,-1120"/>
<text text-anchor="middle" x="436.1123" y="-1105.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.special</text>
<text text-anchor="middle" x="436.1123" y="-1092.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.28s(0.97%)</text>
<text text-anchor="middle" x="436.1123" y="-1079.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.32s(1.11%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N57 -->
<g id="edge57" class="edge">
<title>N10&#45;&gt;N57</title>
<g id="a_edge57"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.32s)">
<path fill="none" stroke="#000000" d="M242.589,-1176.6394C278.9864,-1162.6806 326.4119,-1144.1419 376.8433,-1123.0478"/>
<polygon fill="#000000" stroke="#000000" points="378.4278,-1126.1785 386.2929,-1119.0798 375.7177,-1119.7244 378.4278,-1126.1785"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.32s)">
<text text-anchor="middle" x="346.8364" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="strconv.Atoi (4.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1138.296,-1326 1045.9287,-1326 1045.9287,-1285 1138.296,-1285 1138.296,-1326"/>
<text text-anchor="middle" x="1092.1123" y="-1313.2" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="1092.1123" y="-1302.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.12s(0.42%)</text>
<text text-anchor="middle" x="1092.1123" y="-1291.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 4.52s(15.73%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N12 -->
<g id="edge9" class="edge">
<title>N11&#45;&gt;N12</title>
<g id="a_edge9"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (4.52s)">
<path fill="none" stroke="#000000" d="M1066.1108,-1387.8382C1070.8738,-1372.7553 1077.2392,-1352.5982 1082.4797,-1336.0033"/>
<polygon fill="#000000" stroke="#000000" points="1085.899,-1336.7981 1085.5728,-1326.2083 1079.2239,-1334.6901 1085.899,-1336.7981"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (4.52s)">
<text text-anchor="middle" x="1093.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.52s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="strconv.ParseInt (4.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1108.7097,-1224.5 995.5149,-1224.5 995.5149,-1174.5 1108.7097,-1174.5 1108.7097,-1224.5"/>
<text text-anchor="middle" x="1052.1123" y="-1209.3" font-family="Times,serif" font-size="14.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="1052.1123" y="-1195.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.41s(1.43%)</text>
<text text-anchor="middle" x="1052.1123" y="-1181.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 4.40s(15.31%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N13 -->
<g id="edge10" class="edge">
<title>N12&#45;&gt;N13</title>
<g id="a_edge10"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (4.40s)">
<path fill="none" stroke="#000000" d="M1084.3049,-1284.8105C1078.8693,-1270.4061 1071.4907,-1250.8527 1065.1688,-1234.0997"/>
<polygon fill="#000000" stroke="#000000" points="1068.3966,-1232.7398 1061.5914,-1224.6195 1061.8474,-1235.2112 1068.3966,-1232.7398"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (4.40s)">
<text text-anchor="middle" x="1090.8364" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.40s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="strconv.ParseUint (3.56s)">
<polygon fill="#f8f8f8" stroke="#000000" points="812.2036,-1123 690.021,-1123 690.021,-1070 812.2036,-1070 812.2036,-1123"/>
<text text-anchor="middle" x="751.1123" y="-1107" font-family="Times,serif" font-size="15.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="751.1123" y="-1092" font-family="Times,serif" font-size="15.00" fill="#000000">0.63s(2.19%)</text>
<text text-anchor="middle" x="751.1123" y="-1077" font-family="Times,serif" font-size="15.00" fill="#000000">of 3.56s(12.39%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N14 -->
<g id="edge11" class="edge">
<title>N13&#45;&gt;N14</title>
<g id="a_edge11"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (3.56s)">
<path fill="none" stroke="#000000" d="M995.3971,-1176.2061C992.2698,-1175.0851 989.1602,-1174.0083 986.1123,-1173 956.2483,-1163.1206 947.7454,-1164.1967 917.6641,-1155 876.4438,-1142.3979 866.7778,-1137.2911 826.1123,-1123 824.8664,-1122.5622 823.609,-1122.1201 822.3426,-1121.6746"/>
<polygon fill="#000000" stroke="#000000" points="823.0961,-1118.2294 812.5013,-1118.2098 820.7714,-1124.8321 823.0961,-1118.2294"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (3.56s)">
<text text-anchor="middle" x="934.8364" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.56s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N39 -->
<g id="edge47" class="edge">
<title>N13&#45;&gt;N39</title>
<g id="a_edge47"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.43s)">
<path fill="none" stroke="#000000" d="M1062.3867,-1174.3034C1067.6748,-1161.3349 1074.2032,-1145.3246 1079.9605,-1131.2055"/>
<polygon fill="#000000" stroke="#000000" points="1083.2635,-1132.3748 1083.7985,-1121.7935 1076.7816,-1129.7317 1083.2635,-1132.3748"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.43s)">
<text text-anchor="middle" x="1092.8364" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N6 -->
<g id="edge13" class="edge">
<title>N14&#45;&gt;N6</title>
<g id="a_edge13"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (2.93s)">
<path fill="none" stroke="#000000" d="M751.1123,-1069.9319C751.1123,-1035.1201 751.1123,-974.0498 751.1123,-936.0741"/>
<polygon fill="#000000" stroke="#000000" points="754.6124,-936.0164 751.1123,-926.0164 747.6124,-936.0164 754.6124,-936.0164"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (2.93s)">
<text text-anchor="middle" x="767.8364" y="-993.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.93s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (2.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="488.5542,-1324.5 289.6704,-1324.5 289.6704,-1286.5 488.5542,-1286.5 488.5542,-1324.5"/>
<text text-anchor="middle" x="389.1123" y="-1312.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="389.1123" y="-1302.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="389.1123" y="-1292.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 2.52s(8.77%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N18 -->
<g id="edge15" class="edge">
<title>N16&#45;&gt;N18</title>
<g id="a_edge15"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.52s)">
<path fill="none" stroke="#000000" d="M538.4567,-1389.3674C521.1192,-1378.272 499.1429,-1364.5381 479.1123,-1353 465.1724,-1344.9702 449.7629,-1336.6434 435.6928,-1329.2465"/>
<polygon fill="#000000" stroke="#000000" points="437.1532,-1326.0607 426.6691,-1324.5326 433.912,-1332.2651 437.1532,-1326.0607"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.52s)">
<text text-anchor="middle" x="518.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.52s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N6 -->
<g id="edge16" class="edge">
<title>N17&#45;&gt;N6</title>
<g id="a_edge16"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (2.35s)">
<path fill="none" stroke="#000000" d="M872.4668,-975.8503C850.5606,-962.6095 822.4855,-945.6401 798.8575,-931.3587"/>
<polygon fill="#000000" stroke="#000000" points="800.4105,-928.2077 790.0418,-926.0302 796.7895,-934.1984 800.4105,-928.2077"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (2.35s)">
<text text-anchor="middle" x="856.8364" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.35s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.typedmemmove (0.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1507.7515,-924.5 1374.4731,-924.5 1374.4731,-880.5 1507.7515,-880.5 1507.7515,-924.5"/>
<text text-anchor="middle" x="1441.1123" y="-910.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="1441.1123" y="-898.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.16s(0.56%)</text>
<text text-anchor="middle" x="1441.1123" y="-886.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.48s(1.67%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N43 -->
<g id="edge58" class="edge">
<title>N17&#45;&gt;N43</title>
<g id="a_edge58"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.31s)">
<path fill="none" stroke="#000000" d="M959.1616,-989.0156C1052.4702,-972.2656 1253.5419,-936.171 1364.2042,-916.3059"/>
<polygon fill="#000000" stroke="#000000" points="1365.0738,-919.7058 1374.298,-914.4939 1363.8369,-912.8159 1365.0738,-919.7058"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.31s)">
<text text-anchor="middle" x="1223.8364" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N1 -->
<g id="edge17" class="edge">
<title>N18&#45;&gt;N1</title>
<g id="a_edge17"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.30s)">
<path fill="none" stroke="#000000" d="M400.6288,-1324.6499C421.3951,-1358.9108 463.955,-1427.8074 474.6641,-1435 524.29,-1468.3305 672.9836,-1493.0533 783.5297,-1507.4571"/>
<polygon fill="#000000" stroke="#000000" points="783.402,-1510.9695 793.7673,-1508.7759 784.2964,-1504.0268 783.402,-1510.9695"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.30s)">
<text text-anchor="middle" x="491.8364" y="-1405.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.30s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N6 -->
<g id="edge90" class="edge">
<title>N18&#45;&gt;N6</title>
<g id="a_edge90"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.17s)">
<path fill="none" stroke="#000000" d="M453.8532,-1286.4579C515.8776,-1266.2295 600.1123,-1232.6544 600.1123,-1199.5 600.1123,-1199.5 600.1123,-1199.5 600.1123,-998 600.1123,-955.0694 644.2486,-930.6449 684.7974,-917.2645"/>
<polygon fill="#000000" stroke="#000000" points="685.9495,-920.5716 694.4559,-914.2556 683.8674,-913.8884 685.9495,-920.5716"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.17s)">
<text text-anchor="middle" x="616.8364" y="-1092.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N26 -->
<g id="edge94" class="edge">
<title>N20&#45;&gt;N26</title>
<g id="a_edge94"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.13s)">
<path fill="none" stroke="#000000" d="M1802.4594,-1275.9731C1760.6246,-1259.4265 1709.1186,-1239.0547 1669.7889,-1223.4989"/>
<polygon fill="#000000" stroke="#000000" points="1670.6518,-1220.0765 1660.0655,-1219.6531 1668.0772,-1226.5858 1670.6518,-1220.0765"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.13s)">
<text text-anchor="middle" x="1768.8364" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.aeshashbody (0.47s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1944.196,-1217.5 1810.0287,-1217.5 1810.0287,-1181.5 1944.196,-1181.5 1944.196,-1217.5"/>
<text text-anchor="middle" x="1877.1123" y="-1202.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="1877.1123" y="-1188.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.47s(1.64%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N44 -->
<g id="edge45" class="edge">
<title>N20&#45;&gt;N44</title>
<g id="a_edge45"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.47s)">
<path fill="none" stroke="#000000" d="M1877.1123,-1275.9731C1877.1123,-1260.8891 1877.1123,-1242.6262 1877.1123,-1227.7308"/>
<polygon fill="#000000" stroke="#000000" points="1880.6124,-1227.5734 1877.1123,-1217.5734 1873.6124,-1227.5735 1880.6124,-1227.5734"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.47s)">
<text text-anchor="middle" x="1893.8364" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.47s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N17 -->
<g id="edge51" class="edge">
<title>N21&#45;&gt;N17</title>
<g id="a_edge51"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.37s)">
<path fill="none" stroke="#000000" d="M747.4086,-1389.1909C753.0594,-1382.3379 759.1077,-1374.538 764.1123,-1367 794.4649,-1321.2826 802.0551,-1309.079 822.1123,-1258 836.3979,-1221.6195 825.0878,-1206.8288 844.6641,-1173 860.4755,-1145.677 881.3614,-1151.4159 895.1123,-1123 909.1575,-1093.976 911.6582,-1056.8483 911.2591,-1030.6207"/>
<polygon fill="#000000" stroke="#000000" points="914.7523,-1030.3401 910.9516,-1020.4504 907.7555,-1030.5517 914.7523,-1030.3401"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.37s)">
<text text-anchor="middle" x="861.8364" y="-1195.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="main.(*machine).executeSubtract (0.71s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1027.9356,-1326 864.289,-1326 864.289,-1285 1027.9356,-1285 1027.9356,-1326"/>
<text text-anchor="middle" x="946.1123" y="-1313.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="946.1123" y="-1302.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.24%)</text>
<text text-anchor="middle" x="946.1123" y="-1291.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.71s(2.47%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N33 -->
<g id="edge36" class="edge">
<title>N21&#45;&gt;N33</title>
<g id="a_edge36"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.71s)">
<path fill="none" stroke="#000000" d="M795.5438,-1389.4582C813.5905,-1383.057 832.8952,-1375.4361 850.1123,-1367 870.3945,-1357.062 891.6692,-1343.7645 909.0219,-1332.0769"/>
<polygon fill="#000000" stroke="#000000" points="911.4309,-1334.6698 917.7126,-1326.1381 907.4815,-1328.8903 911.4309,-1334.6698"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.71s)">
<text text-anchor="middle" x="891.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.71s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="main.(*machine).executeMultiply (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="658.1768,-1324.5 506.0478,-1324.5 506.0478,-1286.5 658.1768,-1286.5 658.1768,-1324.5"/>
<text text-anchor="middle" x="582.1123" y="-1312.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="582.1123" y="-1302.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="582.1123" y="-1292.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.23s(0.8%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N74 -->
<g id="edge75" class="edge">
<title>N21&#45;&gt;N74</title>
<g id="a_edge75"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.23s)">
<path fill="none" stroke="#000000" d="M700.0698,-1389.3542C676.3147,-1372.467 642.6352,-1348.5248 617.3417,-1330.544"/>
<polygon fill="#000000" stroke="#000000" points="619.2902,-1327.6349 609.1118,-1324.6935 615.2343,-1333.3402 619.2902,-1327.6349"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.23s)">
<text text-anchor="middle" x="681.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.getitab (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="769.7672,-1327.5 676.4574,-1327.5 676.4574,-1283.5 769.7672,-1283.5 769.7672,-1327.5"/>
<text text-anchor="middle" x="723.1123" y="-1313.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="723.1123" y="-1301.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.15s(0.52%)</text>
<text text-anchor="middle" x="723.1123" y="-1289.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.22s(0.77%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N79 -->
<g id="edge100" class="edge">
<title>N21&#45;&gt;N79</title>
<g id="a_edge100"><a xlink:title="main.(*machine).executeMathWord ... runtime.getitab (0.06s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M727.9269,-1389.3542C727.0784,-1374.5767 725.9198,-1354.3969 724.9517,-1337.5368"/>
<polygon fill="#000000" stroke="#000000" points="728.4457,-1337.3289 724.3781,-1327.546 721.4572,-1337.7302 728.4457,-1337.3289"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.(*machine).executeMathWord ... runtime.getitab (0.06s)">
<text text-anchor="middle" x="743.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N6 -->
<g id="edge24" class="edge">
<title>N22&#45;&gt;N6</title>
<g id="a_edge24"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.40s)">
<path fill="none" stroke="#000000" d="M1290.7268,-1387.6359C1287.8257,-1366.5168 1284.1123,-1333.9314 1284.1123,-1305.5 1284.1123,-1305.5 1284.1123,-1305.5 1284.1123,-998 1284.1123,-951.1508 960.9358,-919.3572 817.8818,-907.5787"/>
<polygon fill="#000000" stroke="#000000" points="818.1514,-904.0892 807.9001,-906.7653 817.5828,-911.066 818.1514,-904.0892"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.40s)">
<text text-anchor="middle" x="1300.8364" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.40s</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N5 -->
<g id="edge25" class="edge">
<title>N23&#45;&gt;N5</title>
<g id="a_edge25"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (1.20s)">
<path fill="none" stroke="#000000" d="M55.1123,-1386.3433C55.1123,-1365.163 55.1123,-1333.2578 55.1123,-1305.5 55.1123,-1305.5 55.1123,-1305.5 55.1123,-902.5 55.1123,-843.6476 447.7624,-809.1721 643.2229,-795.6562"/>
<polygon fill="#000000" stroke="#000000" points="643.4991,-799.1455 653.2364,-794.9702 643.0206,-792.1619 643.4991,-799.1455"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (1.20s)">
<text text-anchor="middle" x="71.8364" y="-1092.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.20s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N7 -->
<g id="edge27" class="edge">
<title>N24&#45;&gt;N7</title>
<g id="a_edge27"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (1.11s)">
<path fill="none" stroke="#000000" d="M1694.7828,-662.6046C1800.2686,-644.0172 2008.5564,-607.3153 2118.0425,-588.023"/>
<polygon fill="#000000" stroke="#000000" points="2118.7606,-591.4505 2128.0015,-586.2682 2117.5458,-584.5567 2118.7606,-591.4505"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (1.11s)">
<text text-anchor="middle" x="1958.5801" y="-619.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.11s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N7 -->
<g id="edge39" class="edge">
<title>N27&#45;&gt;N7</title>
<g id="a_edge39"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.65s)">
<path fill="none" stroke="#000000" d="M2459.411,-1387.9474C2455.9634,-1386.8354 2452.5093,-1385.8356 2449.1123,-1385 2331.7731,-1356.1376 2189.1123,-1426.3368 2189.1123,-1305.5 2189.1123,-1305.5 2189.1123,-1305.5 2189.1123,-674 2189.1123,-652.6008 2189.1123,-628.5864 2189.1123,-609.6268"/>
<polygon fill="#000000" stroke="#000000" points="2192.6124,-609.3847 2189.1123,-599.3847 2185.6124,-609.3847 2192.6124,-609.3847"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.65s)">
<text text-anchor="middle" x="2205.8364" y="-993.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.65s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.gcDrain (0.60s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3012.8421,-1428 2937.3825,-1428 2937.3825,-1392 3012.8421,-1392 3012.8421,-1428"/>
<text text-anchor="middle" x="2975.1123" y="-1416.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.gcDrain</text>
<text text-anchor="middle" x="2975.1123" y="-1407.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.035%)</text>
<text text-anchor="middle" x="2975.1123" y="-1398.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.60s(2.09%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N38 -->
<g id="edge44" class="edge">
<title>N28&#45;&gt;N38</title>
<g id="a_edge44"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcDrain (0.49s)">
<path fill="none" stroke="#000000" d="M2882.4417,-1503.5055C2900.8684,-1484.9127 2929.4124,-1456.1116 2949.9523,-1435.3866"/>
<polygon fill="#000000" stroke="#000000" points="2952.5706,-1437.7169 2957.124,-1428.1504 2947.5987,-1432.7894 2952.5706,-1437.7169"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcDrain (0.49s)">
<text text-anchor="middle" x="2945.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.49s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.gcMarkTermination (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2919.3587,-1428 2812.8659,-1428 2812.8659,-1392 2919.3587,-1392 2919.3587,-1428"/>
<text text-anchor="middle" x="2866.1123" y="-1411.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkTermination</text>
<text text-anchor="middle" x="2866.1123" y="-1403.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.23s(0.8%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N77 -->
<g id="edge84" class="edge">
<title>N28&#45;&gt;N77</title>
<g id="a_edge84"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcMarkTermination (0.19s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2864.4426,-1503.5055C2864.76,-1485.7282 2865.2441,-1458.6184 2865.6095,-1438.1587"/>
<polygon fill="#000000" stroke="#000000" points="2869.109,-1438.2113 2865.7882,-1428.1504 2862.1101,-1438.0863 2869.109,-1438.2113"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcMarkTermination (0.19s)">
<text text-anchor="middle" x="2881.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.(*mcache).refill (0.83s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2793.0777,-391 2689.1469,-391 2689.1469,-355 2793.0777,-355 2793.0777,-391"/>
<text text-anchor="middle" x="2741.1123" y="-379.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="2741.1123" y="-370.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.035%)</text>
<text text-anchor="middle" x="2741.1123" y="-361.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.83s(2.89%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N30 -->
<g id="edge32" class="edge">
<title>N29&#45;&gt;N30</title>
<g id="a_edge32"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.83s)">
<path fill="none" stroke="#000000" d="M2720.5818,-456.7644C2724.3857,-441.2445 2729.9103,-418.7044 2734.2706,-400.9143"/>
<polygon fill="#000000" stroke="#000000" points="2737.7003,-401.6234 2736.6815,-391.0777 2730.9015,-399.957 2737.7003,-401.6234"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.83s)">
<text text-anchor="middle" x="2745.8364" y="-418.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.83s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.(*mcentral).cacheSpan (0.82s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2812.1112,-298 2670.1134,-298 2670.1134,-260 2812.1112,-260 2812.1112,-298"/>
<text text-anchor="middle" x="2741.1123" y="-286" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="2741.1123" y="-276" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="2741.1123" y="-266" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.82s(2.85%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N31 -->
<g id="edge34" class="edge">
<title>N30&#45;&gt;N31</title>
<g id="a_edge34"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.82s)">
<path fill="none" stroke="#000000" d="M2741.1123,-354.8759C2741.1123,-341.6117 2741.1123,-323.3378 2741.1123,-308.0473"/>
<polygon fill="#000000" stroke="#000000" points="2744.6124,-308.0364 2741.1123,-298.0365 2737.6124,-308.0365 2744.6124,-308.0364"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.82s)">
<text text-anchor="middle" x="2757.8364" y="-318.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.82s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.(*mcentral).grow (0.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2800.9086,-210 2681.316,-210 2681.316,-172 2800.9086,-172 2800.9086,-210"/>
<text text-anchor="middle" x="2741.1123" y="-198" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="2741.1123" y="-188" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="2741.1123" y="-178" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.70s(2.44%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N34 -->
<g id="edge37" class="edge">
<title>N31&#45;&gt;N34</title>
<g id="a_edge37"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.70s)">
<path fill="none" stroke="#000000" d="M2741.1123,-259.9053C2741.1123,-248.3736 2741.1123,-233.4389 2741.1123,-220.4228"/>
<polygon fill="#000000" stroke="#000000" points="2744.6124,-220.0574 2741.1123,-210.0574 2737.6124,-220.0575 2744.6124,-220.0574"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.70s)">
<text text-anchor="middle" x="2757.8364" y="-230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.70s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.lock (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2899.3247,-210 2818.8999,-210 2818.8999,-172 2899.3247,-172 2899.3247,-210"/>
<text text-anchor="middle" x="2859.1123" y="-198" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="2859.1123" y="-188" font-family="Times,serif" font-size="10.00" fill="#000000">0.05s(0.17%)</text>
<text text-anchor="middle" x="2859.1123" y="-178" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.33s(1.15%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N54 -->
<g id="edge102" class="edge">
<title>N31&#45;&gt;N54</title>
<g id="a_edge102"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.05s)">
<path fill="none" stroke="#000000" d="M2764.0085,-259.8992C2775.9486,-250.1253 2790.8991,-238.1753 2804.6641,-228 2810.0979,-223.9832 2815.9261,-219.8482 2821.6767,-215.8639"/>
<polygon fill="#000000" stroke="#000000" points="2823.7213,-218.7058 2829.9914,-210.1655 2819.764,-212.9316 2823.7213,-218.7058"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.05s)">
<text text-anchor="middle" x="2820.8364" y="-230.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N7 -->
<g id="edge54" class="edge">
<title>N32&#45;&gt;N7</title>
<g id="a_edge54"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.34s)">
<path fill="none" stroke="#000000" d="M2578.3849,-1387.8722C2575.257,-1386.878 2572.1534,-1385.9149 2569.1123,-1385 2432.4941,-1343.899 2258.1123,-1448.1668 2258.1123,-1305.5 2258.1123,-1305.5 2258.1123,-1305.5 2258.1123,-674 2258.1123,-648.0578 2241.8582,-624.0945 2225.128,-606.3003"/>
<polygon fill="#000000" stroke="#000000" points="2227.4941,-603.7153 2217.9747,-599.0641 2222.5159,-608.6364 2227.4941,-603.7153"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.34s)">
<text text-anchor="middle" x="2274.8364" y="-993.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.memmove (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2353.254,-391 2230.9706,-391 2230.9706,-355 2353.254,-355 2353.254,-391"/>
<text text-anchor="middle" x="2292.1123" y="-375.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="2292.1123" y="-361.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.38s(1.32%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N49 -->
<g id="edge103" class="edge">
<title>N32&#45;&gt;N49</title>
<g id="a_edge103"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.05s)">
<path fill="none" stroke="#000000" d="M2658.2068,-1384.6013C2694.3565,-1330.3254 2776.372,-1203.9998 2790.1123,-1155 2874.9549,-852.4405 3003.7223,-682.9945 2795.1123,-448 2788.006,-439.9949 2615.739,-417.2856 2605.1123,-416 2497.6004,-402.993 2468.0632,-420.4145 2362.1123,-398 2357.1116,-396.9421 2351.9825,-395.613 2346.8846,-394.1221"/>
<polygon fill="#000000" stroke="#000000" points="2347.75,-390.7257 2337.1613,-391.0841 2345.6624,-397.4072 2347.75,-390.7257"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.05s)">
<text text-anchor="middle" x="2894.8364" y="-898.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="main.(*Integer).Negate (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="799.8988,-1218.5 690.3258,-1218.5 690.3258,-1180.5 799.8988,-1180.5 799.8988,-1218.5"/>
<text text-anchor="middle" x="745.1123" y="-1206.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="745.1123" y="-1196.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.05s(0.17%)</text>
<text text-anchor="middle" x="745.1123" y="-1186.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.27s(0.94%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N64 -->
<g id="edge66" class="edge">
<title>N33&#45;&gt;N64</title>
<g id="a_edge66"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.27s)">
<path fill="none" stroke="#000000" d="M906.8803,-1284.8105C873.425,-1267.1674 825.3221,-1241.7997 790.2702,-1223.3146"/>
<polygon fill="#000000" stroke="#000000" points="791.6838,-1220.1032 781.2057,-1218.5343 788.4184,-1226.295 791.6838,-1220.1032"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.27s)">
<text text-anchor="middle" x="868.8364" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="main.(*Integer).Add (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="977.0855,-1217.5 887.1392,-1217.5 887.1392,-1181.5 977.0855,-1181.5 977.0855,-1217.5"/>
<text text-anchor="middle" x="932.1123" y="-1205.8" font-family="Times,serif" font-size="9.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="932.1123" y="-1196.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.035%)</text>
<text text-anchor="middle" x="932.1123" y="-1187.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.25s(0.87%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N70 -->
<g id="edge71" class="edge">
<title>N33&#45;&gt;N70</title>
<g id="a_edge71"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.25s)">
<path fill="none" stroke="#000000" d="M943.3797,-1284.8105C941.2245,-1268.4922 938.1965,-1245.5658 935.8222,-1227.5889"/>
<polygon fill="#000000" stroke="#000000" points="939.2906,-1227.1193 934.5113,-1217.6637 932.3509,-1228.0359 939.2906,-1227.1193"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.25s)">
<text text-anchor="middle" x="956.8364" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.newdefer (0.50s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2486.7335,-398 2371.4911,-398 2371.4911,-348 2486.7335,-348 2486.7335,-398"/>
<text text-anchor="middle" x="2429.1123" y="-382.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2429.1123" y="-368.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.48s(1.67%)</text>
<text text-anchor="middle" x="2429.1123" y="-354.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.50s(1.74%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N42 -->
<g id="edge43" class="edge">
<title>N35&#45;&gt;N42</title>
<g id="a_edge43"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.50s)">
<path fill="none" stroke="#000000" d="M2429.1123,-454.3588C2429.1123,-441.2101 2429.1123,-423.8284 2429.1123,-408.5077"/>
<polygon fill="#000000" stroke="#000000" points="2432.6124,-408.3076 2429.1123,-398.3077 2425.6124,-408.3077 2432.6124,-408.3076"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.50s)">
<text text-anchor="middle" x="2445.8364" y="-418.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N49 -->
<g id="edge105" class="edge">
<title>N35&#45;&gt;N49</title>
<g id="a_edge105"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M2401.3883,-454.3588C2379.2443,-437.872 2348.1616,-414.7301 2324.8051,-397.3406"/>
<polygon fill="#000000" stroke="#000000" points="2326.6917,-394.3817 2316.5805,-391.2172 2322.5114,-399.9964 2326.6917,-394.3817"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="2380.8364" y="-418.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.schedule (0.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2768.8428,-1114.5 2691.3819,-1114.5 2691.3819,-1078.5 2768.8428,-1078.5 2768.8428,-1114.5"/>
<text text-anchor="middle" x="2730.1123" y="-1102.8" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="2730.1123" y="-1093.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.035%)</text>
<text text-anchor="middle" x="2730.1123" y="-1084.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.63s(2.19%)</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.findrunnable (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2771.9332,-1016 2688.2914,-1016 2688.2914,-980 2771.9332,-980 2771.9332,-1016"/>
<text text-anchor="middle" x="2730.1123" y="-999.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="2730.1123" y="-991.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.23s(0.8%)</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N76 -->
<g id="edge77" class="edge">
<title>N36&#45;&gt;N76</title>
<g id="a_edge77"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.23s)">
<path fill="none" stroke="#000000" d="M2730.1123,-1078.4336C2730.1123,-1063.9456 2730.1123,-1043.3416 2730.1123,-1026.6145"/>
<polygon fill="#000000" stroke="#000000" points="2733.6124,-1026.2854 2730.1123,-1016.2855 2726.6124,-1026.2855 2733.6124,-1026.2854"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.23s)">
<text text-anchor="middle" x="2746.8364" y="-1040.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.gcFlushBgCredit (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3024.0508,-1324.5 2906.1738,-1324.5 2906.1738,-1286.5 3024.0508,-1286.5 3024.0508,-1324.5"/>
<text text-anchor="middle" x="2965.1123" y="-1312.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="2965.1123" y="-1302.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.05s(0.17%)</text>
<text text-anchor="middle" x="2965.1123" y="-1292.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.28s(0.97%)</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N63 -->
<g id="edge65" class="edge">
<title>N38&#45;&gt;N63</title>
<g id="a_edge65"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.gcFlushBgCredit (0.28s)">
<path fill="none" stroke="#000000" d="M2973.3704,-1391.7975C2971.8642,-1376.0573 2969.6592,-1353.0155 2967.9066,-1334.6999"/>
<polygon fill="#000000" stroke="#000000" points="2971.3723,-1334.1741 2966.9356,-1324.553 2964.4041,-1334.8409 2971.3723,-1334.1741"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.gcFlushBgCredit (0.28s)">
<text text-anchor="middle" x="2986.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.stkbucket (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="987.6207,-599 878.6039,-599 878.6039,-552 987.6207,-552 987.6207,-599"/>
<text text-anchor="middle" x="933.1123" y="-584.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="933.1123" y="-571.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.31s(1.08%)</text>
<text text-anchor="middle" x="933.1123" y="-558.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.35s(1.22%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N52 -->
<g id="edge52" class="edge">
<title>N40&#45;&gt;N52</title>
<g id="a_edge52"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.35s)">
<path fill="none" stroke="#000000" d="M933.1123,-655.9336C933.1123,-642.9374 933.1123,-625.0198 933.1123,-609.3938"/>
<polygon fill="#000000" stroke="#000000" points="936.6124,-609.0306 933.1123,-599.0306 929.6124,-609.0306 936.6124,-609.0306"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.35s)">
<text text-anchor="middle" x="949.8364" y="-619.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N49 -->
<g id="edge79" class="edge">
<title>N43&#45;&gt;N49</title>
<g id="a_edge79"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.23s)">
<path fill="none" stroke="#000000" d="M1476.5864,-880.349C1503.9332,-860.241 1537.1123,-827.8412 1537.1123,-789 1537.1123,-789 1537.1123,-789 1537.1123,-475 1537.1123,-406.4084 2032.8189,-382.0049 2220.9029,-375.2143"/>
<polygon fill="#000000" stroke="#000000" points="2221.0974,-378.7097 2230.967,-374.8572 2220.8492,-371.7141 2221.0974,-378.7097"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.23s)">
<text text-anchor="middle" x="1553.8364" y="-619.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.mapassign1 (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1455.5147,-1326 1350.7099,-1326 1350.7099,-1285 1455.5147,-1285 1455.5147,-1326"/>
<text text-anchor="middle" x="1403.1123" y="-1313.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="1403.1123" y="-1302.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.13s(0.45%)</text>
<text text-anchor="middle" x="1403.1123" y="-1291.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.38s(1.32%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N48 -->
<g id="edge50" class="edge">
<title>N45&#45;&gt;N48</title>
<g id="a_edge50"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.38s)">
<path fill="none" stroke="#000000" d="M1462.1966,-1390.9615C1452.9583,-1384.1493 1443.2333,-1375.9264 1435.6641,-1367 1427.7681,-1357.6883 1421.0332,-1346.144 1415.7734,-1335.5811"/>
<polygon fill="#000000" stroke="#000000" points="1418.8014,-1333.7966 1411.3665,-1326.2486 1412.4716,-1336.7856 1418.8014,-1333.7966"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.38s)">
<text text-anchor="middle" x="1452.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.assertI2T (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1522.004,-1018.5 1428.2206,-1018.5 1428.2206,-977.5 1522.004,-977.5 1522.004,-1018.5"/>
<text text-anchor="middle" x="1475.1123" y="-1005.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="1475.1123" y="-994.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.09s(0.31%)</text>
<text text-anchor="middle" x="1475.1123" y="-983.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.23s(0.8%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N75 -->
<g id="edge104" class="edge">
<title>N45&#45;&gt;N75</title>
<g id="a_edge104"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M1489.4607,-1390.7825C1486.8059,-1369.8513 1483.1123,-1335.3636 1483.1123,-1305.5 1483.1123,-1305.5 1483.1123,-1305.5 1483.1123,-1096.5 1483.1123,-1073.7723 1480.9702,-1048.1914 1478.9029,-1028.7956"/>
<polygon fill="#000000" stroke="#000000" points="1482.3653,-1028.2633 1477.7762,-1018.7139 1475.4086,-1029.0408 1482.3653,-1028.2633"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="1499.8364" y="-1195.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N20 -->
<g id="edge85" class="edge">
<title>N47&#45;&gt;N20</title>
<g id="a_edge85"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.19s)">
<path fill="none" stroke="#000000" d="M1982.2309,-1389.3542C1965.1916,-1375.7617 1942.4225,-1357.5986 1922.4325,-1341.6524"/>
<polygon fill="#000000" stroke="#000000" points="1924.3505,-1338.7052 1914.3505,-1335.2052 1919.9853,-1344.1774 1924.3505,-1338.7052"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.19s)">
<text text-anchor="middle" x="1966.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.newarray (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1418.4133,-1218.5 1331.8113,-1218.5 1331.8113,-1180.5 1418.4133,-1180.5 1418.4133,-1218.5"/>
<text text-anchor="middle" x="1375.1123" y="-1206.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="1375.1123" y="-1196.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="1375.1123" y="-1186.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.24s(0.84%)</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N73 -->
<g id="edge74" class="edge">
<title>N48&#45;&gt;N73</title>
<g id="a_edge74"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.24s)">
<path fill="none" stroke="#000000" d="M1397.6472,-1284.8105C1393.4165,-1268.7944 1387.5043,-1246.4126 1382.7971,-1228.5926"/>
<polygon fill="#000000" stroke="#000000" points="1386.1246,-1227.4847 1380.1867,-1218.7102 1379.3567,-1229.2725 1386.1246,-1227.4847"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.24s)">
<text text-anchor="middle" x="1406.8364" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.usleep (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2905.5079,-36 2812.7167,-36 2812.7167,0 2905.5079,0 2905.5079,-36"/>
<text text-anchor="middle" x="2859.1123" y="-20.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="2859.1123" y="-7.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.36s(1.25%)</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.osyield (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2895.8822,-122 2822.3424,-122 2822.3424,-86 2895.8822,-86 2895.8822,-122"/>
<text text-anchor="middle" x="2859.1123" y="-105.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="2859.1123" y="-97.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.35s(1.22%)</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N50 -->
<g id="edge53" class="edge">
<title>N51&#45;&gt;N50</title>
<g id="a_edge53"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.35s)">
<path fill="none" stroke="#000000" d="M2859.1123,-85.7616C2859.1123,-74.3597 2859.1123,-59.4342 2859.1123,-46.494"/>
<polygon fill="#000000" stroke="#000000" points="2862.6124,-46.2121 2859.1123,-36.2121 2855.6124,-46.2121 2862.6124,-46.2121"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.35s)">
<text text-anchor="middle" x="2875.8364" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.freedefer (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2621.1942,-396.5 2515.0304,-396.5 2515.0304,-349.5 2621.1942,-349.5 2621.1942,-396.5"/>
<text text-anchor="middle" x="2568.1123" y="-382.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="2568.1123" y="-369.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.30s(1.04%)</text>
<text text-anchor="middle" x="2568.1123" y="-356.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.31s(1.08%)</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N58 -->
<g id="edge59" class="edge">
<title>N53&#45;&gt;N58</title>
<g id="a_edge59"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.31s)">
<path fill="none" stroke="#000000" d="M2568.1123,-455.8146C2568.1123,-442.0862 2568.1123,-423.2369 2568.1123,-406.9891"/>
<polygon fill="#000000" stroke="#000000" points="2571.6124,-406.7676 2568.1123,-396.7677 2564.6124,-406.7677 2571.6124,-406.7676"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.31s)">
<text text-anchor="middle" x="2584.8364" y="-418.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N51 -->
<g id="edge87" class="edge">
<title>N54&#45;&gt;N51</title>
<g id="a_edge87"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.19s)">
<path fill="none" stroke="#000000" d="M2859.1123,-171.6919C2859.1123,-160.1154 2859.1123,-145.1873 2859.1123,-132.2967"/>
<polygon fill="#000000" stroke="#000000" points="2862.6124,-132.066 2859.1123,-122.0661 2855.6124,-132.0661 2862.6124,-132.066"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.19s)">
<text text-anchor="middle" x="2875.8364" y="-142.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.mcall (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2736.8822,-1217.5 2663.3424,-1217.5 2663.3424,-1181.5 2736.8822,-1181.5 2736.8822,-1217.5"/>
<text text-anchor="middle" x="2700.1123" y="-1201.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="2700.1123" y="-1193.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.33s(1.15%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N36 -->
<g id="edge60" class="edge">
<title>N55&#45;&gt;N36</title>
<g id="a_edge60"><a xlink:title="runtime.mcall ... runtime.schedule (0.31s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2697.6761,-1181.4343C2696.7172,-1169.6625 2696.6512,-1154.1112 2700.6641,-1141 2702.5501,-1134.8378 2705.5855,-1128.7388 2709.0064,-1123.1236"/>
<polygon fill="#000000" stroke="#000000" points="2711.9493,-1125.019 2714.5896,-1114.7584 2706.127,-1121.133 2711.9493,-1125.019"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.mcall ... runtime.schedule (0.31s)">
<text text-anchor="middle" x="2716.8364" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.goschedImpl (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2877.3196,-1217.5 2792.905,-1217.5 2792.905,-1181.5 2877.3196,-1181.5 2877.3196,-1217.5"/>
<text text-anchor="middle" x="2835.1123" y="-1201.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="2835.1123" y="-1193.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.32s(1.11%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N36 -->
<g id="edge56" class="edge">
<title>N56&#45;&gt;N36</title>
<g id="a_edge56"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.32s)">
<path fill="none" stroke="#000000" d="M2816.3404,-1181.0857C2799.6174,-1164.6812 2774.9766,-1140.5098 2756.3136,-1122.2022"/>
<polygon fill="#000000" stroke="#000000" points="2758.3114,-1119.2591 2748.7217,-1114.7549 2753.4095,-1124.2563 2758.3114,-1119.2591"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.32s)">
<text text-anchor="middle" x="2804.8364" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.gopreempt_m (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2878.9293,-1323.5 2791.2953,-1323.5 2791.2953,-1287.5 2878.9293,-1287.5 2878.9293,-1323.5"/>
<text text-anchor="middle" x="2835.1123" y="-1307.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="2835.1123" y="-1299.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.30s(1.04%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N56 -->
<g id="edge61" class="edge">
<title>N59&#45;&gt;N56</title>
<g id="a_edge61"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.30s)">
<path fill="none" stroke="#000000" d="M2835.1123,-1287.0362C2835.1123,-1270.6966 2835.1123,-1246.6 2835.1123,-1227.8232"/>
<polygon fill="#000000" stroke="#000000" points="2838.6124,-1227.7522 2835.1123,-1217.7522 2831.6124,-1227.7522 2838.6124,-1227.7522"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.30s)">
<text text-anchor="middle" x="2851.8364" y="-1246.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.morestack (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2795.8705,-1540 2720.3541,-1540 2720.3541,-1504 2795.8705,-1504 2795.8705,-1540"/>
<text text-anchor="middle" x="2758.1123" y="-1523.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="2758.1123" y="-1515.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.30s(1.04%)</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.newstack (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2794.8822,-1428 2721.3424,-1428 2721.3424,-1392 2794.8822,-1392 2794.8822,-1428"/>
<text text-anchor="middle" x="2758.1123" y="-1411.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="2758.1123" y="-1403.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.30s(1.04%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N61 -->
<g id="edge62" class="edge">
<title>N60&#45;&gt;N61</title>
<g id="a_edge62"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.30s)">
<path fill="none" stroke="#000000" d="M2758.1123,-1503.5055C2758.1123,-1485.7282 2758.1123,-1458.6184 2758.1123,-1438.1587"/>
<polygon fill="#000000" stroke="#000000" points="2761.6124,-1438.1503 2758.1123,-1428.1504 2754.6124,-1438.1504 2761.6124,-1438.1503"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.30s)">
<text text-anchor="middle" x="2774.8364" y="-1455.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N59 -->
<g id="edge63" class="edge">
<title>N61&#45;&gt;N59</title>
<g id="a_edge63"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.30s)">
<path fill="none" stroke="#000000" d="M2771.5247,-1391.7975C2783.7058,-1375.266 2801.8214,-1350.6805 2815.6043,-1331.9751"/>
<polygon fill="#000000" stroke="#000000" points="2818.4809,-1333.9713 2821.5953,-1323.8445 2812.8455,-1329.8189 2818.4809,-1333.9713"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.30s)">
<text text-anchor="middle" x="2814.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N54 -->
<g id="edge91" class="edge">
<title>N63&#45;&gt;N54</title>
<g id="a_edge91"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.17s)">
<path fill="none" stroke="#000000" d="M2954.6112,-1286.2034C2944.3017,-1265.4252 2930.1123,-1231.0894 2930.1123,-1199.5 2930.1123,-1199.5 2930.1123,-1199.5 2930.1123,-279 2930.1123,-254.3164 2912.983,-232.6503 2895.5515,-216.9925"/>
<polygon fill="#000000" stroke="#000000" points="2897.4717,-214.0317 2887.5816,-210.2319 2892.9435,-219.3698 2897.4717,-214.0317"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.17s)">
<text text-anchor="middle" x="2946.8364" y="-719.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N17 -->
<g id="edge80" class="edge">
<title>N64&#45;&gt;N17</title>
<g id="a_edge80"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.22s)">
<path fill="none" stroke="#000000" d="M766.0784,-1180.2467C781.9095,-1165.2807 803.7913,-1143.6579 821.1123,-1123 846.7382,-1092.4374 872.6032,-1054.681 889.5957,-1028.7092"/>
<polygon fill="#000000" stroke="#000000" points="892.7109,-1030.3384 895.2212,-1020.0452 886.8399,-1026.5263 892.7109,-1030.3384"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.22s)">
<text text-anchor="middle" x="877.8364" y="-1092.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.(*mheap).alloc_m (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1514.2437,-392 1391.9809,-392 1391.9809,-354 1514.2437,-354 1514.2437,-392"/>
<text text-anchor="middle" x="1453.1123" y="-380" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="1453.1123" y="-370" font-family="Times,serif" font-size="10.00" fill="#000000">0.05s(0.17%)</text>
<text text-anchor="middle" x="1453.1123" y="-360" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.27s(0.94%)</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N66 -->
<g id="edge67" class="edge">
<title>N65&#45;&gt;N66</title>
<g id="a_edge67"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.27s)">
<path fill="none" stroke="#000000" d="M1453.1123,-456.7644C1453.1123,-441.6742 1453.1123,-419.9473 1453.1123,-402.4029"/>
<polygon fill="#000000" stroke="#000000" points="1456.6124,-402.1162 1453.1123,-392.1162 1449.6124,-402.1162 1456.6124,-402.1162"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.27s)">
<text text-anchor="middle" x="1469.8364" y="-418.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime._System (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2359.8822,-692 2286.3424,-692 2286.3424,-656 2359.8822,-656 2359.8822,-692"/>
<text text-anchor="middle" x="2323.1123" y="-675.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="2323.1123" y="-667.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.27s(0.94%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N7 -->
<g id="edge68" class="edge">
<title>N67&#45;&gt;N7</title>
<g id="a_edge68"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.27s)">
<path fill="none" stroke="#000000" d="M2309.8766,-655.9227C2300.3573,-643.8175 2286.675,-628.1229 2272.1123,-617 2265.9908,-612.3244 2259.2607,-607.9477 2252.3628,-603.9214"/>
<polygon fill="#000000" stroke="#000000" points="2254.0066,-600.8306 2243.5689,-599.0125 2250.5947,-606.9428 2254.0066,-600.8306"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.27s)">
<text text-anchor="middle" x="2303.8364" y="-619.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.stopm (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2724.8822,-920.5 2651.3424,-920.5 2651.3424,-884.5 2724.8822,-884.5 2724.8822,-920.5"/>
<text text-anchor="middle" x="2688.1123" y="-904.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="2688.1123" y="-896.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.27s(0.94%)</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.notesleep (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2723.8822,-807 2650.3424,-807 2650.3424,-771 2723.8822,-771 2723.8822,-807"/>
<text text-anchor="middle" x="2687.1123" y="-790.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notesleep</text>
<text text-anchor="middle" x="2687.1123" y="-782.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.22s(0.77%)</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N80 -->
<g id="edge82" class="edge">
<title>N68&#45;&gt;N80</title>
<g id="a_edge82"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.22s)">
<path fill="none" stroke="#000000" d="M2687.9516,-884.2643C2687.7927,-866.2279 2687.5472,-838.3641 2687.3627,-817.4221"/>
<polygon fill="#000000" stroke="#000000" points="2690.8606,-817.1592 2687.2726,-807.1905 2683.8609,-817.221 2690.8606,-817.1592"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.22s)">
<text text-anchor="middle" x="2703.8364" y="-849.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="main.Integer.Add (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1023.0977,-1115.5 937.127,-1115.5 937.127,-1077.5 1023.0977,-1077.5 1023.0977,-1115.5"/>
<text text-anchor="middle" x="980.1123" y="-1103.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="980.1123" y="-1093.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="980.1123" y="-1083.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.24s(0.84%)</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N72 -->
<g id="edge72" class="edge">
<title>N70&#45;&gt;N72</title>
<g id="a_edge72"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.24s)">
<path fill="none" stroke="#000000" d="M941.8155,-1181.463C946.0382,-1173.4295 950.9596,-1163.8106 955.1123,-1155 959.6557,-1145.3606 964.3255,-1134.6774 968.3811,-1125.1065"/>
<polygon fill="#000000" stroke="#000000" points="971.7172,-1126.2013 972.3541,-1115.6256 965.2611,-1123.4958 971.7172,-1126.2013"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.24s)">
<text text-anchor="middle" x="977.8364" y="-1143.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N20 -->
<g id="edge96" class="edge">
<title>N71&#45;&gt;N20</title>
<g id="a_edge96"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.10s)">
<path fill="none" stroke="#000000" d="M2260.5721,-1389.4533C2252.6701,-1387.8123 2244.7559,-1386.2925 2237.1123,-1385 2160.695,-1372.0781 2139.4485,-1383.2264 2063.6641,-1367 2030.422,-1359.8825 1994.7813,-1348.9826 1963.6506,-1338.3253"/>
<polygon fill="#000000" stroke="#000000" points="1964.7366,-1334.9975 1954.1418,-1335.0301 1962.4445,-1341.6116 1964.7366,-1334.9975"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.10s)">
<text text-anchor="middle" x="2079.8364" y="-1355.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N75 -->
<g id="edge98" class="edge">
<title>N71&#45;&gt;N75</title>
<g id="a_edge98"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.06s)">
<path fill="none" stroke="#000000" d="M2258.9083,-1389.4226C2219.0524,-1379.5117 2179.206,-1369.2792 2175.1123,-1367 2140.6458,-1347.81 2111.1123,-1344.9487 2111.1123,-1305.5 2111.1123,-1305.5 2111.1123,-1305.5 2111.1123,-1096.5 2111.1123,-1038.2361 1688.8984,-1009.5261 1532.4893,-1000.8894"/>
<polygon fill="#000000" stroke="#000000" points="1532.3127,-997.3747 1522.1372,-1000.3258 1531.9321,-1004.3644 1532.3127,-997.3747"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.06s)">
<text text-anchor="middle" x="2127.8364" y="-1195.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N17 -->
<g id="edge88" class="edge">
<title>N72&#45;&gt;N17</title>
<g id="a_edge88"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.18s)">
<path fill="none" stroke="#000000" d="M966.085,-1077.0396C956.1282,-1063.2263 942.5615,-1044.4049 931.1647,-1028.5939"/>
<polygon fill="#000000" stroke="#000000" points="933.7798,-1026.2362 925.0931,-1020.1705 928.1012,-1030.3294 933.7798,-1026.2362"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.18s)">
<text text-anchor="middle" x="963.8364" y="-1040.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N75 -->
<g id="edge106" class="edge">
<title>N72&#45;&gt;N75</title>
<g id="a_edge106"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1013.5593,-1077.4584C1019.593,-1074.6054 1025.9327,-1071.9661 1032.1123,-1070 1178.9169,-1023.2929 1223.5637,-1047.6793 1375.1123,-1020 1389.1135,-1017.4428 1404.1386,-1014.3331 1418.1774,-1011.2668"/>
<polygon fill="#000000" stroke="#000000" points="1419.189,-1014.6277 1428.1969,-1009.0502 1417.6769,-1007.793 1419.189,-1014.6277"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="1212.8364" y="-1040.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N5 -->
<g id="edge83" class="edge">
<title>N73&#45;&gt;N5</title>
<g id="a_edge83"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.21s)">
<path fill="none" stroke="#000000" d="M1363.81,-1180.4873C1352.929,-1160.3514 1338.1123,-1127.2811 1338.1123,-1096.5 1338.1123,-1096.5 1338.1123,-1096.5 1338.1123,-902.5 1338.1123,-854.2547 1028.501,-816.221 858.9921,-799.0133"/>
<polygon fill="#000000" stroke="#000000" points="859.3329,-795.53 849.0324,-798.0098 858.6312,-802.4947 859.3329,-795.53"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.21s)">
<text text-anchor="middle" x="1354.8364" y="-993.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N43 -->
<g id="edge92" class="edge">
<title>N75&#45;&gt;N43</title>
<g id="a_edge92"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.14s)">
<path fill="none" stroke="#000000" d="M1467.7348,-977.2779C1463.2281,-964.6194 1457.3762,-948.1823 1452.3069,-933.9436"/>
<polygon fill="#000000" stroke="#000000" points="1455.5999,-932.7576 1448.9486,-924.5108 1449.0054,-935.1055 1455.5999,-932.7576"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.14s)">
<text text-anchor="middle" x="1477.8364" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N54 -->
<g id="edge107" class="edge">
<title>N76&#45;&gt;N54</title>
<g id="a_edge107"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.lock (0.03s)">
<path fill="none" stroke="#000000" d="M2737.2636,-979.65C2744.0153,-960.6506 2753.1123,-929.9568 2753.1123,-902.5 2753.1123,-902.5 2753.1123,-902.5 2753.1123,-624 2753.1123,-524.4187 2852.1123,-522.5813 2852.1123,-423 2852.1123,-423 2852.1123,-423 2852.1123,-279 2852.1123,-259.3276 2853.8721,-237.2591 2855.627,-220.1431"/>
<polygon fill="#000000" stroke="#000000" points="2859.1077,-220.5101 2856.7033,-210.1917 2852.1483,-219.7574 2859.1077,-220.5101"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.lock (0.03s)">
<text text-anchor="middle" x="2791.8364" y="-571.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N68 -->
<g id="edge86" class="edge">
<title>N76&#45;&gt;N68</title>
<g id="a_edge86"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.19s)">
<path fill="none" stroke="#000000" d="M2717.6998,-979.7932C2713.5067,-973.1302 2709.0381,-965.4065 2705.6641,-958 2701.6766,-949.2468 2698.2279,-939.3306 2695.4687,-930.326"/>
<polygon fill="#000000" stroke="#000000" points="2698.8098,-929.2809 2692.6543,-920.6576 2692.0887,-931.2374 2698.8098,-929.2809"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.19s)">
<text text-anchor="middle" x="2721.8364" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N7 -->
<g id="edge76" class="edge">
<title>N77&#45;&gt;N7</title>
<g id="a_edge76"><a xlink:title="runtime.gcMarkTermination &#45;&gt; runtime.systemstack (0.23s)">
<path fill="none" stroke="#000000" d="M2842.9369,-1391.8265C2794.2908,-1353.3758 2683.594,-1264.1924 2654.1123,-1226 2479.3392,-999.5877 2554.6201,-866.7041 2369.1123,-649 2341.5796,-616.6888 2297.6582,-598.3858 2260.0947,-588.1255"/>
<polygon fill="#000000" stroke="#000000" points="2260.7511,-584.6801 2250.1931,-585.5633 2258.9974,-591.4569 2260.7511,-584.6801"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.gcMarkTermination &#45;&gt; runtime.systemstack (0.23s)">
<text text-anchor="middle" x="2557.8364" y="-993.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.semasleep (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2724.8705,-692 2649.3541,-692 2649.3541,-656 2724.8705,-656 2724.8705,-692"/>
<text text-anchor="middle" x="2687.1123" y="-675.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep</text>
<text text-anchor="middle" x="2687.1123" y="-667.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.23s(0.8%)</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N7 -->
<g id="edge78" class="edge">
<title>N78&#45;&gt;N7</title>
<g id="a_edge78"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.23s)">
<path fill="none" stroke="#000000" d="M2675.8767,-655.7531C2666.6737,-642.5584 2652.3789,-625.598 2635.1123,-617 2602.4334,-600.7274 2377.734,-585.9987 2260.292,-579.304"/>
<polygon fill="#000000" stroke="#000000" points="2260.4856,-575.8095 2250.304,-578.7393 2260.0904,-582.7983 2260.4856,-575.8095"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.23s)">
<text text-anchor="middle" x="2669.8364" y="-619.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N78 -->
<g id="edge81" class="edge">
<title>N80&#45;&gt;N78</title>
<g id="a_edge81"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.22s)">
<path fill="none" stroke="#000000" d="M2687.1123,-770.7779C2687.1123,-752.3567 2687.1123,-723.6329 2687.1123,-702.2569"/>
<polygon fill="#000000" stroke="#000000" points="2690.6124,-702.1368 2687.1123,-692.1368 2683.6124,-702.1369 2690.6124,-702.1368"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.22s)">
<text text-anchor="middle" x="2703.8364" y="-719.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion10.svg.



























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1531)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1531 4545.3604,-1531 4545.3604,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="8,-1303 8,-1519 668,-1519 668,-1303 8,-1303"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="660.172,-1511 15.828,-1511 15.828,-1311 660.172,-1311 660.172,-1511"/>
<text text-anchor="start" x="23.6641" y="-1481.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="23.6641" y="-1449.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="23.6641" y="-1417.4" font-family="Times,serif" font-size="32.00" fill="#000000">10.44s of 11.20s total (93.21%)</text>
<text text-anchor="start" x="23.6641" y="-1385.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 65 nodes (cum &lt;= 0.06s)</text>
<text text-anchor="start" x="23.6641" y="-1353.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 12 edges (freq &lt;= 0.01s)</text>
<text text-anchor="start" x="23.6641" y="-1321.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 115 (cum &gt;= 0.08s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (10.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3253.0434,-827 2994.9566,-827 2994.9566,-747 3253.0434,-747 3253.0434,-827"/>
<text text-anchor="middle" x="3124" y="-803.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="3124" y="-779.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.29s(11.52%)</text>
<text text-anchor="middle" x="3124" y="-755.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 10.30s(91.96%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute.func10 (10.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3210.5942,-691 3037.4058,-691 3037.4058,-647 3210.5942,-647 3210.5942,-691"/>
<text text-anchor="middle" x="3124" y="-677.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).execute.func10</text>
<text text-anchor="middle" x="3124" y="-665.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.71%)</text>
<text text-anchor="middle" x="3124" y="-653.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 10.29s(91.88%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge14" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func10 (0.82s)">
<path fill="none" stroke="#000000" d="M3094.0908,-746.923C3091.0055,-741.1496 3088.3479,-735.0933 3086.5518,-729 3083.5261,-718.7356 3086.9002,-708.5065 3092.6675,-699.478"/>
<polygon fill="#000000" stroke="#000000" points="3095.6433,-701.3416 3098.7995,-691.2278 3090.0251,-697.1659 3095.6433,-701.3416"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func10 (0.82s)">
<text text-anchor="middle" x="3102.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.82s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).execute.func7 (9.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3854.3285,-688 3711.6715,-688 3711.6715,-650 3854.3285,-650 3854.3285,-688"/>
<text text-anchor="middle" x="3783" y="-676" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).execute.func7</text>
<text text-anchor="middle" x="3783" y="-666" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="3783" y="-656" font-family="Times,serif" font-size="10.00" fill="#000000">of 9.65s(86.16%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N3 -->
<g id="edge53" class="edge">
<title>N1&#45;&gt;N3</title>
<g id="a_edge53"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (0.16s)">
<path fill="none" stroke="#000000" d="M3253.1678,-776.6511C3371.9152,-764.8632 3551.9133,-741.2168 3703,-697 3709.0242,-695.237 3715.2619,-693.2841 3721.4748,-691.2535"/>
<polygon fill="#000000" stroke="#000000" points="3722.8047,-694.4996 3731.1832,-688.0149 3720.5895,-687.8593 3722.8047,-694.4996"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (0.16s)">
<text text-anchor="middle" x="3642.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.(*machine).loadLoopWords.func1 (7.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1590.9824,-691 1383.0176,-691 1383.0176,-647 1590.9824,-647 1590.9824,-691"/>
<text text-anchor="middle" x="1487" y="-677.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="1487" y="-665.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.71%)</text>
<text text-anchor="middle" x="1487" y="-653.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 7.06s(63.04%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N5 -->
<g id="edge43" class="edge">
<title>N1&#45;&gt;N5</title>
<g id="a_edge43"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.22s)">
<path fill="none" stroke="#000000" d="M2994.7676,-777.7219C2861.7641,-768.5129 2648.5139,-754.6921 2464,-747 2288.6737,-739.6909 1847.612,-758.0322 1674.5518,-729 1632.6391,-721.9688 1587.2063,-707.6181 1551.5553,-694.7144"/>
<polygon fill="#000000" stroke="#000000" points="1552.364,-691.2829 1541.7704,-691.1206 1549.9506,-697.8537 1552.364,-691.2829"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.22s)">
<text text-anchor="middle" x="1691.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.newobject (2.92s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3494.6065,-274.5 3381.3935,-274.5 3381.3935,-227.5 3494.6065,-227.5 3494.6065,-274.5"/>
<text text-anchor="middle" x="3438" y="-260.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="3438" y="-247.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(0.98%)</text>
<text text-anchor="middle" x="3438" y="-234.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 2.92s(26.07%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N8 -->
<g id="edge12" class="edge">
<title>N1&#45;&gt;N8</title>
<g id="a_edge12"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.85s)">
<path fill="none" stroke="#000000" d="M3253.3306,-781.8047C3481.3167,-772.2394 3945.8476,-750.8163 4107,-729 4194.7544,-717.1201 4297,-757.5549 4297,-669 4297,-669 4297,-669 4297,-354 4297,-274.3242 3706.8729,-255.9667 3504.873,-252.0169"/>
<polygon fill="#000000" stroke="#000000" points="3504.7582,-248.5142 3494.6936,-251.8237 3504.6253,-255.5129 3504.7582,-248.5142"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.85s)">
<text text-anchor="middle" x="4313.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.85s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.(*machine).execute.func11 (2.01s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2497.847,-694 2298.153,-694 2298.153,-644 2497.847,-644 2497.847,-694"/>
<text text-anchor="middle" x="2398" y="-678.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).execute.func11</text>
<text text-anchor="middle" x="2398" y="-664.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.14s(1.25%)</text>
<text text-anchor="middle" x="2398" y="-650.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 2.01s(17.95%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N10 -->
<g id="edge17" class="edge">
<title>N1&#45;&gt;N10</title>
<g id="a_edge17"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func11 (0.76s)">
<path fill="none" stroke="#000000" d="M2994.9089,-773.6379C2869.2093,-759.3519 2673.1961,-733.6857 2506,-697 2504.9358,-696.7665 2503.8661,-696.5297 2502.7919,-696.2899"/>
<polygon fill="#000000" stroke="#000000" points="2503.5475,-692.8725 2493.0192,-694.0579 2501.9888,-699.6967 2503.5475,-692.8725"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func11 (0.76s)">
<text text-anchor="middle" x="2673.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.76s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.NilWord.func1 (1.58s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2280.7693,-692.5 2157.2307,-692.5 2157.2307,-645.5 2280.7693,-645.5 2280.7693,-692.5"/>
<text text-anchor="middle" x="2219" y="-678.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="2219" y="-665.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.12s(1.07%)</text>
<text text-anchor="middle" x="2219" y="-652.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.58s(14.11%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N11 -->
<g id="edge16" class="edge">
<title>N1&#45;&gt;N11</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.77s)">
<path fill="none" stroke="#000000" d="M2994.7792,-783.2405C2851.393,-777.5033 2613.5728,-763.3292 2411.5518,-729 2356.0537,-719.5693 2342.472,-714.599 2289,-697 2287.9432,-696.6522 2286.8794,-696.2966 2285.8103,-695.9341"/>
<polygon fill="#000000" stroke="#000000" points="2286.6819,-692.5305 2276.0871,-692.5107 2284.3571,-699.1332 2286.6819,-692.5305"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.77s)">
<text text-anchor="middle" x="2427.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.77s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.deferproc (0.84s)">
<polygon fill="#f8f8f8" stroke="#000000" points="895.8638,-695.5 772.1362,-695.5 772.1362,-642.5 895.8638,-642.5 895.8638,-695.5"/>
<text text-anchor="middle" x="834" y="-679.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="834" y="-664.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.23s(2.05%)</text>
<text text-anchor="middle" x="834" y="-649.5" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.84s(7.50%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N17 -->
<g id="edge13" class="edge">
<title>N1&#45;&gt;N17</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.84s)">
<path fill="none" stroke="#000000" d="M2994.7832,-777.3229C2861.7921,-767.7971 2648.5515,-753.729 2464,-747 2302.2675,-741.103 1167.3908,-754.3703 1007.5518,-729 972.3118,-723.4066 934.7128,-711.2356 903.5531,-699.3076"/>
<polygon fill="#000000" stroke="#000000" points="904.6877,-695.9934 894.0994,-695.6211 902.1445,-702.5151 904.6877,-695.9934"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.84s)">
<text text-anchor="middle" x="1024.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.84s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.growslice (0.68s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4541.221,-695.5 4416.779,-695.5 4416.779,-642.5 4541.221,-642.5 4541.221,-695.5"/>
<text text-anchor="middle" x="4479" y="-679.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="4479" y="-664.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.19s(1.70%)</text>
<text text-anchor="middle" x="4479" y="-649.5" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.68s(6.07%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N18 -->
<g id="edge19" class="edge">
<title>N1&#45;&gt;N18</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.68s)">
<path fill="none" stroke="#000000" d="M3253.2644,-784.1719C3549.6746,-777.2267 4260.9621,-757.7753 4366,-729 4388.3775,-722.8696 4411.3071,-711.7525 4430.6125,-700.7388"/>
<polygon fill="#000000" stroke="#000000" points="4432.6368,-703.6093 4439.4955,-695.5341 4429.098,-697.5697 4432.6368,-703.6093"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.68s)">
<text text-anchor="middle" x="4418.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.68s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.deferreturn (0.61s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1153.3282,-697 1012.6718,-697 1012.6718,-641 1153.3282,-641 1153.3282,-697"/>
<text text-anchor="middle" x="1083" y="-680.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="1083" y="-664.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.29s(2.59%)</text>
<text text-anchor="middle" x="1083" y="-648.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.61s(5.45%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N19 -->
<g id="edge20" class="edge">
<title>N1&#45;&gt;N19</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.61s)">
<path fill="none" stroke="#000000" d="M2994.776,-777.5149C2861.7791,-768.1416 2648.5341,-754.1925 2464,-747 2004.0805,-729.0738 1887.7433,-760.4721 1428.5518,-729 1312.7679,-721.0644 1279.9541,-724.032 1163.4336,-697.1601"/>
<polygon fill="#000000" stroke="#000000" points="1163.9379,-693.6838 1153.4044,-694.8221 1162.3487,-700.5011 1163.9379,-693.6838"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.61s)">
<text text-anchor="middle" x="1445.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.61s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="main.executeSubtract (0.53s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2634.6236,-691 2515.3764,-691 2515.3764,-647 2634.6236,-647 2634.6236,-691"/>
<text text-anchor="middle" x="2575" y="-677.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.executeSubtract</text>
<text text-anchor="middle" x="2575" y="-665.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.45%)</text>
<text text-anchor="middle" x="2575" y="-653.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.53s(4.73%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N22 -->
<g id="edge25" class="edge">
<title>N1&#45;&gt;N22</title>
<g id="a_edge25"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.53s)">
<path fill="none" stroke="#000000" d="M2994.7626,-769.9426C2897.1919,-755.3456 2760.6433,-731.2269 2644,-697 2641.267,-696.1981 2638.4935,-695.3268 2635.7065,-694.404"/>
<polygon fill="#000000" stroke="#000000" points="2636.8135,-691.0834 2626.2187,-691.0943 2634.5079,-697.6928 2636.8135,-691.0834"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.53s)">
<text text-anchor="middle" x="2776.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.53s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.47s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1364.8048,-689.5 1171.1952,-689.5 1171.1952,-648.5 1364.8048,-648.5 1364.8048,-689.5"/>
<text text-anchor="middle" x="1268" y="-676.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="1268" y="-665.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.36%)</text>
<text text-anchor="middle" x="1268" y="-654.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.47s(4.20%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N23 -->
<g id="edge27" class="edge">
<title>N1&#45;&gt;N23</title>
<g id="a_edge27"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.47s)">
<path fill="none" stroke="#000000" d="M2994.7715,-777.6283C2861.771,-768.345 2648.5232,-754.4663 2464,-747 2071.152,-731.1044 1971.2208,-763.3169 1579.5518,-729 1487.4479,-720.9301 1464.4954,-715.9429 1374,-697 1366.7459,-695.4815 1359.2462,-693.7772 1351.7435,-691.9787"/>
<polygon fill="#000000" stroke="#000000" points="1352.4446,-688.5471 1341.8991,-689.5679 1350.7795,-695.3461 1352.4446,-688.5471"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.47s)">
<text text-anchor="middle" x="1596.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.47s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1810.9356,-692.5 1609.0644,-692.5 1609.0644,-645.5 1810.9356,-645.5 1810.9356,-692.5"/>
<text text-anchor="middle" x="1710" y="-678.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(intPusher).(main.pushInt)&#45;fm</text>
<text text-anchor="middle" x="1710" y="-665.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(0.89%)</text>
<text text-anchor="middle" x="1710" y="-652.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.36s(3.21%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N26 -->
<g id="edge31" class="edge">
<title>N1&#45;&gt;N26</title>
<g id="a_edge31"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.36s)">
<path fill="none" stroke="#000000" d="M2994.7407,-778.312C2861.7159,-769.5717 2648.449,-756.1169 2464,-747 2255.014,-736.6703 2201.5216,-752.0302 1993.5518,-729 1931.5217,-722.1309 1863.0388,-707.8338 1808.9163,-694.9188"/>
<polygon fill="#000000" stroke="#000000" points="1809.5239,-691.4652 1798.9823,-692.5255 1807.8843,-698.2704 1809.5239,-691.4652"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.36s)">
<text text-anchor="middle" x="2009.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="main.(*CodeQuotation).nextWord (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2884.5473,-689 2653.4527,-689 2653.4527,-649 2884.5473,-649 2884.5473,-689"/>
<text text-anchor="middle" x="2769" y="-672.2" font-family="Times,serif" font-size="16.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2769" y="-656.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.32s(2.86%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N27 -->
<g id="edge32" class="edge">
<title>N1&#45;&gt;N27</title>
<g id="a_edge32"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.32s)">
<path fill="none" stroke="#000000" d="M3003.3178,-746.8859C2948.7094,-728.7344 2886.0801,-707.9168 2839.3172,-692.373"/>
<polygon fill="#000000" stroke="#000000" points="2840.1814,-688.9721 2829.5879,-689.1391 2837.9734,-695.6147 2840.1814,-688.9721"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.32s)">
<text text-anchor="middle" x="2962.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="main.executeMultiply (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3569.3356,-689.5 3456.6644,-689.5 3456.6644,-648.5 3569.3356,-648.5 3569.3356,-689.5"/>
<text text-anchor="middle" x="3513" y="-676.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeMultiply</text>
<text text-anchor="middle" x="3513" y="-665.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.27%)</text>
<text text-anchor="middle" x="3513" y="-654.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.29s(2.59%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N31 -->
<g id="edge34" class="edge">
<title>N1&#45;&gt;N31</title>
<g id="a_edge34"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.29s)">
<path fill="none" stroke="#000000" d="M3253.3217,-772.2827C3305.9936,-763.5669 3366.6733,-749.9679 3419,-729 3439.8131,-720.6599 3461.0328,-707.5863 3478.0316,-695.7688"/>
<polygon fill="#000000" stroke="#000000" points="3480.3926,-698.3845 3486.5116,-689.7353 3476.3345,-692.6808 3480.3926,-698.3845"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.29s)">
<text text-anchor="middle" x="3462.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="main.executeLessThan (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3019.5948,-689.5 2902.4052,-689.5 2902.4052,-648.5 3019.5948,-648.5 3019.5948,-689.5"/>
<text text-anchor="middle" x="2961" y="-676.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeLessThan</text>
<text text-anchor="middle" x="2961" y="-665.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.27%)</text>
<text text-anchor="middle" x="2961" y="-654.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.20s(1.79%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N40 -->
<g id="edge44" class="edge">
<title>N1&#45;&gt;N40</title>
<g id="a_edge44"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeLessThan (0.20s)">
<path fill="none" stroke="#000000" d="M3068.3605,-746.7211C3045.0158,-729.8212 3018.5129,-710.6351 2997.6805,-695.554"/>
<polygon fill="#000000" stroke="#000000" points="2999.5684,-692.5998 2989.4157,-689.5709 2995.4636,-698.27 2999.5684,-692.5998"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeLessThan (0.20s)">
<text text-anchor="middle" x="3058.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.memeqbody (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3369.0564,-688 3228.9436,-688 3228.9436,-650 3369.0564,-650 3369.0564,-688"/>
<text text-anchor="middle" x="3299" y="-672" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="3299" y="-657" font-family="Times,serif" font-size="15.00" fill="#000000">0.19s(1.70%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N42 -->
<g id="edge46" class="edge">
<title>N1&#45;&gt;N42</title>
<g id="a_edge46"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.19s)">
<path fill="none" stroke="#000000" d="M3183.7356,-746.7211C3209.7242,-729.1974 3239.3583,-709.2156 3262.0706,-693.901"/>
<polygon fill="#000000" stroke="#000000" points="3264.0799,-696.7675 3270.4144,-688.2749 3260.1664,-690.9636 3264.0799,-696.7675"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.19s)">
<text text-anchor="middle" x="3243.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="main.isZeroPred (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1911.3729,-688 1828.6271,-688 1828.6271,-650 1911.3729,-650 1911.3729,-688"/>
<text text-anchor="middle" x="1870" y="-676" font-family="Times,serif" font-size="10.00" fill="#000000">main.isZeroPred</text>
<text text-anchor="middle" x="1870" y="-666" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="1870" y="-656" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.16s(1.43%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N48 -->
<g id="edge54" class="edge">
<title>N1&#45;&gt;N48</title>
<g id="a_edge54"><a xlink:title="main.(*machine).execute &#45;&gt; main.isZeroPred (0.16s)">
<path fill="none" stroke="#000000" d="M2994.7935,-779.3122C2758.302,-765.1843 2272.9172,-735.9038 2195.5518,-729 2134.1505,-723.5208 1978.6492,-715.9844 1920,-697 1916.2212,-695.7768 1912.405,-694.2542 1908.6551,-692.5553"/>
<polygon fill="#000000" stroke="#000000" points="1910.0439,-689.3375 1899.5289,-688.0393 1906.9393,-695.6114 1910.0439,-689.3375"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.isZeroPred (0.16s)">
<text text-anchor="middle" x="2211.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2138.9688,-691 1929.0312,-691 1929.0312,-647 2138.9688,-647 2138.9688,-691"/>
<text text-anchor="middle" x="2034" y="-677.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2034" y="-665.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.62%)</text>
<text text-anchor="middle" x="2034" y="-653.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.15s(1.34%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N50 -->
<g id="edge56" class="edge">
<title>N1&#45;&gt;N50</title>
<g id="a_edge56"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.15s)">
<path fill="none" stroke="#000000" d="M2994.8514,-779.77C2799.5459,-768.5014 2438.1947,-746.2531 2309.5518,-729 2248.5788,-720.8225 2181.0766,-706.2178 2128.1437,-693.4652"/>
<polygon fill="#000000" stroke="#000000" points="2128.6401,-689.9841 2118.0965,-691.0249 2126.9879,-696.7863 2128.6401,-689.9841"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.15s)">
<text text-anchor="middle" x="2325.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.ifaceeq (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3694.0974,-694 3587.9026,-694 3587.9026,-644 3694.0974,-644 3694.0974,-694"/>
<text text-anchor="middle" x="3641" y="-678.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="3641" y="-664.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.14s(1.25%)</text>
<text text-anchor="middle" x="3641" y="-650.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.15s(1.34%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N51 -->
<g id="edge57" class="edge">
<title>N1&#45;&gt;N51</title>
<g id="a_edge57"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.15s)">
<path fill="none" stroke="#000000" d="M3253.3919,-771.3448C3322.1464,-761.7109 3407.7706,-747.6126 3483,-729 3526.2492,-718.2997 3536.4871,-713.1761 3578,-697 3578.1011,-696.9606 3578.2022,-696.9212 3578.3034,-696.8816"/>
<polygon fill="#000000" stroke="#000000" points="3579.9011,-700.0115 3587.871,-693.0308 3577.2874,-693.5178 3579.9011,-700.0115"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.15s)">
<text text-anchor="middle" x="3547.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="main.tryParseInt (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4398.7699,-687 4325.2301,-687 4325.2301,-651 4398.7699,-651 4398.7699,-687"/>
<text text-anchor="middle" x="4362" y="-670.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="4362" y="-662.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(1.25%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N56 -->
<g id="edge59" class="edge">
<title>N1&#45;&gt;N56</title>
<g id="a_edge59"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.14s)">
<path fill="none" stroke="#000000" d="M3253.0957,-783.4426C3550.9108,-774.8634 4264.2193,-752.0356 4311,-729 4325.6067,-721.8074 4337.6605,-708.3217 4346.3755,-695.9548"/>
<polygon fill="#000000" stroke="#000000" points="4349.5313,-697.5272 4352.12,-687.2534 4343.6895,-693.6705 4349.5313,-697.5272"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.14s)">
<text text-anchor="middle" x="4345.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="main.(*machine).execute.func6 (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4014.3285,-688 3871.6715,-688 3871.6715,-650 4014.3285,-650 4014.3285,-688"/>
<text text-anchor="middle" x="3943" y="-676" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).execute.func6</text>
<text text-anchor="middle" x="3943" y="-666" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="3943" y="-656" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(0.8%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N76 -->
<g id="edge86" class="edge">
<title>N1&#45;&gt;N76</title>
<g id="a_edge86"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func6 (0.09s)">
<path fill="none" stroke="#000000" d="M3253.309,-781.1559C3402.2678,-772.1562 3653.4309,-749.9909 3863,-697 3869.6136,-695.3277 3876.4555,-693.3428 3883.2259,-691.2135"/>
<polygon fill="#000000" stroke="#000000" points="3884.6355,-694.4354 3893.0595,-688.0099 3882.4672,-687.7797 3884.6355,-694.4354"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func6 (0.09s)">
<text text-anchor="middle" x="3800.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="main.(*machine).execute.func1 (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4199.5942,-687 4032.4058,-687 4032.4058,-651 4199.5942,-651 4199.5942,-687"/>
<text text-anchor="middle" x="4116" y="-671.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="4116" y="-659.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.71%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N80 -->
<g id="edge92" class="edge">
<title>N1&#45;&gt;N80</title>
<g id="a_edge92"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.08s)">
<path fill="none" stroke="#000000" d="M3253.0732,-779.1323C3393.2027,-769.921 3623.447,-752.8341 3821,-729 3911.2429,-718.1125 3934.3893,-717.26 4023,-697 4031.9328,-694.9576 4041.2639,-692.5206 4050.4217,-689.9485"/>
<polygon fill="#000000" stroke="#000000" points="4051.6215,-693.2454 4060.2639,-687.1168 4049.6859,-686.5182 4051.6215,-693.2454"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.08s)">
<text text-anchor="middle" x="3945.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).execute.func10 &#45;&gt; main.(*machine).execute (9.47s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M3124,-691.2328C3124,-704.0373 3124,-720.6835 3124,-736.4978"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="3119.6251,-736.7211 3124,-746.7211 3128.3751,-736.7212 3119.6251,-736.7211"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).execute.func10 &#45;&gt; main.(*machine).execute (9.47s)">
<text text-anchor="middle" x="3140.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.47s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.(*CodeQuotation).cloneCode (1.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3535.7784,-586.5 3340.2216,-586.5 3340.2216,-539.5 3535.7784,-539.5 3535.7784,-586.5"/>
<text text-anchor="middle" x="3438" y="-572.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="3438" y="-559.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.09s(0.8%)</text>
<text text-anchor="middle" x="3438" y="-546.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.13s(10.09%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge18" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute.func10 &#45;&gt; main.(*CodeQuotation).cloneCode (0.74s)">
<path fill="none" stroke="#000000" d="M3193.0604,-646.9667C3202.0548,-644.6561 3211.1996,-642.5791 3220,-641 3247.63,-636.0421 3452.8707,-643.5444 3472,-623 3479.7127,-614.7167 3477.0934,-604.3695 3470.7207,-594.6122"/>
<polygon fill="#000000" stroke="#000000" points="3473.4723,-592.4484 3464.6294,-586.613 3467.9032,-596.6893 3473.4723,-592.4484"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute.func10 &#45;&gt; main.(*CodeQuotation).cloneCode (0.74s)">
<text text-anchor="middle" x="3492.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.74s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (9.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4062.5547,-582 3905.4453,-582 3905.4453,-544 4062.5547,-544 4062.5547,-582"/>
<text text-anchor="middle" x="3984" y="-570" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="3984" y="-560" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.089%)</text>
<text text-anchor="middle" x="3984" y="-550" font-family="Times,serif" font-size="10.00" fill="#000000">of 9.65s(86.16%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N4 -->
<g id="edge1" class="edge">
<title>N3&#45;&gt;N4</title>
<g id="a_edge1"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).executeQuotation (9.63s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M3819.3996,-649.8042C3852.9816,-632.0943 3902.952,-605.7418 3939.0195,-586.7211"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="3941.0667,-590.5876 3947.8712,-582.053 3936.985,-582.8479 3941.0667,-590.5876"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).executeQuotation (9.63s)">
<text text-anchor="middle" x="3911.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.63s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge2" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge2"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (9.51s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M4062.6419,-580.0616C4120.293,-594.349 4191.4398,-616.3271 4209,-641 4223.4319,-661.2775 4225.4101,-678.2873 4209,-697 4178.2284,-732.0895 3548.9512,-766.6127 3263.1178,-780.5518"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="3262.872,-776.1835 3253.0962,-781.0389 3263.2969,-784.9231 3262.872,-776.1835"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (9.51s)">
<text text-anchor="middle" x="4236.7241" y="-664.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.51s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N8 -->
<g id="edge69" class="edge">
<title>N4&#45;&gt;N8</title>
<g id="a_edge69"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.12s)">
<path fill="none" stroke="#000000" d="M3966.7232,-543.9182C3925.1848,-499.1771 3814.633,-386.72 3700,-326 3637.811,-293.0591 3559.4403,-273.0779 3504.6861,-262.1171"/>
<polygon fill="#000000" stroke="#000000" points="3505.2321,-258.6577 3494.7464,-260.1744 3503.8893,-265.5277 3505.2321,-258.6577"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.12s)">
<text text-anchor="middle" x="3844.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N1 -->
<g id="edge4" class="edge">
<title>N5&#45;&gt;N1</title>
<g id="a_edge4"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (6.84s)">
<path fill="none" stroke="#000000" stroke-width="4" d="M1570.9776,-691.0396C1580.7251,-693.2315 1590.5553,-695.2783 1600,-697 1719.1203,-718.7147 1749.8,-720.0449 1870.5518,-729 2133.7052,-748.5158 2200.3962,-735.017 2464,-747 2643.7995,-755.1734 2850.9307,-768.3394 2984.4698,-777.3165"/>
<polygon fill="#000000" stroke="#000000" stroke-width="4" points="2984.5424,-780.8292 2994.7551,-778.0094 2985.013,-773.8451 2984.5424,-780.8292"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (6.84s)">
<text text-anchor="middle" x="1887.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 6.84s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N8 -->
<g id="edge70" class="edge">
<title>N5&#45;&gt;N8</title>
<g id="a_edge70"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.12s)">
<path fill="none" stroke="#000000" d="M1513.8101,-646.6931C1534.2808,-627.0267 1559,-596.3699 1559,-563 1559,-563 1559,-563 1559,-354 1559,-298.701 1614.6132,-308.4162 1668,-294 1751.5332,-271.4433 3057.7258,-255.2977 3370.8976,-251.7383"/>
<polygon fill="#000000" stroke="#000000" points="3371.2213,-255.235 3381.181,-251.6219 3371.142,-248.2354 3371.2213,-255.235"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.12s)">
<text text-anchor="middle" x="1575.7241" y="-454.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.assertI2T (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1722.4727,-376 1621.5273,-376 1621.5273,-332 1722.4727,-332 1722.4727,-376"/>
<text text-anchor="middle" x="1672" y="-362.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="1672" y="-350.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.45%)</text>
<text text-anchor="middle" x="1672" y="-338.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.11s(0.98%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N69 -->
<g id="edge114" class="edge">
<title>N5&#45;&gt;N69</title>
<g id="a_edge114"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M1542.6784,-646.8975C1553.8299,-640.4943 1564.6633,-632.5796 1573,-623 1589.1971,-604.3882 1639.7124,-453.1762 1661.6539,-385.9804"/>
<polygon fill="#000000" stroke="#000000" points="1665.0295,-386.9178 1664.7986,-376.3254 1658.3736,-384.7499 1665.0295,-386.9178"/>
</a>
</g>
<g id="a_edge114&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="1639.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.goexit (6.01s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3162.7699,-913 3085.2301,-913 3085.2301,-877 3162.7699,-877 3162.7699,-913"/>
<text text-anchor="middle" x="3124" y="-896.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="3124" y="-888.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 6.01s(53.66%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N1 -->
<g id="edge5" class="edge">
<title>N6&#45;&gt;N1</title>
<g id="a_edge5"><a xlink:title="runtime.goexit ... main.(*machine).execute (5.70s)">
<path fill="none" stroke="#000000" stroke-width="3" stroke-dasharray="1,5" d="M3124,-876.6793C3124,-865.8316 3124,-851.5069 3124,-837.4979"/>
<polygon fill="#000000" stroke="#000000" stroke-width="3" points="3127.5001,-837.4072 3124,-827.4072 3120.5001,-837.4072 3127.5001,-837.4072"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (5.70s)">
<text text-anchor="middle" x="3140.7241" y="-847.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.70s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.gcFlushBgCredit (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2454.5518,-805 2357.4482,-805 2357.4482,-769 2454.5518,-769 2454.5518,-805"/>
<text text-anchor="middle" x="2406" y="-788.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="2406" y="-780.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(0.89%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N75 -->
<g id="edge91" class="edge">
<title>N6&#45;&gt;N75</title>
<g id="a_edge91"><a xlink:title="runtime.goexit ... runtime.gcFlushBgCredit (0.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3085.1426,-889.1552C2966.3674,-871.2893 2607.5726,-817.3201 2465.1699,-795.9002"/>
<polygon fill="#000000" stroke="#000000" points="2465.3021,-792.3808 2454.8927,-794.3543 2464.2609,-799.3029 2465.3021,-792.3808"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.goexit ... runtime.gcFlushBgCredit (0.09s)">
<text text-anchor="middle" x="2887.7241" y="-847.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.markroot (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1817.2073,-805 1744.7927,-805 1744.7927,-769 1817.2073,-769 1817.2073,-805"/>
<text text-anchor="middle" x="1781" y="-788.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.markroot</text>
<text text-anchor="middle" x="1781" y="-780.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.8%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N78 -->
<g id="edge95" class="edge">
<title>N6&#45;&gt;N78</title>
<g id="a_edge95"><a xlink:title="runtime.goexit ... runtime.markroot (0.08s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3084.8952,-891.8553C2891.3197,-876.2886 2036.6156,-807.5558 1827.3583,-790.728"/>
<polygon fill="#000000" stroke="#000000" points="1827.5669,-787.2336 1817.3185,-789.9206 1827.0057,-794.211 1827.5669,-787.2336"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="runtime.goexit ... runtime.markroot (0.08s)">
<text text-anchor="middle" x="2667.7241" y="-847.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.mallocgc (3.59s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3530.1098,-176 3345.8902,-176 3345.8902,-96 3530.1098,-96 3530.1098,-176"/>
<text text-anchor="middle" x="3438" y="-152.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="3438" y="-128.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.25s(11.16%)</text>
<text text-anchor="middle" x="3438" y="-104.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 3.59s(32.05%)</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.heapBitsSetType (0.58s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3542.3289,-46 3333.6711,-46 3333.6711,0 3542.3289,0 3542.3289,-46"/>
<text text-anchor="middle" x="3438" y="-26.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="3438" y="-7.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.58s(5.18%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N20 -->
<g id="edge21" class="edge">
<title>N7&#45;&gt;N20</title>
<g id="a_edge21"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.58s)">
<path fill="none" stroke="#000000" d="M3438,-95.8423C3438,-82.9875 3438,-68.8978 3438,-56.5643"/>
<polygon fill="#000000" stroke="#000000" points="3441.5001,-56.2531 3438,-46.2531 3434.5001,-56.2532 3441.5001,-56.2531"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.58s)">
<text text-anchor="middle" x="3454.7241" y="-66.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.memclr (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="449.2185,-42 336.7815,-42 336.7815,-4 449.2185,-4 449.2185,-42"/>
<text text-anchor="middle" x="393" y="-26" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="393" y="-11" font-family="Times,serif" font-size="15.00" fill="#000000">0.22s(1.96%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N38 -->
<g id="edge116" class="edge">
<title>N7&#45;&gt;N38</title>
<g id="a_edge116"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.02s)">
<path fill="none" stroke="#000000" d="M3345.6235,-132.5719C2886.1862,-115.5222 853.6829,-40.0959 459.3861,-25.4636"/>
<polygon fill="#000000" stroke="#000000" points="459.409,-21.9621 449.2861,-25.0888 459.1494,-28.9573 459.409,-21.9621"/>
</a>
</g>
<g id="a_edge116&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.02s)">
<text text-anchor="middle" x="1841.7241" y="-66.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.stkbucket (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3315.8931,-42 3192.1069,-42 3192.1069,-4 3315.8931,-4 3315.8931,-42"/>
<text text-anchor="middle" x="3254" y="-26" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="3254" y="-11" font-family="Times,serif" font-size="15.00" fill="#000000">0.19s(1.70%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N43 -->
<g id="edge47" class="edge">
<title>N7&#45;&gt;N43</title>
<g id="a_edge47"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.19s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3372.6104,-95.8423C3346.3477,-79.7135 3316.9196,-61.6408 3293.9461,-47.5321"/>
<polygon fill="#000000" stroke="#000000" points="3295.514,-44.3877 3285.161,-42.1369 3291.8507,-50.3527 3295.514,-44.3877"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.19s)">
<text text-anchor="middle" x="3356.7241" y="-66.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N7 -->
<g id="edge6" class="edge">
<title>N8&#45;&gt;N7</title>
<g id="a_edge6"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (2.81s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M3438,-227.4505C3438,-215.6059 3438,-200.7667 3438,-186.5095"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="3441.5001,-186.282 3438,-176.282 3434.5001,-186.282 3441.5001,-186.282"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (2.81s)">
<text text-anchor="middle" x="3454.7241" y="-196.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.81s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.systemstack (2.88s)">
<polygon fill="#f8f8f8" stroke="#000000" points="907.586,-591 760.414,-591 760.414,-535 907.586,-535 907.586,-591"/>
<text text-anchor="middle" x="834" y="-574.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="834" y="-558.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.27s(2.41%)</text>
<text text-anchor="middle" x="834" y="-542.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 2.88s(25.71%)</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="runtime.startm (1.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1190.7124,-477.5 1105.2876,-477.5 1105.2876,-439.5 1190.7124,-439.5 1190.7124,-477.5"/>
<text text-anchor="middle" x="1148" y="-465.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.startm</text>
<text text-anchor="middle" x="1148" y="-455.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.089%)</text>
<text text-anchor="middle" x="1148" y="-445.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 1.16s(10.36%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N13 -->
<g id="edge9" class="edge">
<title>N9&#45;&gt;N13</title>
<g id="a_edge9"><a xlink:title="runtime.systemstack ... runtime.startm (1.13s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M907.7784,-544.8855C960.9543,-530.9058 1033.9747,-509.7976 1096,-485 1098.4727,-484.0114 1100.9857,-482.9466 1103.5047,-481.8314"/>
<polygon fill="#000000" stroke="#000000" points="1104.9898,-485.0008 1112.5911,-477.6204 1102.0464,-478.6497 1104.9898,-485.0008"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="runtime.systemstack ... runtime.startm (1.13s)">
<text text-anchor="middle" x="1063.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.13s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.deferproc.func1 (0.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="613.3314,-482 470.6686,-482 470.6686,-435 613.3314,-435 613.3314,-482"/>
<text text-anchor="middle" x="542" y="-467.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="542" y="-454.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(0.98%)</text>
<text text-anchor="middle" x="542" y="-441.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.57s(5.09%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N21 -->
<g id="edge23" class="edge">
<title>N9&#45;&gt;N21</title>
<g id="a_edge23"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.57s)">
<path fill="none" stroke="#000000" d="M760.3161,-536.6302C716.5586,-520.9705 661.2067,-501.1613 617.1874,-485.4078"/>
<polygon fill="#000000" stroke="#000000" points="618.2843,-482.083 607.6897,-482.0088 615.9256,-488.6737 618.2843,-482.083"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.57s)">
<text text-anchor="middle" x="713.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.57s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.deferreturn.func1 (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="760.6153,-479 631.3847,-479 631.3847,-438 760.6153,-438 760.6153,-479"/>
<text text-anchor="middle" x="696" y="-466.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="696" y="-455.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.27%)</text>
<text text-anchor="middle" x="696" y="-444.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.26s(2.32%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N33 -->
<g id="edge39" class="edge">
<title>N9&#45;&gt;N33</title>
<g id="a_edge39"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.26s)">
<path fill="none" stroke="#000000" d="M797.0185,-534.9959C776.6691,-519.5864 751.5456,-500.5617 731.4443,-485.3401"/>
<polygon fill="#000000" stroke="#000000" points="733.5326,-482.5311 723.4474,-479.2845 729.3067,-488.1117 733.5326,-482.5311"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.26s)">
<text text-anchor="middle" x="786.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.(*mcentral).grow (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="452.7963,-477.5 333.2037,-477.5 333.2037,-439.5 452.7963,-439.5 452.7963,-477.5"/>
<text text-anchor="middle" x="393" y="-465.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="393" y="-455.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="393" y="-445.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.25s(2.23%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N35 -->
<g id="edge40" class="edge">
<title>N9&#45;&gt;N35</title>
<g id="a_edge40"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).grow (0.25s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M760.4359,-551.1592C684.7666,-538.1476 563.9042,-515.0421 462,-485 457.9151,-483.7957 453.7297,-482.4584 449.5385,-481.0426"/>
<polygon fill="#000000" stroke="#000000" points="450.3879,-477.6315 439.7931,-477.6227 448.07,-484.2366 450.3879,-477.6315"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).grow (0.25s)">
<text text-anchor="middle" x="600.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.(*mheap).alloc.func1 (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="889.7973,-476.5 778.2027,-476.5 778.2027,-440.5 889.7973,-440.5 889.7973,-476.5"/>
<text text-anchor="middle" x="834" y="-460.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="834" y="-452.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.98%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N67 -->
<g id="edge82" class="edge">
<title>N9&#45;&gt;N67</title>
<g id="a_edge82"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.11s)">
<path fill="none" stroke="#000000" d="M834,-534.9959C834,-520.1092 834,-501.8486 834,-486.9024"/>
<polygon fill="#000000" stroke="#000000" points="837.5001,-486.7006 834,-476.7006 830.5001,-486.7007 837.5001,-486.7006"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.11s)">
<text text-anchor="middle" x="850.4678" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.mach_semaphore_wait (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1086.5289,-476.5 907.4711,-476.5 907.4711,-440.5 1086.5289,-440.5 1086.5289,-476.5"/>
<text text-anchor="middle" x="997" y="-461.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="997" y="-448.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(0.98%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N72 -->
<g id="edge83" class="edge">
<title>N9&#45;&gt;N72</title>
<g id="a_edge83"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.11s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M877.681,-534.9959C903.3812,-518.5194 935.5283,-497.9098 959.9774,-482.2353"/>
<polygon fill="#000000" stroke="#000000" points="962.081,-485.0443 968.6105,-476.7006 958.303,-479.1513 962.081,-485.0443"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.11s)">
<text text-anchor="middle" x="942.4678" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N1 -->
<g id="edge7" class="edge">
<title>N10&#45;&gt;N1</title>
<g id="a_edge7"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*machine).execute (1.25s)">
<path fill="none" stroke="#000000" d="M2422.9195,-694.2572C2437.092,-706.9732 2455.9012,-721.2912 2475.5518,-729 2565.1518,-764.1495 2822.5286,-778.2011 2984.7927,-783.6697"/>
<polygon fill="#000000" stroke="#000000" points="2984.7472,-787.17 2994.8573,-784.0021 2984.9782,-780.1739 2984.7472,-787.17"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*machine).execute (1.25s)">
<text text-anchor="middle" x="2491.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.25s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N14 -->
<g id="edge29" class="edge">
<title>N10&#45;&gt;N14</title>
<g id="a_edge29"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*CodeQuotation).cloneCode (0.39s)">
<path fill="none" stroke="#000000" d="M2489.3585,-643.9722C2494.9661,-642.8537 2500.5451,-641.8477 2506,-641 2650.7041,-618.5132 2688.8554,-632.3115 2835,-623 3030.6753,-610.5327 3080.3701,-614.7368 3275,-591 3292.7959,-588.8296 3311.6072,-586.0524 3329.88,-583.0934"/>
<polygon fill="#000000" stroke="#000000" points="3330.6674,-586.5109 3339.9663,-581.4334 3329.5307,-579.6038 3330.6674,-586.5109"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*CodeQuotation).cloneCode (0.39s)">
<text text-anchor="middle" x="3100.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.convT2I (0.94s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2794.4737,-379 2683.5263,-379 2683.5263,-329 2794.4737,-329 2794.4737,-379"/>
<text text-anchor="middle" x="2739" y="-363.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="2739" y="-349.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.18s(1.61%)</text>
<text text-anchor="middle" x="2739" y="-335.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.94s(8.39%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N16 -->
<g id="edge41" class="edge">
<title>N10&#45;&gt;N16</title>
<g id="a_edge41"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; runtime.convT2I (0.23s)">
<path fill="none" stroke="#000000" d="M2486.7775,-643.9384C2557.3221,-623.6602 2645.1327,-597.4491 2651,-591 2699.5687,-537.6149 2655.271,-498.2083 2684,-432 2690.8173,-416.2891 2701.0953,-400.5497 2710.9282,-387.3659"/>
<polygon fill="#000000" stroke="#000000" points="2713.9648,-389.1586 2717.2848,-379.0973 2708.4152,-384.8922 2713.9648,-389.1586"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; runtime.convT2I (0.23s)">
<text text-anchor="middle" x="2690.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (1.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3266.4297,-585 3031.5703,-585 3031.5703,-541 3266.4297,-541 3266.4297,-585"/>
<text text-anchor="middle" x="3149" y="-571.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="3149" y="-559.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.62%)</text>
<text text-anchor="middle" x="3149" y="-547.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.02s(9.11%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N15 -->
<g id="edge11" class="edge">
<title>N11&#45;&gt;N15</title>
<g id="a_edge11"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.02s)">
<path fill="none" stroke="#000000" d="M2273.5201,-645.3882C2278.689,-643.6992 2283.9025,-642.1945 2289,-641 2424.6582,-609.2125 2775.3525,-604.8005 2914,-591 2948.7931,-587.5368 2986.4226,-583.282 3021.158,-579.1446"/>
<polygon fill="#000000" stroke="#000000" points="3021.8414,-582.5878 3031.3543,-577.9236 3021.0091,-575.6375 3021.8414,-582.5878"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.02s)">
<text text-anchor="middle" x="2616.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.02s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.makemap (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2344.4707,-585 2241.5293,-585 2241.5293,-541 2344.4707,-541 2344.4707,-585"/>
<text text-anchor="middle" x="2293" y="-571.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="2293" y="-559.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.45%)</text>
<text text-anchor="middle" x="2293" y="-547.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.17s(1.52%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N45 -->
<g id="edge50" class="edge">
<title>N11&#45;&gt;N45</title>
<g id="a_edge50"><a xlink:title="main.NilWord.func1 ... runtime.makemap (0.17s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2235.423,-645.4752C2246.1558,-630.1011 2260.2758,-609.8752 2271.8465,-593.3009"/>
<polygon fill="#000000" stroke="#000000" points="2274.779,-595.2146 2277.6335,-585.0115 2269.0393,-591.2076 2274.779,-595.2146"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.NilWord.func1 ... runtime.makemap (0.17s)">
<text text-anchor="middle" x="2276.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="main.(*machine).loadBooleanWords.func2 (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2567.9228,-583.5 2362.0772,-583.5 2362.0772,-542.5 2567.9228,-542.5 2567.9228,-583.5"/>
<text text-anchor="middle" x="2465" y="-570.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadBooleanWords.func2</text>
<text text-anchor="middle" x="2465" y="-559.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.36%)</text>
<text text-anchor="middle" x="2465" y="-548.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.11s(0.98%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N65 -->
<g id="edge74" class="edge">
<title>N11&#45;&gt;N65</title>
<g id="a_edge74"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.11s)">
<path fill="none" stroke="#000000" d="M2273.5954,-645.4752C2313.5169,-628.2732 2367.5349,-604.9972 2408.0062,-587.5583"/>
<polygon fill="#000000" stroke="#000000" points="2409.4053,-590.7666 2417.204,-583.595 2406.6353,-584.338 2409.4053,-590.7666"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.11s)">
<text text-anchor="middle" x="2372.4678" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="main.(*machine).loadPredefinedValues.func4 (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2223.4297,-585 1988.5703,-585 1988.5703,-541 2223.4297,-541 2223.4297,-585"/>
<text text-anchor="middle" x="2106" y="-571.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadPredefinedValues.func4</text>
<text text-anchor="middle" x="2106" y="-559.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.45%)</text>
<text text-anchor="middle" x="2106" y="-547.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.11s(0.98%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N66 -->
<g id="edge75" class="edge">
<title>N11&#45;&gt;N66</title>
<g id="a_edge75"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func4 (0.11s)">
<path fill="none" stroke="#000000" d="M2193.9216,-645.4752C2177.0812,-629.678 2154.78,-608.7582 2136.8521,-591.9409"/>
<polygon fill="#000000" stroke="#000000" points="2139.1531,-589.3004 2129.4651,-585.0115 2134.364,-594.4058 2139.1531,-589.3004"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func4 (0.11s)">
<text text-anchor="middle" x="2185.4678" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="runtime.mach_semaphore_signal (1.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1314.9063,-382 981.0937,-382 981.0937,-326 1314.9063,-326 1314.9063,-382"/>
<text text-anchor="middle" x="1148" y="-358.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="1148" y="-334.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.23s(10.98%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N12 -->
<g id="edge8" class="edge">
<title>N13&#45;&gt;N12</title>
<g id="a_edge8"><a xlink:title="runtime.startm ... runtime.mach_semaphore_signal (1.15s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1148,-439.3331C1148,-426.186 1148,-408.2918 1148,-392.2847"/>
<polygon fill="#000000" stroke="#000000" points="1151.5001,-392.1071 1148,-382.1072 1144.5001,-392.1072 1151.5001,-392.1071"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="runtime.startm ... runtime.mach_semaphore_signal (1.15s)">
<text text-anchor="middle" x="1164.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.15s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N8 -->
<g id="edge10" class="edge">
<title>N14&#45;&gt;N8</title>
<g id="a_edge10"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.04s)">
<path fill="none" stroke="#000000" d="M3438,-539.2932C3438,-484.4459 3438,-348.6377 3438,-284.9671"/>
<polygon fill="#000000" stroke="#000000" points="3441.5001,-284.6707 3438,-274.6707 3434.5001,-284.6707 3441.5001,-284.6707"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.04s)">
<text text-anchor="middle" x="3454.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.04s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N1 -->
<g id="edge15" class="edge">
<title>N15&#45;&gt;N1</title>
<g id="a_edge15"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (0.81s)">
<path fill="none" stroke="#000000" d="M3249.5804,-585.0344C3303.5312,-599.1099 3362.1405,-618.8438 3378,-641 3392.4867,-661.2384 3392.3626,-676.6733 3378,-697 3363.1628,-717.9983 3314.2418,-737.5565 3263.2406,-753.0401"/>
<polygon fill="#000000" stroke="#000000" points="3261.9472,-749.7733 3253.3624,-755.9823 3263.9454,-756.4821 3261.9472,-749.7733"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (0.81s)">
<text text-anchor="middle" x="3404.7241" y="-664.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.81s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N8 -->
<g id="edge71" class="edge">
<title>N15&#45;&gt;N8</title>
<g id="a_edge71"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.12s)">
<path fill="none" stroke="#000000" d="M3169.7842,-540.5617C3220.5474,-485.7585 3350.9383,-344.9904 3409.1666,-282.1281"/>
<polygon fill="#000000" stroke="#000000" points="3412.0021,-284.2174 3416.2299,-274.5026 3406.8667,-279.4605 3412.0021,-284.2174"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.12s)">
<text text-anchor="middle" x="3312.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N8 -->
<g id="edge24" class="edge">
<title>N16&#45;&gt;N8</title>
<g id="a_edge24"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.56s)">
<path fill="none" stroke="#000000" d="M2794.4336,-345.8317C2921.5456,-327.1013 3233.6258,-281.1152 3371.1114,-260.8563"/>
<polygon fill="#000000" stroke="#000000" points="3371.7166,-264.305 3381.0995,-259.3845 3370.696,-257.3798 3371.7166,-264.305"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.56s)">
<text text-anchor="middle" x="3146.7241" y="-296.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.56s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.typedmemmove (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1748.7453,-276 1595.2547,-276 1595.2547,-226 1748.7453,-226 1748.7453,-276"/>
<text text-anchor="middle" x="1672" y="-260.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="1672" y="-246.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.17s(1.52%)</text>
<text text-anchor="middle" x="1672" y="-232.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.30s(2.68%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N30 -->
<g id="edge45" class="edge">
<title>N16&#45;&gt;N30</title>
<g id="a_edge45"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.20s)">
<path fill="none" stroke="#000000" d="M2683.5086,-348.6433C2509.0549,-331.8029 1970.7603,-279.84 1758.9246,-259.391"/>
<polygon fill="#000000" stroke="#000000" points="1759.0725,-255.8891 1748.7825,-258.412 1758.3999,-262.8567 1759.0725,-255.8891"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.20s)">
<text text-anchor="middle" x="2253.7241" y="-296.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N9 -->
<g id="edge22" class="edge">
<title>N17&#45;&gt;N9</title>
<g id="a_edge22"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.57s)">
<path fill="none" stroke="#000000" d="M834,-642.2517C834,-629.8379 834,-614.8535 834,-601.2709"/>
<polygon fill="#000000" stroke="#000000" points="837.5001,-601.2233 834,-591.2233 830.5001,-601.2234 837.5001,-601.2233"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.57s)">
<text text-anchor="middle" x="850.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.57s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N7 -->
<g id="edge26" class="edge">
<title>N18&#45;&gt;N7</title>
<g id="a_edge26"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.49s)">
<path fill="none" stroke="#000000" d="M4482.8949,-642.4922C4485.7027,-621.0899 4489,-590.1722 4489,-563 4489,-563 4489,-563 4489,-251 4489,-203.622 3805.2042,-157.8542 3540.7212,-141.9238"/>
<polygon fill="#000000" stroke="#000000" points="3540.5398,-138.4067 3530.3481,-141.3013 3540.1205,-145.3941 3540.5398,-138.4067"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.49s)">
<text text-anchor="middle" x="4505.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.49s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N9 -->
<g id="edge38" class="edge">
<title>N19&#45;&gt;N9</title>
<g id="a_edge38"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.26s)">
<path fill="none" stroke="#000000" d="M1016.9263,-640.8722C983.8707,-626.8004 943.7087,-609.7033 909.4465,-595.1178"/>
<polygon fill="#000000" stroke="#000000" points="910.522,-591.7717 899.9501,-591.0751 907.7801,-598.2124 910.522,-591.7717"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.26s)">
<text text-anchor="middle" x="990.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.memmove (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1411.805,-156 1274.195,-156 1274.195,-116 1411.805,-116 1411.805,-156"/>
<text text-anchor="middle" x="1343" y="-139.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="1343" y="-123.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.26s(2.32%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N34 -->
<g id="edge108" class="edge">
<title>N19&#45;&gt;N34</title>
<g id="a_edge108"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M1153.6327,-643.9575C1156.4585,-642.9582 1159.2559,-641.9694 1162,-641 1244.5938,-611.822 1343,-650.5962 1343,-563 1343,-563 1343,-563 1343,-251 1343,-222.3888 1343,-189.7736 1343,-166.6027"/>
<polygon fill="#000000" stroke="#000000" points="1346.5001,-166.3579 1343,-156.358 1339.5001,-166.358 1346.5001,-166.3579"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="1359.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.newdefer (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="606.3618,-375 469.6382,-375 469.6382,-333 606.3618,-333 606.3618,-375"/>
<text text-anchor="middle" x="538" y="-357.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="538" y="-340.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.37s(3.30%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N25 -->
<g id="edge30" class="edge">
<title>N21&#45;&gt;N25</title>
<g id="a_edge30"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.37s)">
<path fill="none" stroke="#000000" d="M541.0923,-434.7873C540.5342,-420.2069 539.8124,-401.3498 539.2066,-385.5216"/>
<polygon fill="#000000" stroke="#000000" points="542.6891,-384.9961 538.8091,-375.1373 535.6942,-385.2639 542.6891,-384.9961"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.37s)">
<text text-anchor="middle" x="557.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N34 -->
<g id="edge89" class="edge">
<title>N21&#45;&gt;N34</title>
<g id="a_edge89"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.09s)">
<path fill="none" stroke="#000000" d="M566.4132,-434.9793C581.1337,-420.3068 599.8952,-400.7134 615,-382 633.8917,-358.595 633.1381,-348.5875 653,-326 697.2853,-275.6374 705.3119,-254.5401 766,-226 852.9887,-185.0913 1127.703,-155.4054 1264.3007,-142.7624"/>
<polygon fill="#000000" stroke="#000000" points="1264.6531,-146.2448 1274.2912,-141.8453 1264.0131,-139.2741 1264.6531,-146.2448"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.09s)">
<text text-anchor="middle" x="696.7241" y="-296.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.assertI2I (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3651.6393,-585 3554.3607,-585 3554.3607,-541 3651.6393,-541 3651.6393,-585"/>
<text text-anchor="middle" x="3603" y="-571.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="3603" y="-559.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.05s(0.45%)</text>
<text text-anchor="middle" x="3603" y="-547.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.23s(2.05%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N36 -->
<g id="edge72" class="edge">
<title>N22&#45;&gt;N36</title>
<g id="a_edge72"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.12s)">
<path fill="none" stroke="#000000" d="M2622.9342,-646.9744C2629.8791,-644.5446 2637.0358,-642.4342 2644,-641 2738.5912,-621.5197 3420.8624,-651.9419 3513,-623 3533.7488,-616.4825 3554.1437,-603.5824 3570.2585,-591.4084"/>
<polygon fill="#000000" stroke="#000000" points="3572.5489,-594.0605 3578.2745,-585.1461 3568.2394,-588.5443 3572.5489,-594.0605"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.12s)">
<text text-anchor="middle" x="3558.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="main.(*Integer).Add (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2776.7543,-581 2695.2457,-581 2695.2457,-545 2776.7543,-545 2776.7543,-581"/>
<text text-anchor="middle" x="2736" y="-564.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="2736" y="-556.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(1.25%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N54 -->
<g id="edge60" class="edge">
<title>N22&#45;&gt;N54</title>
<g id="a_edge60"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.14s)">
<path fill="none" stroke="#000000" d="M2626.6258,-646.8619C2632.4332,-644.7279 2638.3077,-642.7212 2644,-641 2682.2123,-629.4458 2705.7428,-653.0706 2732,-623 2739.4411,-614.4782 2741.2992,-602.4197 2740.9676,-591.3457"/>
<polygon fill="#000000" stroke="#000000" points="2744.437,-590.8394 2740.0894,-581.1776 2737.4629,-591.4417 2744.437,-590.8394"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.14s)">
<text text-anchor="middle" x="2755.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.convI2I (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3756.6833,-583.5 3669.3167,-583.5 3669.3167,-542.5 3756.6833,-542.5 3756.6833,-583.5"/>
<text text-anchor="middle" x="3713" y="-570.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="3713" y="-559.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.27%)</text>
<text text-anchor="middle" x="3713" y="-548.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.14s(1.25%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N57 -->
<g id="edge87" class="edge">
<title>N22&#45;&gt;N57</title>
<g id="a_edge87"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.09s)">
<path fill="none" stroke="#000000" d="M2622.9309,-646.9584C2629.8764,-644.5311 2637.034,-642.4256 2644,-641 2751.4577,-619.0086 3527.0557,-658.0195 3631,-623 3641.7275,-619.3858 3662.309,-604.3149 3680.1677,-590.1831"/>
<polygon fill="#000000" stroke="#000000" points="3682.5191,-592.784 3688.1362,-583.8007 3678.1431,-587.3204 3682.5191,-592.784"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.09s)">
<text text-anchor="middle" x="3669.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="main.(*Integer).Negate (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2904.7865,-582 2795.2135,-582 2795.2135,-544 2904.7865,-544 2904.7865,-582"/>
<text text-anchor="middle" x="2850" y="-570" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="2850" y="-560" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.089%)</text>
<text text-anchor="middle" x="2850" y="-550" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.13s(1.16%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N61 -->
<g id="edge63" class="edge">
<title>N22&#45;&gt;N61</title>
<g id="a_edge63"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.13s)">
<path fill="none" stroke="#000000" d="M2625.378,-646.8852C2631.5734,-644.6645 2637.8791,-642.6316 2644,-641 2701.2118,-625.7491 2721.6602,-646.5153 2776,-623 2794.1451,-615.1478 2811.4796,-601.5462 2824.8042,-589.2768"/>
<polygon fill="#000000" stroke="#000000" points="2827.3405,-591.6944 2832.1619,-582.2601 2822.5096,-586.6286 2827.3405,-591.6944"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.13s)">
<text text-anchor="middle" x="2814.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.mapassign1 (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1483.4844,-585 1370.5156,-585 1370.5156,-541 1483.4844,-541 1483.4844,-585"/>
<text text-anchor="middle" x="1427" y="-571.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="1427" y="-559.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.62%)</text>
<text text-anchor="middle" x="1427" y="-547.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.42s(3.75%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N24 -->
<g id="edge28" class="edge">
<title>N23&#45;&gt;N24</title>
<g id="a_edge28"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.42s)">
<path fill="none" stroke="#000000" d="M1312.6114,-648.4872C1327.1741,-641.1301 1343.1518,-632.3291 1357,-623 1370.4823,-613.9174 1384.2845,-602.5979 1396.0308,-592.2458"/>
<polygon fill="#000000" stroke="#000000" points="1398.6977,-594.5555 1403.8052,-585.273 1394.0238,-589.3444 1398.6977,-594.5555"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.42s)">
<text text-anchor="middle" x="1392.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.newarray (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1475.8809,-479 1382.1191,-479 1382.1191,-438 1475.8809,-438 1475.8809,-479"/>
<text text-anchor="middle" x="1429" y="-466.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="1429" y="-455.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.27%)</text>
<text text-anchor="middle" x="1429" y="-444.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.32s(2.86%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N28 -->
<g id="edge33" class="edge">
<title>N24&#45;&gt;N28</title>
<g id="a_edge33"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.32s)">
<path fill="none" stroke="#000000" d="M1427.4241,-540.8382C1427.7101,-525.8976 1428.0913,-505.9781 1428.4072,-489.474"/>
<polygon fill="#000000" stroke="#000000" points="1431.9116,-489.2735 1428.6037,-479.2083 1424.9129,-489.1394 1431.9116,-489.2735"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.32s)">
<text text-anchor="middle" x="1445.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N30 -->
<g id="edge112" class="edge">
<title>N24&#45;&gt;N30</title>
<g id="a_edge112"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.03s)">
<path fill="none" stroke="#000000" d="M1447.6901,-540.8124C1460.3344,-526.0568 1475.7941,-505.6539 1485,-485 1521.2244,-403.7287 1482.7404,-357.5687 1545,-294 1556.2629,-282.5003 1570.7072,-274.0757 1585.7926,-267.904"/>
<polygon fill="#000000" stroke="#000000" points="1587.1201,-271.1441 1595.2455,-264.345 1584.6536,-264.593 1587.1201,-271.1441"/>
</a>
</g>
<g id="a_edge112&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.03s)">
<text text-anchor="middle" x="1520.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N16 -->
<g id="edge37" class="edge">
<title>N26&#45;&gt;N16</title>
<g id="a_edge37"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.26s)">
<path fill="none" stroke="#000000" d="M1704.2658,-645.4019C1697.3451,-611.131 1689.8074,-546.8958 1717.5518,-503 1753.4458,-446.2102 1786.6472,-451.292 1851,-432 2005.2353,-385.7626 2495.436,-363.1573 2673.5308,-356.3152"/>
<polygon fill="#000000" stroke="#000000" points="2673.6853,-359.812 2683.5451,-355.9345 2673.4193,-352.817 2673.6853,-359.812"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.26s)">
<text text-anchor="middle" x="1734.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N7 -->
<g id="edge35" class="edge">
<title>N28&#45;&gt;N7</title>
<g id="a_edge35"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.29s)">
<path fill="none" stroke="#000000" d="M1428.3662,-437.8934C1428.0463,-386.6434 1435.1794,-253.3 1514,-194 1550.6852,-166.4002 2942.7285,-143.4376 3335.6711,-137.4956"/>
<polygon fill="#000000" stroke="#000000" points="3335.9404,-140.992 3345.8865,-137.3415 3335.8348,-133.9928 3335.9404,-140.992"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.29s)">
<text text-anchor="middle" x="1465.7241" y="-296.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.getitab (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3659.5679,-485 3546.4321,-485 3546.4321,-432 3659.5679,-432 3659.5679,-485"/>
<text text-anchor="middle" x="3603" y="-469" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="3603" y="-454" font-family="Times,serif" font-size="15.00" fill="#000000">0.22s(1.96%)</text>
<text text-anchor="middle" x="3603" y="-439" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.31s(2.77%)</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime/internal/atomic.Loadp (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3690.6993,-372 3515.3007,-372 3515.3007,-336 3690.6993,-336 3690.6993,-372"/>
<text text-anchor="middle" x="3603" y="-356.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime/internal/atomic.Loadp</text>
<text text-anchor="middle" x="3603" y="-343.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.09s(0.8%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N79 -->
<g id="edge90" class="edge">
<title>N29&#45;&gt;N79</title>
<g id="a_edge90"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.09s)">
<path fill="none" stroke="#000000" d="M3603,-431.8599C3603,-416.6289 3603,-397.5408 3603,-382.0765"/>
<polygon fill="#000000" stroke="#000000" points="3606.5001,-382.0413 3603,-372.0413 3599.5001,-382.0414 3606.5001,-382.0413"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.09s)">
<text text-anchor="middle" x="3619.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N34 -->
<g id="edge85" class="edge">
<title>N30&#45;&gt;N34</title>
<g id="a_edge85"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.10s)">
<path fill="none" stroke="#000000" d="M1600.2061,-225.9049C1543.6652,-206.1413 1465.4288,-178.7943 1410.1289,-159.4645"/>
<polygon fill="#000000" stroke="#000000" points="1411.0206,-156.0686 1400.4257,-156.0728 1408.7107,-162.6765 1411.0206,-156.0686"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.10s)">
<text text-anchor="middle" x="1563.7241" y="-196.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N36 -->
<g id="edge104" class="edge">
<title>N31&#45;&gt;N36</title>
<g id="a_edge104"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.05s)">
<path fill="none" stroke="#000000" d="M3557.1904,-648.484C3564.3747,-645.6647 3571.8165,-643.0419 3579,-641 3604.3036,-633.8076 3678.8714,-642.9653 3696,-623 3700.0515,-618.2775 3699.2826,-614.2859 3696,-609 3695.8312,-608.7282 3677.4742,-599.6273 3657.1154,-589.5922"/>
<polygon fill="#000000" stroke="#000000" points="3658.5155,-586.3803 3647.9982,-585.1013 3655.4224,-592.6598 3658.5155,-586.3803"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.05s)">
<text text-anchor="middle" x="3714.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="main.Integer.Multiply (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3887.0463,-583.5 3774.9537,-583.5 3774.9537,-542.5 3887.0463,-542.5 3887.0463,-583.5"/>
<text text-anchor="middle" x="3831" y="-570.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="3831" y="-559.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.27%)</text>
<text text-anchor="middle" x="3831" y="-548.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.16s(1.43%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N47 -->
<g id="edge55" class="edge">
<title>N31&#45;&gt;N47</title>
<g id="a_edge55"><a xlink:title="main.executeMultiply ... main.Integer.Multiply (0.16s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3556.3671,-648.3715C3563.7853,-645.4926 3571.5156,-642.8806 3579,-641 3664.2697,-619.5743 3697.2182,-662.0307 3776,-623 3790.1628,-615.9833 3802.449,-603.6442 3811.7949,-591.973"/>
<polygon fill="#000000" stroke="#000000" points="3814.8269,-593.7661 3818.0652,-583.6783 3809.2428,-589.5449 3814.8269,-593.7661"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="main.executeMultiply ... main.Integer.Multiply (0.16s)">
<text text-anchor="middle" x="3811.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N57 -->
<g id="edge105" class="edge">
<title>N31&#45;&gt;N57</title>
<g id="a_edge105"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.05s)">
<path fill="none" stroke="#000000" d="M3556.7654,-648.3844C3564.0688,-645.5416 3571.6588,-642.9376 3579,-641 3612.7412,-632.0944 3711.7816,-649.0515 3735,-623 3742.6703,-614.3938 3740.4898,-602.8893 3735.1914,-592.2571"/>
<polygon fill="#000000" stroke="#000000" points="3738.2138,-590.4922 3730.1552,-583.614 3732.1657,-594.0163 3738.2138,-590.4922"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.05s)">
<text text-anchor="middle" x="3755.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime._System (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="590.7699,-687 517.2301,-687 517.2301,-651 590.7699,-651 590.7699,-687"/>
<text text-anchor="middle" x="554" y="-670.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="554" y="-662.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.27s(2.41%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N9 -->
<g id="edge36" class="edge">
<title>N32&#45;&gt;N9</title>
<g id="a_edge36"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.27s)">
<path fill="none" stroke="#000000" d="M570.7959,-650.7977C584.3084,-637.2532 604.4624,-619.3832 625.5518,-609 664.2429,-589.9506 710.8309,-578.7147 750.1415,-572.1248"/>
<polygon fill="#000000" stroke="#000000" points="750.9119,-575.5461 760.2319,-570.5075 749.804,-568.6343 750.9119,-575.5461"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.27s)">
<text text-anchor="middle" x="642.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.freedefer (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="782.0176,-380.5 661.9824,-380.5 661.9824,-327.5 782.0176,-327.5 782.0176,-380.5"/>
<text text-anchor="middle" x="722" y="-364.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="722" y="-349.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.22s(1.96%)</text>
<text text-anchor="middle" x="722" y="-334.5" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.23s(2.05%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N37 -->
<g id="edge42" class="edge">
<title>N33&#45;&gt;N37</title>
<g id="a_edge42"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.23s)">
<path fill="none" stroke="#000000" d="M701.1368,-437.8542C704.4874,-424.3872 708.9543,-406.4335 712.8951,-390.5945"/>
<polygon fill="#000000" stroke="#000000" points="716.3738,-391.109 715.3918,-380.5598 709.5809,-389.4189 716.3738,-391.109"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.23s)">
<text text-anchor="middle" x="726.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.(*mheap).alloc (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="447.8526,-373 338.1474,-373 338.1474,-335 447.8526,-335 447.8526,-373"/>
<text text-anchor="middle" x="393" y="-361" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="393" y="-351" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.089%)</text>
<text text-anchor="middle" x="393" y="-341" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(1.61%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N44 -->
<g id="edge48" class="edge">
<title>N35&#45;&gt;N44</title>
<g id="a_edge48"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.18s)">
<path fill="none" stroke="#000000" d="M393,-439.3331C393,-423.645 393,-401.1973 393,-383.2627"/>
<polygon fill="#000000" stroke="#000000" points="396.5001,-383.0454 393,-373.0454 389.5001,-383.0454 396.5001,-383.0454"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.18s)">
<text text-anchor="middle" x="409.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N29 -->
<g id="edge49" class="edge">
<title>N36&#45;&gt;N29</title>
<g id="a_edge49"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.18s)">
<path fill="none" stroke="#000000" d="M3603,-540.8382C3603,-527.5976 3603,-510.4467 3603,-495.228"/>
<polygon fill="#000000" stroke="#000000" points="3606.5001,-495.0724 3603,-485.0725 3599.5001,-495.0725 3606.5001,-495.0724"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.18s)">
<text text-anchor="middle" x="3619.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="main.(*machine).popValue (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2070.4444,-477.5 1891.5556,-477.5 1891.5556,-439.5 2070.4444,-439.5 2070.4444,-477.5"/>
<text text-anchor="middle" x="1981" y="-461.5" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="1981" y="-446.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.21s(1.88%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N16 -->
<g id="edge115" class="edge">
<title>N40&#45;&gt;N16</title>
<g id="a_edge115"><a xlink:title="main.executeLessThan &#45;&gt; runtime.convT2I (0.02s)">
<path fill="none" stroke="#000000" d="M2956.7794,-648.4147C2946.724,-603.9149 2917.5407,-497.4986 2857,-432 2839.7896,-413.3802 2817.2671,-397.0918 2796.517,-384.2831"/>
<polygon fill="#000000" stroke="#000000" points="2798.1263,-381.1667 2787.7533,-379.0101 2794.5173,-387.1647 2798.1263,-381.1667"/>
</a>
</g>
<g id="a_edge115&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; runtime.convT2I (0.02s)">
<text text-anchor="middle" x="2927.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N36 -->
<g id="edge99" class="edge">
<title>N40&#45;&gt;N36</title>
<g id="a_edge99"><a xlink:title="main.executeLessThan &#45;&gt; runtime.assertI2I (0.06s)">
<path fill="none" stroke="#000000" d="M3003.8633,-648.4063C3011.7322,-645.4032 3019.9927,-642.7411 3028,-641 3058.1994,-634.4335 3559.3641,-641.66 3584,-623 3592.7787,-616.3507 3597.5901,-605.6368 3600.1972,-595.0896"/>
<polygon fill="#000000" stroke="#000000" points="3603.6545,-595.6435 3602.0791,-585.1664 3596.7771,-594.3392 3603.6545,-595.6435"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; runtime.assertI2I (0.06s)">
<text text-anchor="middle" x="3610.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N39 -->
<g id="edge110" class="edge">
<title>N40&#45;&gt;N39</title>
<g id="a_edge110"><a xlink:title="main.executeLessThan &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M2914.521,-648.3931C2907.7068,-645.7189 2900.7205,-643.1626 2894,-641 2860.1325,-630.1018 2850.1751,-632.8915 2816,-623 2797.9074,-617.7633 2794.2921,-613.4906 2776,-609 2722.1528,-595.7809 2703.8064,-612.1477 2652.5518,-591 2613.9145,-575.0582 2615.7724,-550.6102 2577,-535 2489.1701,-499.6387 2226.2471,-475.9625 2080.6904,-465.1789"/>
<polygon fill="#000000" stroke="#000000" points="2080.6466,-461.6663 2070.4171,-464.4247 2080.134,-468.6475 2080.6466,-461.6663"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="2668.7241" y="-558.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="strings.ContainsRune (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4435.4193,-583.5 4324.5807,-583.5 4324.5807,-542.5 4435.4193,-542.5 4435.4193,-583.5"/>
<text text-anchor="middle" x="4380" y="-570.7" font-family="Times,serif" font-size="11.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="4380" y="-559.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.27%)</text>
<text text-anchor="middle" x="4380" y="-548.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.20s(1.79%)</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="strings.IndexRune (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4431.6568,-480.5 4328.3432,-480.5 4328.3432,-436.5 4431.6568,-436.5 4431.6568,-480.5"/>
<text text-anchor="middle" x="4380" y="-466.9" font-family="Times,serif" font-size="12.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="4380" y="-454.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.54%)</text>
<text text-anchor="middle" x="4380" y="-442.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.17s(1.52%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N46 -->
<g id="edge52" class="edge">
<title>N41&#45;&gt;N46</title>
<g id="a_edge52"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.17s)">
<path fill="none" stroke="#000000" d="M4380,-542.3542C4380,-527.7162 4380,-507.7772 4380,-491.0149"/>
<polygon fill="#000000" stroke="#000000" points="4383.5001,-490.546 4380,-480.546 4376.5001,-490.5461 4383.5001,-490.546"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.17s)">
<text text-anchor="middle" x="4396.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N38 -->
<g id="edge51" class="edge">
<title>N44&#45;&gt;N38</title>
<g id="a_edge51"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.17s)">
<path fill="none" stroke="#000000" d="M393,-334.7733C393,-279.3567 393,-119.0282 393,-52.4866"/>
<polygon fill="#000000" stroke="#000000" points="396.5001,-52.2797 393,-42.2797 389.5001,-52.2798 396.5001,-52.2797"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.17s)">
<text text-anchor="middle" x="409.7241" y="-196.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N8 -->
<g id="edge78" class="edge">
<title>N45&#45;&gt;N8</title>
<g id="a_edge78"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.11s)">
<path fill="none" stroke="#000000" d="M2319.0585,-540.7635C2377.9158,-491.9832 2527.53,-375.9591 2675,-326 2803.2918,-282.538 3209.8767,-260.7773 3371.1517,-253.683"/>
<polygon fill="#000000" stroke="#000000" points="3371.5758,-257.168 3381.4143,-253.2369 3371.2717,-250.1746 3371.5758,-257.168"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.11s)">
<text text-anchor="middle" x="2533.4678" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.indexbytebody (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4461.4483,-372 4324.5517,-372 4324.5517,-336 4461.4483,-336 4461.4483,-372"/>
<text text-anchor="middle" x="4393" y="-356.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.indexbytebody</text>
<text text-anchor="middle" x="4393" y="-343.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(0.98%)</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N70 -->
<g id="edge84" class="edge">
<title>N46&#45;&gt;N70</title>
<g id="a_edge84"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.11s)">
<path fill="none" stroke="#000000" d="M4382.757,-436.3382C4384.7197,-420.5607 4387.3732,-399.2308 4389.4876,-382.2341"/>
<polygon fill="#000000" stroke="#000000" points="4392.9621,-382.6553 4390.7235,-372.2996 4386.0157,-381.7911 4392.9621,-382.6553"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.11s)">
<text text-anchor="middle" x="4402.4678" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N16 -->
<g id="edge73" class="edge">
<title>N47&#45;&gt;N16</title>
<g id="a_edge73"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.11s)">
<path fill="none" stroke="#000000" d="M3815.0411,-542.4788C3785.2496,-505.9732 3717.16,-430.7059 3640,-400 3601.312,-384.6041 3005.0542,-363.0409 2804.3531,-356.1835"/>
<polygon fill="#000000" stroke="#000000" points="2804.3615,-352.6819 2794.2481,-355.8393 2804.1231,-359.6778 2804.3615,-352.6819"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.11s)">
<text text-anchor="middle" x="3778.4678" y="-454.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N16 -->
<g id="edge106" class="edge">
<title>N48&#45;&gt;N16</title>
<g id="a_edge106"><a xlink:title="main.isZeroPred &#45;&gt; runtime.convT2I (0.05s)">
<path fill="none" stroke="#000000" d="M1863.7485,-649.7822C1850.4349,-604.7471 1824.9945,-491.7008 1883,-432 1937.7884,-375.6103 2482.4908,-359.2028 2673.3502,-355.1641"/>
<polygon fill="#000000" stroke="#000000" points="2673.595,-358.6599 2683.5204,-354.9536 2673.4501,-351.6614 2673.595,-358.6599"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.isZeroPred &#45;&gt; runtime.convT2I (0.05s)">
<text text-anchor="middle" x="1866.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N39 -->
<g id="edge111" class="edge">
<title>N48&#45;&gt;N39</title>
<g id="a_edge111"><a xlink:title="main.isZeroPred &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M1871.5549,-649.5875C1874.4405,-622.3782 1882.3984,-572.0783 1903.5518,-535 1914.6371,-515.5692 1932.0289,-497.7521 1947.5253,-484.2106"/>
<polygon fill="#000000" stroke="#000000" points="1950.042,-486.6658 1955.4127,-477.5331 1945.519,-481.3233 1950.042,-486.6658"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="main.isZeroPred &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="1920.7241" y="-558.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.mcall (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="655.7699,-1087 582.2301,-1087 582.2301,-1051 655.7699,-1051 655.7699,-1087"/>
<text text-anchor="middle" x="619" y="-1070.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="619" y="-1062.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.16s(1.43%)</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.findrunnable (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="697.1505,-1001 596.8495,-1001 596.8495,-963 697.1505,-963 697.1505,-1001"/>
<text text-anchor="middle" x="647" y="-989" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="647" y="-979" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.089%)</text>
<text text-anchor="middle" x="647" y="-969" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.14s(1.25%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N58 -->
<g id="edge94" class="edge">
<title>N49&#45;&gt;N58</title>
<g id="a_edge94"><a xlink:title="runtime.mcall ... runtime.findrunnable (0.08s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M624.8016,-1050.9735C628.5289,-1039.3924 633.4532,-1024.0919 637.7166,-1010.8447"/>
<polygon fill="#000000" stroke="#000000" points="641.0854,-1011.8018 640.8174,-1001.2103 634.422,-1009.6572 641.0854,-1011.8018"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.mcall ... runtime.findrunnable (0.08s)">
<text text-anchor="middle" x="651.7241" y="-1021.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N39 -->
<g id="edge113" class="edge">
<title>N50&#45;&gt;N39</title>
<g id="a_edge113"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M1996.907,-646.8598C1978.0423,-633.3475 1956.9494,-614.2069 1946.5518,-591 1931.0975,-556.5068 1948.1357,-513.739 1963.2621,-486.2867"/>
<polygon fill="#000000" stroke="#000000" points="1966.3086,-488.0099 1968.2689,-477.598 1960.2435,-484.5149 1966.3086,-488.0099"/>
</a>
</g>
<g id="a_edge113&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="1963.7241" y="-558.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N69 -->
<g id="edge107" class="edge">
<title>N50&#45;&gt;N69</title>
<g id="a_edge107"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M1973.8626,-646.9924C1914.7648,-622.8149 1825.1555,-579.0056 1766.5518,-517 1729.1682,-477.4463 1700.4428,-420.466 1684.9095,-385.4114"/>
<polygon fill="#000000" stroke="#000000" points="1688.076,-383.9162 1680.8819,-376.1383 1681.6555,-386.7049 1688.076,-383.9162"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="1783.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.stopm (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="683.7699,-913 610.2301,-913 610.2301,-877 683.7699,-877 683.7699,-913"/>
<text text-anchor="middle" x="647" y="-896.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="647" y="-888.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(1.34%)</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.notesleep (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="683.9781,-805 610.0219,-805 610.0219,-769 683.9781,-769 683.9781,-805"/>
<text text-anchor="middle" x="647" y="-788.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notesleep</text>
<text text-anchor="middle" x="647" y="-780.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.98%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N73 -->
<g id="edge81" class="edge">
<title>N52&#45;&gt;N73</title>
<g id="a_edge81"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.11s)">
<path fill="none" stroke="#000000" d="M647,-876.6793C647,-859.821 647,-834.5651 647,-815.147"/>
<polygon fill="#000000" stroke="#000000" points="650.5001,-815.0501 647,-805.0502 643.5001,-815.0502 650.5001,-815.0501"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.11s)">
<text text-anchor="middle" x="663.4678" y="-847.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.usleep (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1307.3107,-476.5 1208.6893,-476.5 1208.6893,-440.5 1307.3107,-440.5 1307.3107,-476.5"/>
<text text-anchor="middle" x="1258" y="-461.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="1258" y="-447.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.15s(1.34%)</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="main.Integer.Add (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2785.4839,-479 2692.5161,-479 2692.5161,-438 2785.4839,-438 2785.4839,-479"/>
<text text-anchor="middle" x="2739" y="-466.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="2739" y="-455.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.27%)</text>
<text text-anchor="middle" x="2739" y="-444.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.14s(1.25%)</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N55 -->
<g id="edge58" class="edge">
<title>N54&#45;&gt;N55</title>
<g id="a_edge58"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.14s)">
<path fill="none" stroke="#000000" d="M2736.5226,-544.7975C2736.9604,-529.5461 2737.595,-507.4397 2738.1124,-489.4196"/>
<polygon fill="#000000" stroke="#000000" points="2741.6125,-489.461 2738.401,-479.3647 2734.6154,-489.2601 2741.6125,-489.461"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.14s)">
<text text-anchor="middle" x="2753.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N16 -->
<g id="edge96" class="edge">
<title>N55&#45;&gt;N16</title>
<g id="a_edge96"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.07s)">
<path fill="none" stroke="#000000" d="M2739,-437.8542C2739,-423.9968 2739,-405.3889 2739,-389.2227"/>
<polygon fill="#000000" stroke="#000000" points="2742.5001,-389.0262 2739,-379.0262 2735.5001,-389.0262 2742.5001,-389.0262"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.07s)">
<text text-anchor="middle" x="2755.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N69 -->
<g id="edge109" class="edge">
<title>N55&#45;&gt;N69</title>
<g id="a_edge109"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M2692.0634,-443.781C2676.018,-439.2934 2657.8639,-434.8086 2641,-432 2521.2967,-412.0638 2489.554,-423.2077 2368.5518,-414 2133.3527,-396.1024 1853.8424,-370.8016 1732.8346,-359.6514"/>
<polygon fill="#000000" stroke="#000000" points="1732.9422,-356.1465 1722.6629,-358.713 1732.2991,-363.1169 1732.9422,-356.1465"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="2384.7241" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N41 -->
<g id="edge61" class="edge">
<title>N56&#45;&gt;N41</title>
<g id="a_edge61"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.14s)">
<path fill="none" stroke="#000000" d="M4365.1354,-650.5362C4367.7916,-634.894 4371.655,-612.1429 4374.7773,-593.7556"/>
<polygon fill="#000000" stroke="#000000" points="4378.2457,-594.2369 4376.4693,-583.792 4371.3444,-593.0649 4378.2457,-594.2369"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.14s)">
<text text-anchor="middle" x="4388.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N29 -->
<g id="edge77" class="edge">
<title>N57&#45;&gt;N29</title>
<g id="a_edge77"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.11s)">
<path fill="none" stroke="#000000" d="M3691.2675,-542.3542C3676.1467,-527.9894 3655.6524,-508.5197 3638.2177,-491.9569"/>
<polygon fill="#000000" stroke="#000000" points="3640.6183,-489.4098 3630.9577,-485.0598 3635.7971,-494.4848 3640.6183,-489.4098"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.11s)">
<text text-anchor="middle" x="3677.4678" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N52 -->
<g id="edge64" class="edge">
<title>N58&#45;&gt;N52</title>
<g id="a_edge64"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.13s)">
<path fill="none" stroke="#000000" d="M647,-962.6919C647,-951.1154 647,-936.1873 647,-923.2967"/>
<polygon fill="#000000" stroke="#000000" points="650.5001,-923.066 647,-913.0661 643.5001,-923.0661 650.5001,-923.066"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.13s)">
<text text-anchor="middle" x="663.7241" y="-933.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.morestack (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="753.7582,-1429 678.2418,-1429 678.2418,-1393 753.7582,-1393 753.7582,-1429"/>
<text text-anchor="middle" x="716" y="-1412.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="716" y="-1404.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(1.25%)</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.newstack (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="759.3108,-1261 672.6892,-1261 672.6892,-1223 759.3108,-1223 759.3108,-1261"/>
<text text-anchor="middle" x="716" y="-1249" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="716" y="-1239" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.089%)</text>
<text text-anchor="middle" x="716" y="-1229" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.14s(1.25%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N60 -->
<g id="edge62" class="edge">
<title>N59&#45;&gt;N60</title>
<g id="a_edge62"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.14s)">
<path fill="none" stroke="#000000" d="M716,-1392.914C716,-1363.8216 716,-1306.3559 716,-1271.3382"/>
<polygon fill="#000000" stroke="#000000" points="719.5001,-1271.2475 716,-1261.2476 712.5001,-1271.2476 719.5001,-1271.2475"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.14s)">
<text text-anchor="middle" x="732.7241" y="-1281.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.gopreempt_m (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="759.817,-1173 672.183,-1173 672.183,-1137 759.817,-1137 759.817,-1173"/>
<text text-anchor="middle" x="716" y="-1156.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="716" y="-1148.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(1.16%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N62 -->
<g id="edge66" class="edge">
<title>N60&#45;&gt;N62</title>
<g id="a_edge66"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.13s)">
<path fill="none" stroke="#000000" d="M716,-1222.6919C716,-1211.1154 716,-1196.1873 716,-1183.2967"/>
<polygon fill="#000000" stroke="#000000" points="719.5001,-1183.066 716,-1173.0661 712.5001,-1183.0661 719.5001,-1183.066"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.13s)">
<text text-anchor="middle" x="732.7241" y="-1193.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N16 -->
<g id="edge68" class="edge">
<title>N61&#45;&gt;N16</title>
<g id="a_edge68"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.12s)">
<path fill="none" stroke="#000000" d="M2843.6936,-543.8419C2832.7802,-512.2284 2808.3952,-447.8753 2776,-400 2773.13,-395.7585 2769.9707,-391.4202 2766.7444,-387.1846"/>
<polygon fill="#000000" stroke="#000000" points="2769.4325,-384.9404 2760.5159,-379.2181 2763.9179,-389.2519 2769.4325,-384.9404"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.12s)">
<text text-anchor="middle" x="2836.7241" y="-454.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.goschedImpl (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="758.2073,-1087 673.7927,-1087 673.7927,-1051 758.2073,-1051 758.2073,-1087"/>
<text text-anchor="middle" x="716" y="-1070.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="716" y="-1062.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(1.16%)</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N63 -->
<g id="edge65" class="edge">
<title>N62&#45;&gt;N63</title>
<g id="a_edge65"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.13s)">
<path fill="none" stroke="#000000" d="M716,-1136.7616C716,-1125.3597 716,-1110.4342 716,-1097.494"/>
<polygon fill="#000000" stroke="#000000" points="719.5001,-1097.2121 716,-1087.2121 712.5001,-1097.2121 719.5001,-1097.2121"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.13s)">
<text text-anchor="middle" x="732.7241" y="-1107.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N58 -->
<g id="edge101" class="edge">
<title>N63&#45;&gt;N58</title>
<g id="a_edge101"><a xlink:title="runtime.goschedImpl ... runtime.findrunnable (0.06s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M701.7032,-1050.9735C692.1579,-1038.9383 679.427,-1022.8862 668.6486,-1009.296"/>
<polygon fill="#000000" stroke="#000000" points="671.192,-1006.8704 662.2358,-1001.2103 665.7075,-1011.2202 671.192,-1006.8704"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="runtime.goschedImpl ... runtime.findrunnable (0.06s)">
<text text-anchor="middle" x="702.7241" y="-1021.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.osyield (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1294.7699,-581 1221.2301,-581 1221.2301,-545 1294.7699,-545 1294.7699,-581"/>
<text text-anchor="middle" x="1258" y="-564.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="1258" y="-556.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(1.16%)</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N53 -->
<g id="edge67" class="edge">
<title>N64&#45;&gt;N53</title>
<g id="a_edge67"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.13s)">
<path fill="none" stroke="#000000" d="M1258,-544.7975C1258,-528.8617 1258,-505.442 1258,-487.0195"/>
<polygon fill="#000000" stroke="#000000" points="1261.5001,-486.8445 1258,-476.8445 1254.5001,-486.8446 1261.5001,-486.8445"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.13s)">
<text text-anchor="middle" x="1274.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N16 -->
<g id="edge102" class="edge">
<title>N65&#45;&gt;N16</title>
<g id="a_edge102"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.05s)">
<path fill="none" stroke="#000000" d="M2485.1289,-542.4346C2517.8831,-509.6731 2585.6464,-444.771 2651,-400 2659.2132,-394.3735 2668.1991,-388.9446 2677.191,-383.9105"/>
<polygon fill="#000000" stroke="#000000" points="2679.057,-386.8795 2686.1566,-379.0153 2675.7024,-380.7356 2679.057,-386.8795"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.05s)">
<text text-anchor="middle" x="2621.7241" y="-454.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N39 -->
<g id="edge103" class="edge">
<title>N66&#45;&gt;N39</title>
<g id="a_edge103"><a xlink:title="main.(*machine).loadPredefinedValues.func4 &#45;&gt; main.(*machine).popValue (0.05s)">
<path fill="none" stroke="#000000" d="M2079.4907,-540.8382C2059.7514,-524.3362 2032.7465,-501.76 2012.0058,-484.4209"/>
<polygon fill="#000000" stroke="#000000" points="2014.0261,-481.5479 2004.1091,-477.8192 2009.5363,-486.9184 2014.0261,-481.5479"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func4 &#45;&gt; main.(*machine).popValue (0.05s)">
<text text-anchor="middle" x="2063.7241" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.(*mheap).alloc_m (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="923.1314,-373 800.8686,-373 800.8686,-335 923.1314,-335 923.1314,-373"/>
<text text-anchor="middle" x="862" y="-361" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="862" y="-351" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.089%)</text>
<text text-anchor="middle" x="862" y="-341" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(0.98%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N68 -->
<g id="edge76" class="edge">
<title>N67&#45;&gt;N68</title>
<g id="a_edge76"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.11s)">
<path fill="none" stroke="#000000" d="M838.8772,-440.2975C843.1144,-424.4837 849.3263,-401.3 854.2448,-382.9435"/>
<polygon fill="#000000" stroke="#000000" points="857.6874,-383.6181 856.8949,-373.053 850.9259,-381.8064 857.6874,-383.6181"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.11s)">
<text text-anchor="middle" x="865.4678" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.(*mheap).allocSpanLocked (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="949.2218,-271.5 774.7782,-271.5 774.7782,-230.5 949.2218,-230.5 949.2218,-271.5"/>
<text text-anchor="middle" x="862" y="-258.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).allocSpanLocked</text>
<text text-anchor="middle" x="862" y="-247.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.36%)</text>
<text text-anchor="middle" x="862" y="-236.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(0.8%)</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N77 -->
<g id="edge88" class="edge">
<title>N68&#45;&gt;N77</title>
<g id="a_edge88"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.09s)">
<path fill="none" stroke="#000000" d="M862,-334.6265C862,-319.7628 862,-298.9546 862,-281.8134"/>
<polygon fill="#000000" stroke="#000000" points="865.5001,-281.7003 862,-271.7003 858.5001,-281.7004 865.5001,-281.7003"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.09s)">
<text text-anchor="middle" x="878.7241" y="-296.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N30 -->
<g id="edge100" class="edge">
<title>N69&#45;&gt;N30</title>
<g id="a_edge100"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.06s)">
<path fill="none" stroke="#000000" d="M1672,-331.9039C1672,-318.6483 1672,-301.4842 1672,-286.3782"/>
<polygon fill="#000000" stroke="#000000" points="1675.5001,-286.3223 1672,-276.3224 1668.5001,-286.3224 1675.5001,-286.3223"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.06s)">
<text text-anchor="middle" x="1688.7241" y="-296.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.lock (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="994.3465,-688 913.6535,-688 913.6535,-650 994.3465,-650 994.3465,-688"/>
<text text-anchor="middle" x="954" y="-676" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="954" y="-666" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="954" y="-656" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(0.98%)</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N64 -->
<g id="edge93" class="edge">
<title>N71&#45;&gt;N64</title>
<g id="a_edge93"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.08s)">
<path fill="none" stroke="#000000" d="M985.767,-649.8913C991.7152,-646.6945 997.9628,-643.5825 1004,-641 1073.9799,-611.0645 1159.2682,-587.3149 1211.0602,-574.2131"/>
<polygon fill="#000000" stroke="#000000" points="1212.1066,-577.5592 1220.9576,-571.736 1210.407,-570.7687 1212.1066,-577.5592"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.08s)">
<text text-anchor="middle" x="1103.7241" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.semasleep (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="684.7582,-687 609.2418,-687 609.2418,-651 684.7582,-651 684.7582,-687"/>
<text text-anchor="middle" x="647" y="-670.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep</text>
<text text-anchor="middle" x="647" y="-662.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.98%)</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N74 -->
<g id="edge79" class="edge">
<title>N73&#45;&gt;N74</title>
<g id="a_edge79"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.11s)">
<path fill="none" stroke="#000000" d="M647,-768.8211C647,-749.7094 647,-719.3891 647,-697.1751"/>
<polygon fill="#000000" stroke="#000000" points="650.5001,-697.0059 647,-687.0059 643.5001,-697.006 650.5001,-697.0059"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.11s)">
<text text-anchor="middle" x="663.4678" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N9 -->
<g id="edge80" class="edge">
<title>N74&#45;&gt;N9</title>
<g id="a_edge80"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.11s)">
<path fill="none" stroke="#000000" d="M650.8643,-650.7803C654.6153,-637.4085 661.6235,-619.7705 674.0645,-609 686.2389,-598.4603 718.1342,-588.3777 750.2682,-580.3524"/>
<polygon fill="#000000" stroke="#000000" points="751.3377,-583.6944 760.2269,-577.9297 749.683,-576.8928 751.3377,-583.6944"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.11s)">
<text text-anchor="middle" x="691.4678" y="-611.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N71 -->
<g id="edge97" class="edge">
<title>N75&#45;&gt;N71</title>
<g id="a_edge97"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.07s)">
<path fill="none" stroke="#000000" d="M2357.1567,-782.8966C2257.4184,-774.6799 2023.1103,-756.2078 1826,-747 1662.9181,-739.3818 1251.9513,-759.4255 1091.5518,-729 1057.5491,-722.5502 1021.7978,-706.6386 995.2679,-692.8214"/>
<polygon fill="#000000" stroke="#000000" points="996.7584,-689.6498 986.2865,-688.0403 993.4691,-695.8289 996.7584,-689.6498"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.07s)">
<text text-anchor="middle" x="1108.7241" y="-717.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N9 -->
<g id="edge98" class="edge">
<title>N78&#45;&gt;N9</title>
<g id="a_edge98"><a xlink:title="runtime.markroot &#45;&gt; runtime.systemstack (0.07s)">
<path fill="none" stroke="#000000" d="M1744.7425,-786.8132C1567.4308,-785.522 797.3985,-775.4064 729.5518,-697 713.2657,-678.1792 718.3982,-663.2498 729.5518,-641 738.4043,-623.3405 753.3625,-608.6556 769.2337,-596.9698"/>
<polygon fill="#000000" stroke="#000000" points="771.3959,-599.7288 777.589,-591.1324 767.3869,-593.9905 771.3959,-599.7288"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="runtime.markroot &#45;&gt; runtime.systemstack (0.07s)">
<text text-anchor="middle" x="746.7241" y="-664.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion11.svg.



























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1561)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1561 4210.9971,-1561 4210.9971,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="99.1123,-1333 99.1123,-1549 759.1123,-1549 759.1123,-1333 99.1123,-1333"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="751.2843,-1541 106.9403,-1541 106.9403,-1341 751.2843,-1341 751.2843,-1541"/>
<text text-anchor="start" x="114.7764" y="-1511.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="114.7764" y="-1479.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="114.7764" y="-1447.4" font-family="Times,serif" font-size="32.00" fill="#000000">10.02s of 10.85s total (92.35%)</text>
<text text-anchor="start" x="114.7764" y="-1415.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 69 nodes (cum &lt;= 0.05s)</text>
<text text-anchor="start" x="114.7764" y="-1383.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 6 edges (freq &lt;= 0.01s)</text>
<text text-anchor="start" x="114.7764" y="-1351.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 116 (cum &gt;= 0.07s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (9.98s)">
<polygon fill="#f8f8f8" stroke="#000000" points="927.4436,-1291 688.781,-1291 688.781,-1217 927.4436,-1217 927.4436,-1291"/>
<text text-anchor="middle" x="808.1123" y="-1269.4" font-family="Times,serif" font-size="22.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="808.1123" y="-1247.4" font-family="Times,serif" font-size="22.00" fill="#000000">1.11s(10.23%)</text>
<text text-anchor="middle" x="808.1123" y="-1225.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 9.98s(91.98%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute.func11 (9.95s)">
<polygon fill="#f8f8f8" stroke="#000000" points="591.9593,-1164 392.2653,-1164 392.2653,-1114 591.9593,-1114 591.9593,-1164"/>
<text text-anchor="middle" x="492.1123" y="-1148.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).execute.func11</text>
<text text-anchor="middle" x="492.1123" y="-1134.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.15s(1.38%)</text>
<text text-anchor="middle" x="492.1123" y="-1120.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 9.95s(91.71%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge12" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge12"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func11 (0.86s)">
<path fill="none" stroke="#000000" d="M717.7733,-1216.9005C690.9781,-1206.2429 661.4792,-1194.8474 634.1123,-1185 617.3448,-1178.9666 599.3394,-1172.8554 581.971,-1167.1436"/>
<polygon fill="#000000" stroke="#000000" points="582.9919,-1163.7951 572.3993,-1164.0145 580.8167,-1170.4486 582.9919,-1163.7951"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func11 (0.86s)">
<text text-anchor="middle" x="684.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.86s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).execute.func8 (9.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="752.4408,-1158 609.7838,-1158 609.7838,-1120 752.4408,-1120 752.4408,-1158"/>
<text text-anchor="middle" x="681.1123" y="-1146" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).execute.func8</text>
<text text-anchor="middle" x="681.1123" y="-1136" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="681.1123" y="-1126" font-family="Times,serif" font-size="10.00" fill="#000000">of 9.33s(85.99%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N3 -->
<g id="edge52" class="edge">
<title>N1&#45;&gt;N3</title>
<g id="a_edge52"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func8 (0.17s)">
<path fill="none" stroke="#000000" d="M767.2296,-1216.9803C748.491,-1200.0122 726.7296,-1180.307 709.7706,-1164.9504"/>
<polygon fill="#000000" stroke="#000000" points="712.1066,-1162.344 702.3447,-1158.2261 707.408,-1167.5328 712.1066,-1162.344"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func8 (0.17s)">
<text text-anchor="middle" x="761.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.(*machine).loadLoopWords.func1 (6.72s)">
<polygon fill="#f8f8f8" stroke="#000000" points="374.0947,-1161 166.1299,-1161 166.1299,-1117 374.0947,-1117 374.0947,-1161"/>
<text text-anchor="middle" x="270.1123" y="-1147.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="270.1123" y="-1135.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.65%)</text>
<text text-anchor="middle" x="270.1123" y="-1123.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 6.72s(61.94%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N5 -->
<g id="edge55" class="edge">
<title>N1&#45;&gt;N5</title>
<g id="a_edge55"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.16s)">
<path fill="none" stroke="#000000" d="M688.8292,-1242.1978C615.89,-1233.5151 521.0794,-1219.5957 438.6641,-1199 403.0253,-1190.0938 364.3425,-1176.6113 333.0343,-1164.6814"/>
<polygon fill="#000000" stroke="#000000" points="334.156,-1161.3629 323.5662,-1161.0357 331.6406,-1167.8953 334.156,-1161.3629"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.16s)">
<text text-anchor="middle" x="455.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.newobject (2.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="561.1892,-764 441.0354,-764 441.0354,-714 561.1892,-714 561.1892,-764"/>
<text text-anchor="middle" x="501.1123" y="-748.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="501.1123" y="-734.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.19s(1.75%)</text>
<text text-anchor="middle" x="501.1123" y="-720.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 2.91s(26.82%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N8 -->
<g id="edge13" class="edge">
<title>N1&#45;&gt;N8</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.84s)">
<path fill="none" stroke="#000000" d="M688.5964,-1238.5894C604.5329,-1227.6914 489.4164,-1212.6495 388.1123,-1199 274.8693,-1183.7418 138.1123,-1253.2663 138.1123,-1139 138.1123,-1139 138.1123,-1139 138.1123,-837.5 138.1123,-777.5434 324.8954,-752.9199 430.4936,-743.7898"/>
<polygon fill="#000000" stroke="#000000" points="431.0903,-747.2521 440.7628,-742.9285 430.5052,-740.2766 431.0903,-747.2521"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.84s)">
<text text-anchor="middle" x="154.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.84s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.(*machine).execute.func12 (1.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="957.3391,-1162.5 770.8855,-1162.5 770.8855,-1115.5 957.3391,-1115.5 957.3391,-1162.5"/>
<text text-anchor="middle" x="864.1123" y="-1148.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).execute.func12</text>
<text text-anchor="middle" x="864.1123" y="-1135.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(0.92%)</text>
<text text-anchor="middle" x="864.1123" y="-1122.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.91s(17.60%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N10 -->
<g id="edge17" class="edge">
<title>N1&#45;&gt;N10</title>
<g id="a_edge17"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func12 (0.66s)">
<path fill="none" stroke="#000000" d="M832.3818,-1216.9994C835.849,-1211.0887 839.2162,-1204.9565 842.1123,-1199 846.2364,-1190.518 850.0474,-1181.0532 853.2986,-1172.1936"/>
<polygon fill="#000000" stroke="#000000" points="856.6808,-1173.1273 856.7181,-1162.5325 850.082,-1170.7916 856.6808,-1173.1273"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func12 (0.66s)">
<text text-anchor="middle" x="864.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.66s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.NilWord.func1 (1.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1601.6299,-1161 1486.5947,-1161 1486.5947,-1117 1601.6299,-1117 1601.6299,-1161"/>
<text text-anchor="middle" x="1544.1123" y="-1147.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="1544.1123" y="-1135.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.83%)</text>
<text text-anchor="middle" x="1544.1123" y="-1123.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.52s(14.01%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N11 -->
<g id="edge20" class="edge">
<title>N1&#45;&gt;N11</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.63s)">
<path fill="none" stroke="#000000" d="M927.386,-1218.8415C930.6537,-1218.1837 933.9002,-1217.5676 937.1123,-1217 1048.9944,-1197.2301 1078.9685,-1209.3408 1192.1123,-1199 1319.0459,-1187.3989 1353.7339,-1199.0077 1477.1123,-1167 1480.224,-1166.1927 1483.3806,-1165.2685 1486.5423,-1164.2585"/>
<polygon fill="#000000" stroke="#000000" points="1487.6857,-1167.5666 1496.0025,-1161.003 1485.4079,-1160.9475 1487.6857,-1167.5666"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.63s)">
<text text-anchor="middle" x="1407.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.63s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.deferreturn (0.79s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3478.4405,-1167 3337.7841,-1167 3337.7841,-1111 3478.4405,-1111 3478.4405,-1167"/>
<text text-anchor="middle" x="3408.1123" y="-1150.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="3408.1123" y="-1134.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.38s(3.50%)</text>
<text text-anchor="middle" x="3408.1123" y="-1118.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.79s(7.28%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N16 -->
<g id="edge14" class="edge">
<title>N1&#45;&gt;N16</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.79s)">
<path fill="none" stroke="#000000" d="M927.3426,-1218.5714C930.6231,-1217.9933 933.884,-1217.4668 937.1123,-1217 1187.2955,-1180.8202 2961.7486,-1233.9089 3212.1123,-1199 3251.0944,-1193.5646 3292.9777,-1181.6264 3327.979,-1169.8189"/>
<polygon fill="#000000" stroke="#000000" points="3329.3375,-1173.0532 3337.6606,-1166.4976 3327.066,-1166.432 3329.3375,-1173.0532"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.79s)">
<text text-anchor="middle" x="3293.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.79s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.growslice (0.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="110.3371,-1162.5 -.1125,-1162.5 -.1125,-1115.5 110.3371,-1115.5 110.3371,-1162.5"/>
<text text-anchor="middle" x="55.1123" y="-1148.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="55.1123" y="-1135.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(1.01%)</text>
<text text-anchor="middle" x="55.1123" y="-1122.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.77s(7.10%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N17 -->
<g id="edge15" class="edge">
<title>N1&#45;&gt;N17</title>
<g id="a_edge15"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.77s)">
<path fill="none" stroke="#000000" d="M688.7413,-1250.8274C497.8173,-1244.8671 140.0966,-1229.7306 90.6641,-1199 80.4045,-1192.6219 72.7418,-1182.1016 67.2102,-1171.6366"/>
<polygon fill="#000000" stroke="#000000" points="70.3467,-1170.0824 62.886,-1162.5599 64.0272,-1173.0931 70.3467,-1170.0824"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.77s)">
<text text-anchor="middle" x="107.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.77s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.deferproc (0.61s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3606.0953,-1162.5 3496.1293,-1162.5 3496.1293,-1115.5 3606.0953,-1115.5 3606.0953,-1162.5"/>
<text text-anchor="middle" x="3551.1123" y="-1148.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="3551.1123" y="-1135.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(1.01%)</text>
<text text-anchor="middle" x="3551.1123" y="-1122.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.61s(5.62%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N18 -->
<g id="edge21" class="edge">
<title>N1&#45;&gt;N18</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.61s)">
<path fill="none" stroke="#000000" d="M927.3424,-1218.5699C930.6229,-1217.9923 933.884,-1217.4663 937.1123,-1217 1198.5182,-1179.2426 3051.1905,-1224.1162 3314.1123,-1199 3391.9511,-1191.5643 3412.3576,-1189.9326 3487.1123,-1167 3488.1848,-1166.671 3489.2634,-1166.3292 3490.3461,-1165.976"/>
<polygon fill="#000000" stroke="#000000" points="3491.8836,-1169.1454 3500.1552,-1162.525 3489.5604,-1162.5422 3491.8836,-1169.1454"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.61s)">
<text text-anchor="middle" x="3435.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.61s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="main.executeSubtract (0.56s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1935.6001,-1159.5 1824.6245,-1159.5 1824.6245,-1118.5 1935.6001,-1118.5 1935.6001,-1159.5"/>
<text text-anchor="middle" x="1880.1123" y="-1146.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeSubtract</text>
<text text-anchor="middle" x="1880.1123" y="-1135.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.37%)</text>
<text text-anchor="middle" x="1880.1123" y="-1124.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.56s(5.16%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N19 -->
<g id="edge22" class="edge">
<title>N1&#45;&gt;N19</title>
<g id="a_edge22"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.56s)">
<path fill="none" stroke="#000000" d="M927.3523,-1218.6365C930.6299,-1218.0392 933.8877,-1217.4911 937.1123,-1217 1109.3938,-1190.7614 1549.4735,-1229.1579 1721.1123,-1199 1758.6393,-1192.4063 1798.7665,-1177.1965 1829.3208,-1163.7415"/>
<polygon fill="#000000" stroke="#000000" points="1830.7896,-1166.9187 1838.4824,-1159.6336 1827.9256,-1160.5314 1830.7896,-1166.9187"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.56s)">
<text text-anchor="middle" x="1787.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.56s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.53s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2382.7533,-1056.5 2205.4713,-1056.5 2205.4713,-1018.5 2382.7533,-1018.5 2382.7533,-1056.5"/>
<text text-anchor="middle" x="2294.1123" y="-1044.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="2294.1123" y="-1034.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="2294.1123" y="-1024.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.53s(4.88%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N20 -->
<g id="edge23" class="edge">
<title>N1&#45;&gt;N20</title>
<g id="a_edge23"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.53s)">
<path fill="none" stroke="#000000" d="M927.3445,-1218.584C930.6244,-1218.0022 933.8847,-1217.4715 937.1123,-1217 1120.0698,-1190.2706 2417.2372,-1218.4382 2601.1123,-1199 2672.3633,-1191.4678 2713.7557,-1222.4636 2759.1123,-1167 2774.8682,-1147.7332 2774.2958,-1130.721 2759.1123,-1111 2725.106,-1066.8312 2458.6209,-1062.1727 2449.1123,-1061 2430.9089,-1058.755 2411.5486,-1056.0635 2392.9018,-1053.3162"/>
<polygon fill="#000000" stroke="#000000" points="2393.3343,-1049.8421 2382.928,-1051.8318 2392.3038,-1056.7658 2393.3343,-1049.8421"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.53s)">
<text text-anchor="middle" x="2786.8364" y="-1134.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.53s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1231.7455,-1161 1044.4791,-1161 1044.4791,-1117 1231.7455,-1117 1231.7455,-1161"/>
<text text-anchor="middle" x="1138.1123" y="-1147.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(intPusher).(main.pushInt)&#45;fm</text>
<text text-anchor="middle" x="1138.1123" y="-1135.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.65%)</text>
<text text-anchor="middle" x="1138.1123" y="-1123.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.35s(3.23%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N27 -->
<g id="edge32" class="edge">
<title>N1&#45;&gt;N27</title>
<g id="a_edge32"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.35s)">
<path fill="none" stroke="#000000" d="M927.559,-1219.6144C930.7757,-1218.7288 933.9648,-1217.8559 937.1123,-1217 968.1099,-1208.5709 976.8344,-1209.7307 1007.1123,-1199 1033.6515,-1189.5944 1062.178,-1176.8605 1085.8137,-1165.5434"/>
<polygon fill="#000000" stroke="#000000" points="1087.474,-1168.6283 1094.9516,-1161.1226 1084.4254,-1162.327 1087.474,-1168.6283"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.35s)">
<text text-anchor="middle" x="1057.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="main.(*CodeQuotation).nextWord (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1468.1875,-1158 1250.0371,-1158 1250.0371,-1120 1468.1875,-1120 1468.1875,-1158"/>
<text text-anchor="middle" x="1359.1123" y="-1142" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="1359.1123" y="-1127" font-family="Times,serif" font-size="15.00" fill="#000000">0.29s(2.67%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N31 -->
<g id="edge36" class="edge">
<title>N1&#45;&gt;N31</title>
<g id="a_edge36"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.29s)">
<path fill="none" stroke="#000000" d="M927.4324,-1219.0841C930.6864,-1218.3549 933.9175,-1217.6581 937.1123,-1217 998.9884,-1204.2542 1015.7481,-1209.0907 1078.1123,-1199 1150.9918,-1187.2079 1168.9599,-1182.6366 1241.1123,-1167 1250.7579,-1164.9096 1260.8274,-1162.646 1270.8423,-1160.3427"/>
<polygon fill="#000000" stroke="#000000" points="1271.869,-1163.6976 1280.8211,-1158.031 1270.2892,-1156.8782 1271.869,-1163.6976"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.29s)">
<text text-anchor="middle" x="1171.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2282.0811,-1161 2072.1436,-1161 2072.1436,-1117 2282.0811,-1117 2282.0811,-1161"/>
<text text-anchor="middle" x="2177.1123" y="-1147.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2177.1123" y="-1135.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.83%)</text>
<text text-anchor="middle" x="2177.1123" y="-1123.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.23s(2.12%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N38 -->
<g id="edge42" class="edge">
<title>N1&#45;&gt;N38</title>
<g id="a_edge42"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.23s)">
<path fill="none" stroke="#000000" d="M927.3492,-1218.6161C930.6277,-1218.0248 933.8865,-1217.4835 937.1123,-1217 1154.0587,-1184.4826 1706.3798,-1225.7521 1924.1123,-1199 1981.434,-1191.9571 2044.6494,-1176.9685 2093.5517,-1163.735"/>
<polygon fill="#000000" stroke="#000000" points="2094.7262,-1167.0424 2103.4485,-1161.028 2092.8793,-1160.2904 2094.7262,-1167.0424"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.23s)">
<text text-anchor="middle" x="2018.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="main.executeMultiply (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3111.4479,-1159.5 2998.7767,-1159.5 2998.7767,-1118.5 3111.4479,-1118.5 3111.4479,-1159.5"/>
<text text-anchor="middle" x="3055.1123" y="-1146.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeMultiply</text>
<text text-anchor="middle" x="3055.1123" y="-1135.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.28%)</text>
<text text-anchor="middle" x="3055.1123" y="-1124.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.23s(2.12%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N39 -->
<g id="edge43" class="edge">
<title>N1&#45;&gt;N39</title>
<g id="a_edge43"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.23s)">
<path fill="none" stroke="#000000" d="M927.3435,-1218.5775C930.6237,-1217.9975 933.8844,-1217.4691 937.1123,-1217 1149.7766,-1186.0945 2658.2295,-1228.3623 2871.1123,-1199 2924.9414,-1191.5755 2937.7591,-1184.7634 2989.1123,-1167 2992.5493,-1165.8111 2996.0615,-1164.5289 2999.587,-1163.1901"/>
<polygon fill="#000000" stroke="#000000" points="3000.8729,-1166.4454 3008.9076,-1159.5393 2998.3199,-1159.9275 3000.8729,-1166.4454"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.23s)">
<text text-anchor="middle" x="2952.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="main.executeLessThan (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1806.7071,-1159.5 1689.5175,-1159.5 1689.5175,-1118.5 1806.7071,-1118.5 1806.7071,-1159.5"/>
<text text-anchor="middle" x="1748.1123" y="-1146.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeLessThan</text>
<text text-anchor="middle" x="1748.1123" y="-1135.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.28%)</text>
<text text-anchor="middle" x="1748.1123" y="-1124.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.19s(1.75%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N44 -->
<g id="edge47" class="edge">
<title>N1&#45;&gt;N44</title>
<g id="a_edge47"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeLessThan (0.19s)">
<path fill="none" stroke="#000000" d="M927.3538,-1218.646C930.6309,-1218.0459 933.8882,-1217.4947 937.1123,-1217 1015.6627,-1204.9477 1576.004,-1221.868 1652.1123,-1199 1674.9203,-1192.147 1697.6447,-1178.3391 1715.2548,-1165.6955"/>
<polygon fill="#000000" stroke="#000000" points="1717.511,-1168.38 1723.4669,-1159.6177 1713.3467,-1162.7534 1717.511,-1168.38"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeLessThan (0.19s)">
<text text-anchor="middle" x="1700.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.ifaceeq (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2054.2379,-1162.5 1953.9867,-1162.5 1953.9867,-1115.5 2054.2379,-1115.5 2054.2379,-1162.5"/>
<text text-anchor="middle" x="2004.1123" y="-1148.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="2004.1123" y="-1135.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.14s(1.29%)</text>
<text text-anchor="middle" x="2004.1123" y="-1122.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.16s(1.47%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N49 -->
<g id="edge56" class="edge">
<title>N1&#45;&gt;N49</title>
<g id="a_edge56"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.16s)">
<path fill="none" stroke="#000000" d="M927.3508,-1218.6266C930.6288,-1218.0322 933.8871,-1217.4874 937.1123,-1217 1128.5355,-1188.0706 1616.0472,-1223.3051 1808.1123,-1199 1869.7161,-1191.2043 1885.4458,-1187.348 1944.1123,-1167 1944.825,-1166.7528 1945.5406,-1166.4999 1946.2585,-1166.2417"/>
<polygon fill="#000000" stroke="#000000" points="1947.5898,-1169.4797 1955.6686,-1162.6254 1945.0786,-1162.9456 1947.5898,-1169.4797"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.16s)">
<text text-anchor="middle" x="1903.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="main.isZeroPred (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3218.6216,-1159.5 3129.603,-1159.5 3129.603,-1118.5 3218.6216,-1118.5 3218.6216,-1159.5"/>
<text text-anchor="middle" x="3174.1123" y="-1146.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.isZeroPred</text>
<text text-anchor="middle" x="3174.1123" y="-1135.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.37%)</text>
<text text-anchor="middle" x="3174.1123" y="-1124.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.15s(1.38%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N51 -->
<g id="edge58" class="edge">
<title>N1&#45;&gt;N51</title>
<g id="a_edge58"><a xlink:title="main.(*machine).execute &#45;&gt; main.isZeroPred (0.15s)">
<path fill="none" stroke="#000000" d="M927.3432,-1218.5754C930.6235,-1217.9961 933.8843,-1217.4683 937.1123,-1217 1160.9992,-1184.5169 2748.2884,-1224.1932 2973.1123,-1199 3039.5598,-1191.5541 3057.2193,-1189.6978 3120.1123,-1167 3122.8129,-1166.0254 3125.549,-1164.9419 3128.2824,-1163.7838"/>
<polygon fill="#000000" stroke="#000000" points="3129.8432,-1166.9193 3137.5112,-1159.6081 3126.9576,-1160.5417 3129.8432,-1166.9193"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.isZeroPred (0.15s)">
<text text-anchor="middle" x="3078.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.memeqbody (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2432.3645,-1157 2299.8601,-1157 2299.8601,-1121 2432.3645,-1121 2432.3645,-1157"/>
<text text-anchor="middle" x="2366.1123" y="-1141.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2366.1123" y="-1127.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.15s(1.38%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N53 -->
<g id="edge59" class="edge">
<title>N1&#45;&gt;N53</title>
<g id="a_edge59"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.15s)">
<path fill="none" stroke="#000000" d="M927.348,-1218.6078C930.6268,-1218.019 933.886,-1217.4804 937.1123,-1217 1179.3626,-1180.9255 1794.8134,-1216.4531 2039.1123,-1199 2151.7247,-1190.9548 2181.4976,-1194.0348 2291.1123,-1167 2298.3486,-1165.2153 2305.8442,-1162.9496 2313.173,-1160.4829"/>
<polygon fill="#000000" stroke="#000000" points="2314.7496,-1163.6387 2323.0233,-1157.0208 2312.4284,-1157.0347 2314.7496,-1163.6387"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.15s)">
<text text-anchor="middle" x="2220.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="main.(*machine).execute.func1 (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2630.339,-1162.5 2449.8856,-1162.5 2449.8856,-1115.5 2630.339,-1115.5 2630.339,-1162.5"/>
<text text-anchor="middle" x="2540.1123" y="-1148.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="2540.1123" y="-1135.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(0.92%)</text>
<text text-anchor="middle" x="2540.1123" y="-1122.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.12s(1.11%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N56 -->
<g id="edge65" class="edge">
<title>N1&#45;&gt;N56</title>
<g id="a_edge65"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.12s)">
<path fill="none" stroke="#000000" d="M927.3464,-1218.5969C930.6257,-1218.0113 933.8854,-1217.4764 937.1123,-1217 1223.8106,-1174.6772 1952.3837,-1223.9587 2241.1123,-1199 2330.7973,-1191.2473 2353.2067,-1186.3938 2441.1123,-1167 2444.0693,-1166.3476 2447.0688,-1165.6589 2450.0923,-1164.9414"/>
<polygon fill="#000000" stroke="#000000" points="2450.9266,-1168.3406 2459.8067,-1162.5618 2449.2611,-1161.5416 2450.9266,-1168.3406"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.12s)">
<text text-anchor="middle" x="2371.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.eqstring (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2749.6796,-1157 2648.545,-1157 2648.545,-1121 2749.6796,-1121 2749.6796,-1157"/>
<text text-anchor="middle" x="2699.1123" y="-1141.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="2699.1123" y="-1128.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(1.01%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N59 -->
<g id="edge67" class="edge">
<title>N1&#45;&gt;N59</title>
<g id="a_edge67"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.11s)">
<path fill="none" stroke="#000000" d="M927.3454,-1218.5907C930.6251,-1218.0069 933.8851,-1217.474 937.1123,-1217 1097.0748,-1193.5031 2230.8361,-1210.4057 2392.1123,-1199 2502.5317,-1191.191 2532.812,-1197.8818 2639.1123,-1167 2644.6989,-1165.377 2650.4216,-1163.3014 2656.0083,-1161.0156"/>
<polygon fill="#000000" stroke="#000000" points="2657.4529,-1164.2041 2665.2337,-1157.0131 2654.6668,-1157.7824 2657.4529,-1164.2041"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.11s)">
<text text-anchor="middle" x="2580.5801" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="main.tryParseInt (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3319.4852,-1158 3236.7394,-1158 3236.7394,-1120 3319.4852,-1120 3319.4852,-1158"/>
<text text-anchor="middle" x="3278.1123" y="-1146" font-family="Times,serif" font-size="10.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="3278.1123" y="-1136" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="3278.1123" y="-1126" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(0.83%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N65 -->
<g id="edge76" class="edge">
<title>N1&#45;&gt;N65</title>
<g id="a_edge76"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.09s)">
<path fill="none" stroke="#000000" d="M927.3429,-1218.5732C930.6233,-1217.9946 933.8841,-1217.4675 937.1123,-1217 1174.8625,-1182.568 2860.7783,-1229.127 3099.1123,-1199 3157.7169,-1191.592 3173.1858,-1188.7361 3228.1123,-1167 3231.3559,-1165.7164 3234.649,-1164.2592 3237.9171,-1162.6999"/>
<polygon fill="#000000" stroke="#000000" points="3239.663,-1165.7389 3246.9994,-1158.0951 3236.4975,-1159.4955 3239.663,-1165.7389"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.09s)">
<text text-anchor="middle" x="3191.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="main.(*machine).execute.func7 (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2980.4408,-1158 2837.7838,-1158 2837.7838,-1120 2980.4408,-1120 2980.4408,-1158"/>
<text text-anchor="middle" x="2909.1123" y="-1146" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).execute.func7</text>
<text text-anchor="middle" x="2909.1123" y="-1136" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="2909.1123" y="-1126" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.08s(0.74%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N75 -->
<g id="edge87" class="edge">
<title>N1&#45;&gt;N75</title>
<g id="a_edge87"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (0.08s)">
<path fill="none" stroke="#000000" d="M927.3437,-1218.579C930.6239,-1217.9986 933.8845,-1217.4697 937.1123,-1217 1039.5385,-1202.0963 2699.9919,-1225.2517 2800.1123,-1199 2826.8055,-1192.001 2854.0013,-1177.0459 2874.5508,-1163.8181"/>
<polygon fill="#000000" stroke="#000000" points="2876.5152,-1166.7152 2882.93,-1158.2831 2872.6569,-1160.8745 2876.5152,-1166.7152"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (0.08s)">
<text text-anchor="middle" x="2850.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*machine).execute (9.09s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M531.9281,-1164.1004C551.9707,-1175.9247 576.9871,-1189.4868 600.6641,-1199 625.5285,-1208.9903 652.7947,-1217.7082 679.1509,-1225.0801"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="678.012,-1229.3042 688.8138,-1227.735 680.3302,-1220.8669 678.012,-1229.3042"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*machine).execute (9.09s)">
<text text-anchor="middle" x="617.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.09s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.(*CodeQuotation).cloneCode (1.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="598.8908,-1061 403.3339,-1061 403.3339,-1014 598.8908,-1014 598.8908,-1061"/>
<text text-anchor="middle" x="501.1123" y="-1046.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="501.1123" y="-1033.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.14s(1.29%)</text>
<text text-anchor="middle" x="501.1123" y="-1020.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.08s(9.95%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge16" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*CodeQuotation).cloneCode (0.71s)">
<path fill="none" stroke="#000000" d="M494.337,-1113.9101C495.4736,-1101.0922 496.8729,-1085.3107 498.1042,-1071.4243"/>
<polygon fill="#000000" stroke="#000000" points="501.6089,-1071.5253 499.0059,-1061.2552 494.6363,-1070.9069 501.6089,-1071.5253"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute.func11 &#45;&gt; main.(*CodeQuotation).cloneCode (0.71s)">
<text text-anchor="middle" x="514.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.71s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (9.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="745.4561,-1055.5 616.7685,-1055.5 616.7685,-1019.5 745.4561,-1019.5 745.4561,-1055.5"/>
<text text-anchor="middle" x="681.1123" y="-1039.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="681.1123" y="-1031.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 9.33s(85.99%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N4 -->
<g id="edge1" class="edge">
<title>N3&#45;&gt;N4</title>
<g id="a_edge1"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).executeQuotation (9.32s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M681.1123,-1119.9086C681.1123,-1104.6908 681.1123,-1083.1496 681.1123,-1065.9073"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="685.4874,-1065.8221 681.1123,-1055.8221 676.7374,-1065.8221 685.4874,-1065.8221"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).executeQuotation (9.32s)">
<text text-anchor="middle" x="697.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.32s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge2" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge2"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (9.17s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M745.6568,-1045.0061C821.1809,-1055.272 939.3535,-1076.4647 966.1123,-1111 981.3564,-1130.6742 978.7746,-1145.5728 966.1123,-1167 955.4335,-1185.0708 939.5144,-1199.643 921.8314,-1211.3098"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="919.1913,-1207.8003 913.0242,-1216.8064 923.824,-1215.2233 919.1913,-1207.8003"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (9.17s)">
<text text-anchor="middle" x="993.8364" y="-1134.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.17s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N8 -->
<g id="edge57" class="edge">
<title>N4&#45;&gt;N8</title>
<g id="a_edge57"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.16s)">
<path fill="none" stroke="#000000" d="M670.1235,-1019.2768C640.7319,-970.5358 559.954,-836.5792 521.707,-773.1529"/>
<polygon fill="#000000" stroke="#000000" points="524.545,-771.0813 516.3838,-764.3252 518.5505,-774.6961 524.545,-771.0813"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.16s)">
<text text-anchor="middle" x="610.8364" y="-881.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N1 -->
<g id="edge4" class="edge">
<title>N5&#45;&gt;N1</title>
<g id="a_edge4"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (6.56s)">
<path fill="none" stroke="#000000" stroke-width="4" d="M357.6379,-1161.0189C366.2358,-1163.0823 374.8372,-1165.1075 383.1123,-1167 481.9845,-1189.6119 594.4421,-1212.509 678.8316,-1229.134"/>
<polygon fill="#000000" stroke="#000000" stroke-width="4" points="678.2335,-1232.5834 688.7209,-1231.0789 679.5843,-1225.7149 678.2335,-1232.5834"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (6.56s)">
<text text-anchor="middle" x="539.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 6.56s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N8 -->
<g id="edge88" class="edge">
<title>N5&#45;&gt;N8</title>
<g id="a_edge88"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.08s)">
<path fill="none" stroke="#000000" d="M289.1799,-1116.8701C304.0207,-1097.3385 322.1123,-1067.3972 322.1123,-1037.5 322.1123,-1037.5 322.1123,-1037.5 322.1123,-837.5 322.1123,-785.4577 380.9078,-760.7144 431.1051,-749.0731"/>
<polygon fill="#000000" stroke="#000000" points="431.9841,-752.4638 441.0099,-746.9153 430.4941,-745.6242 431.9841,-752.4638"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.08s)">
<text text-anchor="middle" x="338.8364" y="-933.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.goexit (5.80s)">
<polygon fill="#f8f8f8" stroke="#000000" points="846.8822,-1459 769.3424,-1459 769.3424,-1423 846.8822,-1423 846.8822,-1459"/>
<text text-anchor="middle" x="808.1123" y="-1442.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="808.1123" y="-1434.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 5.80s(53.46%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N1 -->
<g id="edge5" class="edge">
<title>N6&#45;&gt;N1</title>
<g id="a_edge5"><a xlink:title="runtime.goexit ... main.(*machine).execute (5.39s)">
<path fill="none" stroke="#000000" stroke-width="3" stroke-dasharray="1,5" d="M808.1123,-1422.7292C808.1123,-1394.8892 808.1123,-1340.9273 808.1123,-1301.4997"/>
<polygon fill="#000000" stroke="#000000" stroke-width="3" points="811.6124,-1301.3069 808.1123,-1291.307 804.6124,-1301.307 811.6124,-1301.3069"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (5.39s)">
<text text-anchor="middle" x="824.8364" y="-1311.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.39s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.gcBgMarkWorker (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1046.503,-1272 945.7216,-1272 945.7216,-1236 1046.503,-1236 1046.503,-1272"/>
<text text-anchor="middle" x="996.1123" y="-1255.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="996.1123" y="-1247.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.40s(3.69%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N24 -->
<g id="edge28" class="edge">
<title>N6&#45;&gt;N24</title>
<g id="a_edge28"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.40s)">
<path fill="none" stroke="#000000" d="M826.4808,-1422.7292C860.2624,-1389.1273 932.3008,-1317.4721 970.7296,-1279.2476"/>
<polygon fill="#000000" stroke="#000000" points="973.3243,-1281.6034 977.946,-1272.0697 968.3878,-1276.6404 973.3243,-1281.6034"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.40s)">
<text text-anchor="middle" x="957.8364" y="-1311.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.mallocgc (3.71s)">
<polygon fill="#f8f8f8" stroke="#000000" points="593.2221,-664 409.0025,-664 409.0025,-584 593.2221,-584 593.2221,-664"/>
<text text-anchor="middle" x="501.1123" y="-640.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="501.1123" y="-616.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.52s(14.01%)</text>
<text text-anchor="middle" x="501.1123" y="-592.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 3.71s(34.19%)</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.heapBitsSetType (0.49s)">
<polygon fill="#f8f8f8" stroke="#000000" points="600.3185,-534 401.9061,-534 401.9061,-490 600.3185,-490 600.3185,-534"/>
<text text-anchor="middle" x="501.1123" y="-515.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="501.1123" y="-497.6" font-family="Times,serif" font-size="18.00" fill="#000000">0.49s(4.52%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N21 -->
<g id="edge24" class="edge">
<title>N7&#45;&gt;N21</title>
<g id="a_edge24"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.49s)">
<path fill="none" stroke="#000000" d="M501.1123,-583.8818C501.1123,-570.9682 501.1123,-556.8264 501.1123,-544.5284"/>
<polygon fill="#000000" stroke="#000000" points="504.6124,-544.273 501.1123,-534.273 497.6124,-544.2731 504.6124,-544.273"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.49s)">
<text text-anchor="middle" x="517.8364" y="-554.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.49s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.(*mcache).nextFree (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1563.8939,-531 1434.3307,-531 1434.3307,-493 1563.8939,-493 1563.8939,-531"/>
<text text-anchor="middle" x="1499.1123" y="-519" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="1499.1123" y="-509" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="1499.1123" y="-499" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.37s(3.41%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N25 -->
<g id="edge30" class="edge">
<title>N7&#45;&gt;N25</title>
<g id="a_edge30"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.37s)">
<path fill="none" stroke="#000000" d="M593.6588,-613.614C789.9027,-591.5907 1244.5016,-540.5735 1424.1346,-520.4143"/>
<polygon fill="#000000" stroke="#000000" points="1424.7341,-523.8691 1434.2813,-519.2756 1423.9533,-516.9128 1424.7341,-523.8691"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.37s)">
<text text-anchor="middle" x="1135.8364" y="-554.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.memclr (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3216.3308,-125.5 3103.8938,-125.5 3103.8938,-87.5 3216.3308,-87.5 3216.3308,-125.5"/>
<text text-anchor="middle" x="3160.1123" y="-109.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="3160.1123" y="-94.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.25s(2.30%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N36 -->
<g id="edge104" class="edge">
<title>N7&#45;&gt;N36</title>
<g id="a_edge104"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.06s)">
<path fill="none" stroke="#000000" d="M408.9823,-618.0028C285.0806,-607.3614 80.1123,-579.5493 80.1123,-512 80.1123,-512 80.1123,-512 80.1123,-205 80.1123,-126.8913 2644.6528,-109.3145 3093.4846,-106.8364"/>
<polygon fill="#000000" stroke="#000000" points="3093.7104,-110.3353 3103.6911,-106.7807 3093.6721,-103.3355 3093.7104,-110.3353"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.06s)">
<text text-anchor="middle" x="96.8364" y="-357.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.stkbucket (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="727.6207,-530 618.6039,-530 618.6039,-494 727.6207,-494 727.6207,-530"/>
<text text-anchor="middle" x="673.1123" y="-514.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="673.1123" y="-501.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.14s(1.29%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N55 -->
<g id="edge62" class="edge">
<title>N7&#45;&gt;N55</title>
<g id="a_edge62"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.14s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M562.7224,-583.8818C587.461,-567.773 615.1348,-549.7528 636.5857,-535.7848"/>
<polygon fill="#000000" stroke="#000000" points="638.6036,-538.6474 645.0737,-530.2577 634.7839,-532.7814 638.6036,-538.6474"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.14s)">
<text text-anchor="middle" x="624.8364" y="-554.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N7 -->
<g id="edge6" class="edge">
<title>N8&#45;&gt;N7</title>
<g id="a_edge6"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (2.72s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M501.1123,-713.7628C501.1123,-702.1715 501.1123,-687.9941 501.1123,-674.3606"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="504.6124,-674.0927 501.1123,-664.0928 497.6124,-674.0928 504.6124,-674.0927"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (2.72s)">
<text text-anchor="middle" x="517.8364" y="-684.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.72s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.systemstack (2.72s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3542.5054,-440 3403.7192,-440 3403.7192,-387 3542.5054,-387 3542.5054,-440"/>
<text text-anchor="middle" x="3473.1123" y="-424" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="3473.1123" y="-409" font-family="Times,serif" font-size="15.00" fill="#000000">0.28s(2.58%)</text>
<text text-anchor="middle" x="3473.1123" y="-394" font-family="Times,serif" font-size="15.00" fill="#000000">of 2.72s(25.07%)</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="runtime.mach_semaphore_signal (1.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3880.2726,-337 3559.952,-337 3559.952,-283 3880.2726,-283 3880.2726,-337"/>
<text text-anchor="middle" x="3720.1123" y="-314.6" font-family="Times,serif" font-size="23.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="3720.1123" y="-291.6" font-family="Times,serif" font-size="23.00" fill="#000000">1.18s(10.88%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N12 -->
<g id="edge9" class="edge">
<title>N9&#45;&gt;N12</title>
<g id="a_edge9"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (1.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3536.4002,-386.9806C3569.7163,-373.0202 3610.7725,-355.8165 3645.6167,-341.2158"/>
<polygon fill="#000000" stroke="#000000" points="3647.3979,-344.2643 3655.2683,-337.1715 3644.6926,-337.8082 3647.3979,-344.2643"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (1.09s)">
<text text-anchor="middle" x="3627.8364" y="-357.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.09s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.deferproc.func1 (0.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3082.4437,-333.5 2939.7809,-333.5 2939.7809,-286.5 3082.4437,-286.5 3082.4437,-333.5"/>
<text text-anchor="middle" x="3011.1123" y="-319.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="3011.1123" y="-306.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.12s(1.11%)</text>
<text text-anchor="middle" x="3011.1123" y="-293.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.45s(4.15%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N22 -->
<g id="edge27" class="edge">
<title>N9&#45;&gt;N22</title>
<g id="a_edge27"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.45s)">
<path fill="none" stroke="#000000" d="M3403.4446,-402.4725C3326.3639,-389.5962 3198.8025,-366.2804 3091.1123,-337 3090.3697,-336.7981 3089.6239,-336.5931 3088.8753,-336.3853"/>
<polygon fill="#000000" stroke="#000000" points="3089.6043,-332.9528 3079.0257,-333.5391 3087.6611,-339.6776 3089.6043,-332.9528"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.45s)">
<text text-anchor="middle" x="3231.8364" y="-357.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.45s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.deferreturn.func1 (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2921.7276,-330.5 2792.497,-330.5 2792.497,-289.5 2921.7276,-289.5 2921.7276,-330.5"/>
<text text-anchor="middle" x="2857.1123" y="-317.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="2857.1123" y="-306.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.28%)</text>
<text text-anchor="middle" x="2857.1123" y="-295.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.28s(2.58%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N34 -->
<g id="edge40" class="edge">
<title>N9&#45;&gt;N34</title>
<g id="a_edge40"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.28s)">
<path fill="none" stroke="#000000" d="M3403.6509,-408.8827C3299.5424,-400.8043 3097.4918,-380.6266 2931.1123,-337 2927.2781,-335.9946 2923.3636,-334.8708 2919.436,-333.6683"/>
<polygon fill="#000000" stroke="#000000" points="2920.2758,-330.262 2909.6846,-330.5394 2918.1371,-336.9273 2920.2758,-330.262"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.28s)">
<text text-anchor="middle" x="3093.8364" y="-357.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.(*mcentral).grow (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3219.9086,-329 3100.316,-329 3100.316,-291 3219.9086,-291 3219.9086,-329"/>
<text text-anchor="middle" x="3160.1123" y="-317" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="3160.1123" y="-307" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="3160.1123" y="-297" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.20s(1.84%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N41 -->
<g id="edge46" class="edge">
<title>N9&#45;&gt;N41</title>
<g id="a_edge46"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).grow (0.20s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3403.5122,-393.1631C3354.4538,-378.4676 3287.3812,-357.6478 3229.1123,-337 3225.2248,-335.6224 3221.2287,-334.1664 3217.2122,-332.6732"/>
<polygon fill="#000000" stroke="#000000" points="3218.4367,-329.3944 3207.8449,-329.1409 3215.9668,-335.9442 3218.4367,-329.3944"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).grow (0.20s)">
<text text-anchor="middle" x="3338.8364" y="-357.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.(*mheap).alloc.func1 (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4009.9096,-328 3898.315,-328 3898.315,-292 4009.9096,-292 4009.9096,-328"/>
<text text-anchor="middle" x="3954.1123" y="-311.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="3954.1123" y="-303.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.83%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N66 -->
<g id="edge84" class="edge">
<title>N9&#45;&gt;N66</title>
<g id="a_edge84"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.09s)">
<path fill="none" stroke="#000000" d="M3542.6217,-405.3003C3626.0876,-394.4104 3769.7616,-372.3275 3889.1123,-337 3894.3117,-335.461 3899.6617,-333.6442 3904.9537,-331.6923"/>
<polygon fill="#000000" stroke="#000000" points="3906.2988,-334.9249 3914.3718,-328.0636 3903.7821,-328.393 3906.2988,-334.9249"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.09s)">
<text text-anchor="middle" x="3826.8364" y="-357.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.mach_semaphore_timedwait (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3542.3898,-328 3347.8348,-328 3347.8348,-292 3542.3898,-292 3542.3898,-328"/>
<text text-anchor="middle" x="3445.1123" y="-312.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mach_semaphore_timedwait</text>
<text text-anchor="middle" x="3445.1123" y="-300.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.83%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N71 -->
<g id="edge85" class="edge">
<title>N9&#45;&gt;N71</title>
<g id="a_edge85"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3465.9016,-386.8462C3461.8467,-371.8574 3456.7891,-353.1625 3452.6778,-337.9652"/>
<polygon fill="#000000" stroke="#000000" points="3455.9966,-336.8302 3450.0065,-328.0912 3449.2395,-338.6582 3455.9966,-336.8302"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.09s)">
<text text-anchor="middle" x="3476.8364" y="-357.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.markroot.func1 (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3330.5351,-328 3237.6895,-328 3237.6895,-292 3330.5351,-292 3330.5351,-328"/>
<text text-anchor="middle" x="3284.1123" y="-311.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.markroot.func1</text>
<text text-anchor="middle" x="3284.1123" y="-303.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.83%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N73 -->
<g id="edge86" class="edge">
<title>N9&#45;&gt;N73</title>
<g id="a_edge86"><a xlink:title="runtime.systemstack &#45;&gt; runtime.markroot.func1 (0.09s)">
<path fill="none" stroke="#000000" d="M3424.4401,-386.8462C3394.0428,-370.2 3355.2982,-348.9828 3326.2251,-333.0618"/>
<polygon fill="#000000" stroke="#000000" points="3327.6005,-329.8246 3317.1484,-328.0912 3324.2383,-335.9642 3327.6005,-329.8246"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.markroot.func1 (0.09s)">
<text text-anchor="middle" x="3405.8364" y="-357.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N1 -->
<g id="edge7" class="edge">
<title>N10&#45;&gt;N1</title>
<g id="a_edge7"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; main.(*machine).execute (1.25s)">
<path fill="none" stroke="#000000" d="M826.4683,-1162.5075C819.2827,-1168.8692 812.7399,-1176.4122 808.6641,-1185 805.4859,-1191.6964 803.8118,-1199.1867 803.1004,-1206.6958"/>
<polygon fill="#000000" stroke="#000000" points="799.5957,-1206.7374 802.6761,-1216.8745 806.5896,-1207.029 799.5957,-1206.7374"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; main.(*machine).execute (1.25s)">
<text text-anchor="middle" x="825.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.25s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N14 -->
<g id="edge29" class="edge">
<title>N10&#45;&gt;N14</title>
<g id="a_edge29"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; main.(*CodeQuotation).cloneCode (0.37s)">
<path fill="none" stroke="#000000" d="M780.5476,-1115.4322C773.9926,-1113.8441 767.4573,-1112.3441 761.1123,-1111 709.4501,-1100.0559 694.675,-1106.6616 643.6641,-1093 616.4803,-1085.7197 587.3772,-1074.9576 562.6009,-1064.8434"/>
<polygon fill="#000000" stroke="#000000" points="563.9085,-1061.5967 553.33,-1061.0074 561.2321,-1068.0649 563.9085,-1061.5967"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; main.(*CodeQuotation).cloneCode (0.37s)">
<text text-anchor="middle" x="660.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="runtime.convT2I (0.93s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1221.8373,-861 1118.3873,-861 1118.3873,-814 1221.8373,-814 1221.8373,-861"/>
<text text-anchor="middle" x="1170.1123" y="-846.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1170.1123" y="-833.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(0.92%)</text>
<text text-anchor="middle" x="1170.1123" y="-820.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.93s(8.57%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N15 -->
<g id="edge48" class="edge">
<title>N10&#45;&gt;N15</title>
<g id="a_edge48"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; runtime.convT2I (0.19s)">
<path fill="none" stroke="#000000" d="M869.765,-1115.3793C883.3344,-1063.9795 922.7523,-941.5877 1003.1123,-879 1019.5715,-866.1809 1067.7773,-854.9971 1108.1913,-847.4796"/>
<polygon fill="#000000" stroke="#000000" points="1109.0604,-850.8792 1118.2741,-845.6487 1107.8096,-843.9918 1109.0604,-850.8792"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="main.(*machine).execute.func12 &#45;&gt; runtime.convT2I (0.19s)">
<text text-anchor="middle" x="937.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (1.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1652.2981,-1058 1435.9265,-1058 1435.9265,-1017 1652.2981,-1017 1652.2981,-1058"/>
<text text-anchor="middle" x="1544.1123" y="-1045.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="1544.1123" y="-1034.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.46%)</text>
<text text-anchor="middle" x="1544.1123" y="-1023.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 1.12s(10.32%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N13 -->
<g id="edge8" class="edge">
<title>N11&#45;&gt;N13</title>
<g id="a_edge8"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.12s)">
<path fill="none" stroke="#000000" d="M1544.1123,-1116.976C1544.1123,-1102.7643 1544.1123,-1084.0712 1544.1123,-1068.3848"/>
<polygon fill="#000000" stroke="#000000" points="1547.6124,-1068.0973 1544.1123,-1058.0974 1540.6124,-1068.0974 1547.6124,-1068.0973"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.12s)">
<text text-anchor="middle" x="1560.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.12s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.makemap (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1110.583,-1059.5 1007.6416,-1059.5 1007.6416,-1015.5 1110.583,-1015.5 1110.583,-1059.5"/>
<text text-anchor="middle" x="1059.1123" y="-1045.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="1059.1123" y="-1033.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.55%)</text>
<text text-anchor="middle" x="1059.1123" y="-1021.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.14s(1.29%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N54 -->
<g id="edge61" class="edge">
<title>N11&#45;&gt;N54</title>
<g id="a_edge61"><a xlink:title="main.NilWord.func1 ... runtime.makemap (0.14s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1494.7965,-1116.953C1488.9046,-1114.7487 1482.9196,-1112.7011 1477.1123,-1111 1353.2308,-1074.7119 1203.1428,-1053.6688 1120.7346,-1043.9998"/>
<polygon fill="#000000" stroke="#000000" points="1121.119,-1040.521 1110.7831,-1042.849 1120.3148,-1047.4747 1121.119,-1040.521"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="main.NilWord.func1 ... runtime.makemap (0.14s)">
<text text-anchor="middle" x="1415.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N1 -->
<g id="edge11" class="edge">
<title>N13&#45;&gt;N1</title>
<g id="a_edge11"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (0.89s)">
<path fill="none" stroke="#000000" d="M1568.5496,-1058.0039C1597.8375,-1085.0231 1639.6109,-1133.0856 1611.1123,-1167 1564.4528,-1222.5265 1048.3861,-1206.4156 937.5657,-1217.4209"/>
<polygon fill="#000000" stroke="#000000" points="936.8505,-1213.983 927.3615,-1218.6956 937.7182,-1220.929 936.8505,-1213.983"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (0.89s)">
<text text-anchor="middle" x="1637.8364" y="-1134.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.89s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N8 -->
<g id="edge60" class="edge">
<title>N13&#45;&gt;N8</title>
<g id="a_edge60"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.15s)">
<path fill="none" stroke="#000000" d="M1472.4227,-1016.9829C1281.1629,-962.2456 760.5002,-813.2352 571.151,-759.0446"/>
<polygon fill="#000000" stroke="#000000" points="571.8862,-755.6146 561.3092,-756.228 569.9601,-762.3444 571.8862,-755.6146"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.15s)">
<text text-anchor="middle" x="1051.8364" y="-881.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="main.(*machine).popValue (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1937.727,-955.5 1770.4976,-955.5 1770.4976,-919.5 1937.727,-919.5 1937.727,-955.5"/>
<text text-anchor="middle" x="1854.1123" y="-940.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="1854.1123" y="-926.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.17s(1.57%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N47 -->
<g id="edge113" class="edge">
<title>N13&#45;&gt;N47</title>
<g id="a_edge113"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M1607.9686,-1016.9012C1660.6956,-999.8925 1735.2467,-975.8437 1788.4612,-958.6778"/>
<polygon fill="#000000" stroke="#000000" points="1789.6966,-961.9569 1798.1391,-955.5559 1787.5475,-955.295 1789.6966,-961.9569"/>
</a>
</g>
<g id="a_edge113&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="1725.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N8 -->
<g id="edge10" class="edge">
<title>N14&#45;&gt;N8</title>
<g id="a_edge10"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.94s)">
<path fill="none" stroke="#000000" d="M501.1123,-1013.8277C501.1123,-961.5563 501.1123,-836.0385 501.1123,-774.3861"/>
<polygon fill="#000000" stroke="#000000" points="504.6124,-774.3538 501.1123,-764.3538 497.6124,-774.3539 504.6124,-774.3538"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (0.94s)">
<text text-anchor="middle" x="517.8364" y="-881.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.94s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N8 -->
<g id="edge18" class="edge">
<title>N15&#45;&gt;N8</title>
<g id="a_edge18"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.66s)">
<path fill="none" stroke="#000000" d="M1148.998,-813.7274C1137.0802,-802.0015 1121.1775,-788.919 1104.1123,-782 1055.8785,-762.4439 720.3472,-747.3767 571.7093,-741.5835"/>
<polygon fill="#000000" stroke="#000000" points="571.4647,-738.0716 561.3369,-741.1825 571.1942,-745.0663 571.4647,-738.0716"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.66s)">
<text text-anchor="middle" x="1143.8364" y="-784.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.66s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.typedmemmove (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2377.0549,-762.5 2233.1697,-762.5 2233.1697,-715.5 2377.0549,-715.5 2377.0549,-762.5"/>
<text text-anchor="middle" x="2305.1123" y="-748.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="2305.1123" y="-735.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.12s(1.11%)</text>
<text text-anchor="middle" x="2305.1123" y="-722.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.30s(2.76%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N30 -->
<g id="edge54" class="edge">
<title>N15&#45;&gt;N30</title>
<g id="a_edge54"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.17s)">
<path fill="none" stroke="#000000" d="M1222.2042,-832.9792C1402.7263,-817.3128 2002.4972,-765.2622 2222.9209,-746.1329"/>
<polygon fill="#000000" stroke="#000000" points="2223.4674,-749.5987 2233.1273,-745.2472 2222.8621,-742.6249 2223.4674,-749.5987"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.17s)">
<text text-anchor="middle" x="1822.8364" y="-784.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N9 -->
<g id="edge39" class="edge">
<title>N16&#45;&gt;N9</title>
<g id="a_edge39"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.28s)">
<path fill="none" stroke="#000000" d="M3408.1123,-1110.9967C3408.1123,-1090.6139 3408.1123,-1062.3464 3408.1123,-1037.5 3408.1123,-1037.5 3408.1123,-1037.5 3408.1123,-512 3408.1123,-488.014 3421.7057,-465.3668 3436.4597,-447.8499"/>
<polygon fill="#000000" stroke="#000000" points="3439.2516,-449.9772 3443.2757,-440.1763 3434.018,-445.3285 3439.2516,-449.9772"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.28s)">
<text text-anchor="middle" x="3424.8364" y="-784.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.memmove (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2369.8357,-224 2240.3889,-224 2240.3889,-186 2369.8357,-186 2369.8357,-224"/>
<text text-anchor="middle" x="2305.1123" y="-208" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="2305.1123" y="-193" font-family="Times,serif" font-size="15.00" fill="#000000">0.29s(2.67%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N32 -->
<g id="edge80" class="edge">
<title>N16&#45;&gt;N32</title>
<g id="a_edge80"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.09s)">
<path fill="none" stroke="#000000" d="M3374.8012,-1110.7928C3210.9894,-972.08 2492.4698,-363.6509 2335.4817,-230.7162"/>
<polygon fill="#000000" stroke="#000000" points="2337.4939,-227.8339 2327.6006,-224.0427 2332.9703,-233.1759 2337.4939,-227.8339"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.09s)">
<text text-anchor="middle" x="2899.8364" y="-684.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N7 -->
<g id="edge19" class="edge">
<title>N17&#45;&gt;N7</title>
<g id="a_edge19"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.64s)">
<path fill="none" stroke="#000000" d="M68.3443,-1115.183C78.2557,-1095.1009 90.1123,-1065.2732 90.1123,-1037.5 90.1123,-1037.5 90.1123,-1037.5 90.1123,-739 90.1123,-675.039 277.0416,-645.0448 398.7698,-632.2935"/>
<polygon fill="#000000" stroke="#000000" points="399.2845,-635.7592 408.8759,-631.2586 398.5713,-628.7956 399.2845,-635.7592"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.64s)">
<text text-anchor="middle" x="106.8364" y="-881.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.64s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N32 -->
<g id="edge115" class="edge">
<title>N17&#45;&gt;N32</title>
<g id="a_edge115"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.02s)">
<path fill="none" stroke="#000000" d="M50.3454,-1115.3201C46.6352,-1094.819 42.1123,-1064.3259 42.1123,-1037.5 42.1123,-1037.5 42.1123,-1037.5 42.1123,-362 42.1123,-249.7396 1837.7903,-212.8999 2230.0272,-206.1919"/>
<polygon fill="#000000" stroke="#000000" points="2230.1887,-209.6898 2240.1278,-206.0206 2230.0698,-202.6908 2230.1887,-209.6898"/>
</a>
</g>
<g id="a_edge115&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.02s)">
<text text-anchor="middle" x="58.8364" y="-684.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N9 -->
<g id="edge26" class="edge">
<title>N18&#45;&gt;N9</title>
<g id="a_edge26"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.45s)">
<path fill="none" stroke="#000000" d="M3548.9122,-1115.2338C3547.1998,-1094.6788 3545.1123,-1064.155 3545.1123,-1037.5 3545.1123,-1037.5 3545.1123,-1037.5 3545.1123,-512 3545.1123,-487.5694 3530.4979,-465.1589 3514.4375,-447.9072"/>
<polygon fill="#000000" stroke="#000000" points="3516.5133,-445.0267 3507.004,-440.355 3511.5245,-449.9371 3516.5133,-445.0267"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.45s)">
<text text-anchor="middle" x="3561.8364" y="-784.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.45s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.assertI2I (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2548.4479,-1058 2457.7767,-1058 2457.7767,-1017 2548.4479,-1017 2548.4479,-1058"/>
<text text-anchor="middle" x="2503.1123" y="-1045.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="2503.1123" y="-1034.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.28%)</text>
<text text-anchor="middle" x="2503.1123" y="-1023.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.24s(2.21%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N37 -->
<g id="edge66" class="edge">
<title>N19&#45;&gt;N37</title>
<g id="a_edge66"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.12s)">
<path fill="none" stroke="#000000" d="M1921.6536,-1118.4126C1929.2921,-1115.4088 1937.3186,-1112.7449 1945.1123,-1111 2002.9368,-1098.054 2428.896,-1126.0004 2478.1123,-1093 2486.8677,-1087.1294 2492.5957,-1077.4074 2496.3262,-1067.7267"/>
<polygon fill="#000000" stroke="#000000" points="2499.6588,-1068.7962 2499.4291,-1058.2039 2493.0032,-1066.6276 2499.6588,-1068.7962"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.12s)">
<text text-anchor="middle" x="2506.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="main.(*Integer).Add (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2004.3049,-1056.5 1905.9197,-1056.5 1905.9197,-1018.5 2004.3049,-1018.5 2004.3049,-1056.5"/>
<text text-anchor="middle" x="1955.1123" y="-1044.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="1955.1123" y="-1034.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="1955.1123" y="-1024.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.19s(1.75%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N43 -->
<g id="edge49" class="edge">
<title>N19&#45;&gt;N43</title>
<g id="a_edge49"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.19s)">
<path fill="none" stroke="#000000" d="M1895.2897,-1118.46C1906.6619,-1103.0695 1922.3406,-1081.8511 1934.7939,-1064.9975"/>
<polygon fill="#000000" stroke="#000000" points="1937.8444,-1066.7587 1940.9723,-1056.6361 1932.2146,-1062.5987 1937.8444,-1066.7587"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.19s)">
<text text-anchor="middle" x="1941.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N47 -->
<g id="edge112" class="edge">
<title>N19&#45;&gt;N47</title>
<g id="a_edge112"><a xlink:title="main.executeSubtract &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M1874.9702,-1118.2747C1871.2778,-1102.6323 1866.4748,-1080.5898 1863.6641,-1061 1859.008,-1028.5498 1856.5102,-990.9543 1855.2511,-965.8478"/>
<polygon fill="#000000" stroke="#000000" points="1858.7343,-965.4049 1854.7706,-955.5795 1851.742,-965.7322 1858.7343,-965.4049"/>
</a>
</g>
<g id="a_edge112&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="1880.8364" y="-1033.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="main.(*Integer).Negate (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1817.8988,-1056.5 1708.3258,-1056.5 1708.3258,-1018.5 1817.8988,-1018.5 1817.8988,-1056.5"/>
<text text-anchor="middle" x="1763.1123" y="-1044.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="1763.1123" y="-1034.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="1763.1123" y="-1024.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(1.01%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N58 -->
<g id="edge69" class="edge">
<title>N19&#45;&gt;N58</title>
<g id="a_edge69"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.11s)">
<path fill="none" stroke="#000000" d="M1842.0401,-1118.3407C1830.2676,-1111.0952 1817.6516,-1102.3971 1807.1768,-1093 1797.8979,-1084.6758 1789.0615,-1074.2471 1781.7707,-1064.6835"/>
<polygon fill="#000000" stroke="#000000" points="1784.5428,-1062.5455 1775.7893,-1056.5766 1778.91,-1066.7014 1784.5428,-1062.5455"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.11s)">
<text text-anchor="middle" x="1824.5801" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.convI2I (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2655.7956,-1058 2568.429,-1058 2568.429,-1017 2655.7956,-1017 2655.7956,-1058"/>
<text text-anchor="middle" x="2612.1123" y="-1045.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="2612.1123" y="-1034.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.28%)</text>
<text text-anchor="middle" x="2612.1123" y="-1023.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.10s(0.92%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N63 -->
<g id="edge98" class="edge">
<title>N19&#45;&gt;N63</title>
<g id="a_edge98"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.07s)">
<path fill="none" stroke="#000000" d="M1921.6452,-1118.3745C1929.2846,-1115.3748 1937.3135,-1112.7221 1945.1123,-1111 1980.1164,-1103.2707 2560.7435,-1113.5548 2590.1123,-1093 2598.4945,-1087.1334 2603.6834,-1077.5393 2606.8955,-1067.9645"/>
<polygon fill="#000000" stroke="#000000" points="2610.3174,-1068.7196 2609.5781,-1058.1506 2603.5651,-1066.8739 2610.3174,-1068.7196"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.07s)">
<text text-anchor="middle" x="2617.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.mapassign1 (0.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2294.5967,-959.5 2181.6279,-959.5 2181.6279,-915.5 2294.5967,-915.5 2294.5967,-959.5"/>
<text text-anchor="middle" x="2238.1123" y="-945.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="2238.1123" y="-933.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.65%)</text>
<text text-anchor="middle" x="2238.1123" y="-921.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.45s(4.15%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N23 -->
<g id="edge25" class="edge">
<title>N20&#45;&gt;N23</title>
<g id="a_edge25"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.45s)">
<path fill="none" stroke="#000000" d="M2283.3149,-1018.219C2275.4506,-1004.1755 2264.6302,-984.8534 2255.5477,-968.6347"/>
<polygon fill="#000000" stroke="#000000" points="2258.3762,-966.5222 2250.4364,-959.5073 2252.2687,-969.9425 2258.3762,-966.5222"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.45s)">
<text text-anchor="middle" x="2285.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.45s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N47 -->
<g id="edge107" class="edge">
<title>N20&#45;&gt;N47</title>
<g id="a_edge107"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.04s)">
<path fill="none" stroke="#000000" d="M2214.969,-1018.4534C2179.9182,-1009.925 2142.7911,-1000.7376 2125.6641,-996 2105.2508,-990.3534 2100.7984,-986.5466 2080.1123,-982 2021.8529,-969.1951 2005.5005,-976.2044 1947.1123,-964 1939.1678,-962.3394 1930.9073,-960.361 1922.7334,-958.244"/>
<polygon fill="#000000" stroke="#000000" points="1923.3973,-954.7988 1912.8332,-955.605 1921.5943,-961.5626 1923.3973,-954.7988"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.04s)">
<text text-anchor="middle" x="2141.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.assertI2T (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2352.004,-858 2258.2206,-858 2258.2206,-817 2352.004,-817 2352.004,-858"/>
<text text-anchor="middle" x="2305.1123" y="-845.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="2305.1123" y="-834.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.46%)</text>
<text text-anchor="middle" x="2305.1123" y="-823.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.16s(1.47%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N48 -->
<g id="edge109" class="edge">
<title>N20&#45;&gt;N48</title>
<g id="a_edge109"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M2300.8776,-1018.3225C2302.999,-1011.3827 2305.0602,-1003.4259 2306.1123,-996 2312.3548,-951.9384 2310.3113,-900.294 2307.9594,-868.2305"/>
<polygon fill="#000000" stroke="#000000" points="2311.4395,-867.8395 2307.1615,-858.1467 2304.4613,-868.3917 2311.4395,-867.8395"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="2326.8364" y="-933.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.newdefer (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3075.8939,-233 2946.3307,-233 2946.3307,-177 3075.8939,-177 3075.8939,-233"/>
<text text-anchor="middle" x="3011.1123" y="-216.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="3011.1123" y="-200.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.30s(2.76%)</text>
<text text-anchor="middle" x="3011.1123" y="-184.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.31s(2.86%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N29 -->
<g id="edge35" class="edge">
<title>N22&#45;&gt;N29</title>
<g id="a_edge35"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.31s)">
<path fill="none" stroke="#000000" d="M3011.1123,-286.436C3011.1123,-273.7858 3011.1123,-257.876 3011.1123,-243.4829"/>
<polygon fill="#000000" stroke="#000000" points="3014.6124,-243.3388 3011.1123,-233.3388 3007.6124,-243.3389 3014.6124,-243.3388"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.31s)">
<text text-anchor="middle" x="3027.8364" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N32 -->
<g id="edge114" class="edge">
<title>N22&#45;&gt;N32</title>
<g id="a_edge114"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<path fill="none" stroke="#000000" d="M2944.131,-286.4976C2939.7476,-285.2376 2935.3809,-284.0573 2931.1123,-283 2882.4097,-270.9364 2868.4124,-276.8774 2819.6641,-265 2800.3207,-260.287 2796.5944,-255.1016 2777.1123,-251 2638.8857,-221.8987 2473.9347,-211.1431 2380.165,-207.2139"/>
<polygon fill="#000000" stroke="#000000" points="2380.0578,-203.7069 2369.9247,-206.8002 2379.7752,-210.7011 2380.0578,-203.7069"/>
</a>
</g>
<g id="a_edge114&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<text text-anchor="middle" x="2835.8364" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.newarray (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2218.4133,-856.5 2131.8113,-856.5 2131.8113,-818.5 2218.4133,-818.5 2218.4133,-856.5"/>
<text text-anchor="middle" x="2175.1123" y="-844.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="2175.1123" y="-834.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="2175.1123" y="-824.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.37s(3.41%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N26 -->
<g id="edge31" class="edge">
<title>N23&#45;&gt;N26</title>
<g id="a_edge31"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.37s)">
<path fill="none" stroke="#000000" d="M2222.3143,-915.0648C2217.5068,-908.0652 2212.277,-900.2726 2207.6641,-893 2202.0688,-884.1788 2196.2176,-874.3963 2191.0442,-865.5319"/>
<polygon fill="#000000" stroke="#000000" points="2193.9749,-863.6083 2185.9374,-856.7055 2187.9159,-867.114 2193.9749,-863.6083"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.37s)">
<text text-anchor="middle" x="2223.8364" y="-881.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.gcFlushBgCredit (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3834.0508,-1158 3716.1738,-1158 3716.1738,-1120 3834.0508,-1120 3834.0508,-1158"/>
<text text-anchor="middle" x="3775.1123" y="-1146" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="3775.1123" y="-1136" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="3775.1123" y="-1126" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.15s(1.38%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N52 -->
<g id="edge64" class="edge">
<title>N24&#45;&gt;N52</title>
<g id="a_edge64"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcFlushBgCredit (0.13s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1046.5188,-1253.8305C1387.2445,-1252.5672 3347.8419,-1243.4 3609.1123,-1199 3649.6701,-1192.1077 3693.3407,-1175.944 3725.7059,-1162.1282"/>
<polygon fill="#000000" stroke="#000000" points="3727.167,-1165.3096 3734.9461,-1158.1167 3724.3794,-1158.8886 3727.167,-1165.3096"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcFlushBgCredit (0.13s)">
<text text-anchor="middle" x="3676.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.markroot (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3697.8822,-1157 3624.3424,-1157 3624.3424,-1121 3697.8822,-1121 3697.8822,-1157"/>
<text text-anchor="middle" x="3661.1123" y="-1140.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.markroot</text>
<text text-anchor="middle" x="3661.1123" y="-1132.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.83%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N72 -->
<g id="edge96" class="edge">
<title>N24&#45;&gt;N72</title>
<g id="a_edge96"><a xlink:title="runtime.gcBgMarkWorker ... runtime.markroot (0.08s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1046.543,-1253.761C1380.0638,-1252.0666 3262.6393,-1240.7013 3514.1123,-1199 3560.566,-1191.2967 3572.2484,-1186.4929 3615.1123,-1167 3618.2718,-1165.5632 3621.4824,-1163.9542 3624.6627,-1162.2533"/>
<polygon fill="#000000" stroke="#000000" points="3626.4865,-1165.243 3633.4781,-1157.2826 3623.0483,-1159.1455 3626.4865,-1165.243"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.gcBgMarkWorker ... runtime.markroot (0.08s)">
<text text-anchor="middle" x="3588.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N9 -->
<g id="edge34" class="edge">
<title>N25&#45;&gt;N9</title>
<g id="a_edge34"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.33s)">
<path fill="none" stroke="#000000" d="M1563.8185,-506.5678C1693.7308,-495.8333 1995.6129,-471.755 2249.6641,-458 2680.7443,-434.6601 3197.9494,-420.3434 3393.2407,-415.4244"/>
<polygon fill="#000000" stroke="#000000" points="3393.5029,-418.919 3403.412,-415.1694 3393.3274,-411.9212 3393.5029,-418.919"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.33s)">
<text text-anchor="middle" x="2265.8364" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N7 -->
<g id="edge33" class="edge">
<title>N26&#45;&gt;N7</title>
<g id="a_edge33"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.35s)">
<path fill="none" stroke="#000000" d="M2131.498,-834.3203C2049.5808,-828.1825 1867.176,-813.7298 1714.1123,-796 1301.2113,-748.1725 811.8396,-673.1338 603.3649,-640.2999"/>
<polygon fill="#000000" stroke="#000000" points="603.7729,-636.8211 593.3498,-638.721 602.6827,-643.7357 603.7729,-636.8211"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.35s)">
<text text-anchor="middle" x="1472.8364" y="-734.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N15 -->
<g id="edge37" class="edge">
<title>N27&#45;&gt;N15</title>
<g id="a_edge37"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.28s)">
<path fill="none" stroke="#000000" d="M1140.4653,-1116.83C1146.0049,-1064.6368 1159.8983,-933.7351 1166.5087,-871.4527"/>
<polygon fill="#000000" stroke="#000000" points="1170.0047,-871.6745 1167.5798,-861.3609 1163.0438,-870.9356 1170.0047,-871.6745"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.28s)">
<text text-anchor="middle" x="1171.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.getitab (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2612.6802,-964 2499.5444,-964 2499.5444,-911 2612.6802,-911 2612.6802,-964"/>
<text text-anchor="middle" x="2556.1123" y="-948" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="2556.1123" y="-933" font-family="Times,serif" font-size="15.00" fill="#000000">0.24s(2.21%)</text>
<text text-anchor="middle" x="2556.1123" y="-918" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.34s(3.13%)</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime/internal/atomic.Loadp (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2643.8116,-855.5 2468.413,-855.5 2468.413,-819.5 2643.8116,-819.5 2643.8116,-855.5"/>
<text text-anchor="middle" x="2556.1123" y="-840.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime/internal/atomic.Loadp</text>
<text text-anchor="middle" x="2556.1123" y="-827.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(0.92%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N64 -->
<g id="edge74" class="edge">
<title>N28&#45;&gt;N64</title>
<g id="a_edge74"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.10s)">
<path fill="none" stroke="#000000" d="M2556.1123,-910.9644C2556.1123,-897.0395 2556.1123,-879.9744 2556.1123,-865.7975"/>
<polygon fill="#000000" stroke="#000000" points="2559.6124,-865.6192 2556.1123,-855.6192 2552.6124,-865.6192 2559.6124,-865.6192"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.getitab &#45;&gt; runtime/internal/atomic.Loadp (0.10s)">
<text text-anchor="middle" x="2572.8364" y="-881.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N32 -->
<g id="edge63" class="edge">
<title>N30&#45;&gt;N32</title>
<g id="a_edge63"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.14s)">
<path fill="none" stroke="#000000" d="M2305.1123,-715.2131C2305.1123,-691.9576 2305.1123,-655.5451 2305.1123,-624 2305.1123,-624 2305.1123,-624 2305.1123,-310 2305.1123,-284.5418 2305.1123,-255.6116 2305.1123,-234.574"/>
<polygon fill="#000000" stroke="#000000" points="2308.6124,-234.3523 2305.1123,-224.3524 2301.6124,-234.3524 2308.6124,-234.3523"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.14s)">
<text text-anchor="middle" x="2321.8364" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime._System (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3509.8822,-530 3436.3424,-530 3436.3424,-494 3509.8822,-494 3509.8822,-530"/>
<text text-anchor="middle" x="3473.1123" y="-513.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="3473.1123" y="-505.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.28s(2.58%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N9 -->
<g id="edge38" class="edge">
<title>N33&#45;&gt;N9</title>
<g id="a_edge38"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.28s)">
<path fill="none" stroke="#000000" d="M3473.1123,-493.9336C3473.1123,-481.8668 3473.1123,-465.5573 3473.1123,-450.7788"/>
<polygon fill="#000000" stroke="#000000" points="3476.6124,-450.3708 3473.1123,-440.3708 3469.6124,-450.3708 3476.6124,-450.3708"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.28s)">
<text text-anchor="middle" x="3489.8364" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.freedefer (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2917.1299,-224 2797.0947,-224 2797.0947,-186 2917.1299,-186 2917.1299,-224"/>
<text text-anchor="middle" x="2857.1123" y="-208" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="2857.1123" y="-193" font-family="Times,serif" font-size="15.00" fill="#000000">0.25s(2.30%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N35 -->
<g id="edge41" class="edge">
<title>N34&#45;&gt;N35</title>
<g id="a_edge41"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.25s)">
<path fill="none" stroke="#000000" d="M2857.1123,-289.2554C2857.1123,-273.6154 2857.1123,-251.9526 2857.1123,-234.5094"/>
<polygon fill="#000000" stroke="#000000" points="2860.6124,-234.2853 2857.1123,-224.2854 2853.6124,-234.2854 2860.6124,-234.2853"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.25s)">
<text text-anchor="middle" x="2873.8364" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N28 -->
<g id="edge44" class="edge">
<title>N37&#45;&gt;N28</title>
<g id="a_edge44"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.21s)">
<path fill="none" stroke="#000000" d="M2514.0939,-1016.7799C2520.7099,-1004.2969 2529.3184,-988.0544 2537.0195,-973.5242"/>
<polygon fill="#000000" stroke="#000000" points="2540.3286,-974.7545 2541.9191,-964.2797 2534.1436,-971.4764 2540.3286,-974.7545"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.21s)">
<text text-anchor="middle" x="2547.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N47 -->
<g id="edge110" class="edge">
<title>N38&#45;&gt;N47</title>
<g id="a_edge110"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M2131.7805,-1116.9483C2105.8123,-1103.0331 2073.5461,-1083.4683 2048.6641,-1061 2029.2248,-1043.4465 2033.3822,-1030.5875 2013.1123,-1014 1984.5381,-990.6168 1947.6242,-972.2942 1916.558,-959.4503"/>
<polygon fill="#000000" stroke="#000000" points="1917.7034,-956.1383 1907.1202,-955.6406 1915.0831,-962.6294 1917.7034,-956.1383"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="2065.8364" y="-1033.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N48 -->
<g id="edge108" class="edge">
<title>N38&#45;&gt;N48</title>
<g id="a_edge108"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M2268.987,-1116.9318C2320.3779,-1102.5265 2377.0697,-1082.4593 2392.1123,-1061 2436.0784,-998.2795 2371.9363,-910.2936 2332.3517,-865.7382"/>
<polygon fill="#000000" stroke="#000000" points="2334.8252,-863.2555 2325.5158,-858.1972 2329.6389,-867.9569 2334.8252,-863.2555"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="2421.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N37 -->
<g id="edge97" class="edge">
<title>N39&#45;&gt;N37</title>
<g id="a_edge97"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.07s)">
<path fill="none" stroke="#000000" d="M3011.7251,-1118.4506C3004.3093,-1115.5623 2996.585,-1112.9266 2989.1123,-1111 2914.0642,-1091.6517 2887.7821,-1121.3824 2815.6641,-1093 2806.0521,-1089.2172 2806.7761,-1082.6483 2797.1123,-1079 2697.8691,-1041.5338 2662.2417,-1085.8449 2559.1123,-1061 2558.8945,-1060.9475 2558.6764,-1060.8943 2558.4581,-1060.8403"/>
<polygon fill="#000000" stroke="#000000" points="2559.1276,-1057.3905 2548.5488,-1057.9724 2557.1815,-1064.1146 2559.1276,-1057.3905"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.07s)">
<text text-anchor="middle" x="2831.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="main.(*Integer).Multiply (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2187.0928,-1055.5 2091.1318,-1055.5 2091.1318,-1019.5 2187.0928,-1019.5 2187.0928,-1055.5"/>
<text text-anchor="middle" x="2139.1123" y="-1039.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="2139.1123" y="-1031.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(0.92%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N61 -->
<g id="edge73" class="edge">
<title>N39&#45;&gt;N61</title>
<g id="a_edge73"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.10s)">
<path fill="none" stroke="#000000" d="M3012.8979,-1118.4633C3005.1455,-1115.4541 2997.0056,-1112.7752 2989.1123,-1111 2894.407,-1089.7003 2646.1864,-1119.0066 2552.6641,-1093 2540.1882,-1089.5307 2539.5651,-1082.551 2527.1123,-1079 2385.4315,-1038.5992 2339.8029,-1093.5377 2196.1123,-1061 2193.323,-1060.3684 2190.495,-1059.6126 2187.6668,-1058.7655"/>
<polygon fill="#000000" stroke="#000000" points="2188.6997,-1055.4206 2178.1061,-1055.581 2186.4876,-1062.0619 2188.6997,-1055.4206"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.10s)">
<text text-anchor="middle" x="2568.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N63 -->
<g id="edge111" class="edge">
<title>N39&#45;&gt;N63</title>
<g id="a_edge111"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<path fill="none" stroke="#000000" d="M3010.9229,-1118.4804C3003.7385,-1115.6616 2996.2964,-1113.0398 2989.1123,-1111 2938.3116,-1096.576 2920.3191,-1113.5292 2871.6641,-1093 2862.147,-1088.9844 2862.6561,-1082.9516 2853.1123,-1079 2799.6268,-1056.8547 2781.1397,-1070.9495 2724.1123,-1061 2705.0386,-1057.6722 2684.2563,-1053.4726 2665.8303,-1049.5471"/>
<polygon fill="#000000" stroke="#000000" points="2666.3744,-1046.0841 2655.8618,-1047.4017 2664.9016,-1052.9274 2666.3744,-1046.0841"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<text text-anchor="middle" x="2887.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.usleep (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4087.423,-36 3988.8016,-36 3988.8016,0 4087.423,0 4087.423,-36"/>
<text text-anchor="middle" x="4038.1123" y="-20.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="4038.1123" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.21s(1.94%)</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.(*mheap).alloc (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3214.9649,-224 3105.2597,-224 3105.2597,-186 3214.9649,-186 3214.9649,-224"/>
<text text-anchor="middle" x="3160.1123" y="-212" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="3160.1123" y="-202" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="3160.1123" y="-192" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(1.66%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N46 -->
<g id="edge51" class="edge">
<title>N41&#45;&gt;N46</title>
<g id="a_edge51"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.18s)">
<path fill="none" stroke="#000000" d="M3160.1123,-290.7414C3160.1123,-274.9042 3160.1123,-252.2112 3160.1123,-234.1492"/>
<polygon fill="#000000" stroke="#000000" points="3163.6124,-234.1365 3160.1123,-224.1365 3156.6124,-234.1366 3163.6124,-234.1365"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.18s)">
<text text-anchor="middle" x="3176.8364" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.osyield (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4074.8822,-124.5 4001.3424,-124.5 4001.3424,-88.5 4074.8822,-88.5 4074.8822,-124.5"/>
<text text-anchor="middle" x="4038.1123" y="-108.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="4038.1123" y="-100.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.20s(1.84%)</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N40 -->
<g id="edge45" class="edge">
<title>N42&#45;&gt;N40</title>
<g id="a_edge45"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.20s)">
<path fill="none" stroke="#000000" d="M4038.1123,-88.1627C4038.1123,-76.0979 4038.1123,-60.065 4038.1123,-46.3712"/>
<polygon fill="#000000" stroke="#000000" points="4041.6124,-46.0109 4038.1123,-36.011 4034.6124,-46.011 4041.6124,-46.0109"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.20s)">
<text text-anchor="middle" x="4054.8364" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="main.Integer.Add (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2164.0977,-956.5 2078.127,-956.5 2078.127,-918.5 2164.0977,-918.5 2164.0977,-956.5"/>
<text text-anchor="middle" x="2121.1123" y="-944.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="2121.1123" y="-934.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="2121.1123" y="-924.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(1.66%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N45 -->
<g id="edge50" class="edge">
<title>N43&#45;&gt;N45</title>
<g id="a_edge50"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.18s)">
<path fill="none" stroke="#000000" d="M1986.7264,-1018.4554C2013.4097,-1002.3811 2051.7746,-979.2697 2080.6875,-961.8523"/>
<polygon fill="#000000" stroke="#000000" points="2082.5739,-964.802 2089.3337,-956.6438 2078.9618,-958.8059 2082.5739,-964.802"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.18s)">
<text text-anchor="middle" x="2059.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N15 -->
<g id="edge77" class="edge">
<title>N44&#45;&gt;N15</title>
<g id="a_edge77"><a xlink:title="main.executeLessThan &#45;&gt; runtime.convT2I (0.09s)">
<path fill="none" stroke="#000000" d="M1734.6966,-1118.2912C1712.8228,-1084.7514 1670.9231,-1021.5191 1661.1123,-1014 1528.1762,-912.1159 1331.1318,-865.3323 1231.9339,-847.2044"/>
<polygon fill="#000000" stroke="#000000" points="1232.5267,-843.7549 1222.0663,-845.437 1231.2926,-850.6453 1232.5267,-843.7549"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; runtime.convT2I (0.09s)">
<text text-anchor="middle" x="1651.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N37 -->
<g id="edge106" class="edge">
<title>N44&#45;&gt;N37</title>
<g id="a_edge106"><a xlink:title="main.executeLessThan &#45;&gt; runtime.assertI2I (0.05s)">
<path fill="none" stroke="#000000" d="M1792.4582,-1118.494C1800.2098,-1115.562 1808.2968,-1112.901 1816.1123,-1111 1878.5331,-1095.8173 2328.5702,-1070.4482 2392.1123,-1061 2410.2725,-1058.2997 2429.9232,-1054.4505 2447.5716,-1050.647"/>
<polygon fill="#000000" stroke="#000000" points="2448.6884,-1053.9853 2457.705,-1048.4219 2447.187,-1047.1482 2448.6884,-1053.9853"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; runtime.assertI2I (0.05s)">
<text text-anchor="middle" x="2180.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N15 -->
<g id="edge68" class="edge">
<title>N45&#45;&gt;N15</title>
<g id="a_edge68"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.11s)">
<path fill="none" stroke="#000000" d="M2087.0192,-918.432C2081.1655,-915.6526 2075.0525,-913.0442 2069.1123,-911 1998.478,-886.6926 1978.2383,-888.2406 1904.1123,-879 1656.4993,-848.1325 1359.002,-840.2077 1232.2247,-838.186"/>
<polygon fill="#000000" stroke="#000000" points="1231.9946,-834.6821 1221.9423,-838.0291 1231.8878,-841.6813 1231.9946,-834.6821"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.11s)">
<text text-anchor="middle" x="2021.5801" y="-881.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N48 -->
<g id="edge105" class="edge">
<title>N45&#45;&gt;N48</title>
<g id="a_edge105"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.05s)">
<path fill="none" stroke="#000000" d="M2156.1787,-918.3653C2161.7558,-915.6921 2167.528,-913.1341 2173.1123,-911 2202.3155,-899.8395 2213.4777,-907.6188 2241.1123,-893 2254.7117,-885.8059 2267.8834,-875.2239 2278.7063,-865.2241"/>
<polygon fill="#000000" stroke="#000000" points="2281.3419,-867.5463 2286.1444,-858.1024 2276.5008,-862.4902 2281.3419,-867.5463"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.05s)">
<text text-anchor="middle" x="2278.8364" y="-881.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N36 -->
<g id="edge53" class="edge">
<title>N46&#45;&gt;N36</title>
<g id="a_edge53"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.17s)">
<path fill="none" stroke="#000000" d="M3160.1123,-185.5396C3160.1123,-171.4179 3160.1123,-152.0621 3160.1123,-136.0396"/>
<polygon fill="#000000" stroke="#000000" points="3163.6124,-135.5848 3160.1123,-125.5848 3156.6124,-135.5849 3163.6124,-135.5848"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.17s)">
<text text-anchor="middle" x="3176.8364" y="-147.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N30 -->
<g id="edge70" class="edge">
<title>N48&#45;&gt;N30</title>
<g id="a_edge70"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.11s)">
<path fill="none" stroke="#000000" d="M2305.1123,-816.6107C2305.1123,-803.8868 2305.1123,-787.3318 2305.1123,-772.7816"/>
<polygon fill="#000000" stroke="#000000" points="2308.6124,-772.6245 2305.1123,-762.6245 2301.6124,-772.6246 2308.6124,-772.6245"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.11s)">
<text text-anchor="middle" x="2321.5801" y="-784.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.schedule (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4159.2022,-956.5 4075.0224,-956.5 4075.0224,-918.5 4159.2022,-918.5 4159.2022,-956.5"/>
<text text-anchor="middle" x="4117.1123" y="-944.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="4117.1123" y="-934.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="4117.1123" y="-924.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.16s(1.47%)</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.assertI2I2 (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2829.4483,-1058 2732.7763,-1058 2732.7763,-1017 2829.4483,-1017 2829.4483,-1058"/>
<text text-anchor="middle" x="2781.1123" y="-1045.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2I2</text>
<text text-anchor="middle" x="2781.1123" y="-1034.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.28%)</text>
<text text-anchor="middle" x="2781.1123" y="-1023.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(0.83%)</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N68 -->
<g id="edge78" class="edge">
<title>N51&#45;&gt;N68</title>
<g id="a_edge78"><a xlink:title="main.isZeroPred &#45;&gt; runtime.assertI2I2 (0.09s)">
<path fill="none" stroke="#000000" d="M3139.1905,-1118.4756C3133.0008,-1115.5458 3126.4912,-1112.8902 3120.1123,-1111 3041.5642,-1087.7244 3015.3071,-1115.9526 2936.6641,-1093 2923.4787,-1089.1518 2921.8067,-1084.2453 2909.1123,-1079 2886.6375,-1069.7135 2861.2764,-1061.1175 2839.0923,-1054.1859"/>
<polygon fill="#000000" stroke="#000000" points="2840.0594,-1050.8216 2829.4721,-1051.2211 2837.9978,-1057.5111 2840.0594,-1050.8216"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.isZeroPred &#45;&gt; runtime.assertI2I2 (0.09s)">
<text text-anchor="middle" x="2952.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.lock (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3900.3247,-1056.5 3819.8999,-1056.5 3819.8999,-1018.5 3900.3247,-1018.5 3900.3247,-1056.5"/>
<text text-anchor="middle" x="3860.1123" y="-1044.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="3860.1123" y="-1034.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="3860.1123" y="-1024.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(0.83%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N70 -->
<g id="edge90" class="edge">
<title>N52&#45;&gt;N70</title>
<g id="a_edge90"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.08s)">
<path fill="none" stroke="#000000" d="M3791.1002,-1119.9086C3804.1598,-1104.3139 3822.7803,-1082.0788 3837.3889,-1064.6344"/>
<polygon fill="#000000" stroke="#000000" points="3840.4591,-1066.4197 3844.1961,-1056.5058 3835.0924,-1061.9253 3840.4591,-1066.4197"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.08s)">
<text text-anchor="middle" x="3841.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N8 -->
<g id="edge93" class="edge">
<title>N54&#45;&gt;N8</title>
<g id="a_edge93"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.08s)">
<path fill="none" stroke="#000000" d="M1019.366,-1015.4949C1000.7902,-1005.2528 978.353,-992.9418 958.1123,-982 814.3902,-904.3062 644.3012,-814.4 557.7924,-768.8178"/>
<polygon fill="#000000" stroke="#000000" points="559.4056,-765.7117 548.9268,-764.1475 556.143,-771.9049 559.4056,-765.7117"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.08s)">
<text text-anchor="middle" x="806.8364" y="-881.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="strings.ContainsRune (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3006.9474,-1056.5 2905.2772,-1056.5 2905.2772,-1018.5 3006.9474,-1018.5 3006.9474,-1056.5"/>
<text text-anchor="middle" x="2956.1123" y="-1044.5" font-family="Times,serif" font-size="10.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="2956.1123" y="-1034.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="2956.1123" y="-1024.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.12s(1.11%)</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="strings.IndexRune (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3004.4645,-958 2907.7601,-958 2907.7601,-917 3004.4645,-917 3004.4645,-958"/>
<text text-anchor="middle" x="2956.1123" y="-945.2" font-family="Times,serif" font-size="11.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="2956.1123" y="-934.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.37%)</text>
<text text-anchor="middle" x="2956.1123" y="-923.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.11s(1.01%)</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N60 -->
<g id="edge71" class="edge">
<title>N57&#45;&gt;N60</title>
<g id="a_edge71"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.11s)">
<path fill="none" stroke="#000000" d="M2956.1123,-1018.219C2956.1123,-1004.0656 2956.1123,-984.5505 2956.1123,-968.2543"/>
<polygon fill="#000000" stroke="#000000" points="2959.6124,-968.0988 2956.1123,-958.0988 2952.6124,-968.0988 2959.6124,-968.0988"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.11s)">
<text text-anchor="middle" x="2972.5801" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N15 -->
<g id="edge75" class="edge">
<title>N58&#45;&gt;N15</title>
<g id="a_edge75"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.09s)">
<path fill="none" stroke="#000000" d="M1752.4547,-1018.4154C1730.5258,-979.9046 1679.9945,-895.1778 1651.1123,-879 1615.4067,-859.0002 1354.2173,-845.362 1232.3788,-840.0194"/>
<polygon fill="#000000" stroke="#000000" points="1232.232,-836.5098 1222.0898,-839.5734 1231.9288,-843.5032 1232.232,-836.5098"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.09s)">
<text text-anchor="middle" x="1736.8364" y="-933.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="main.Integer.Multiply (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2059.8811,-956.5 1956.3435,-956.5 1956.3435,-918.5 2059.8811,-918.5 2059.8811,-956.5"/>
<text text-anchor="middle" x="2008.1123" y="-944.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="2008.1123" y="-934.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.092%)</text>
<text text-anchor="middle" x="2008.1123" y="-924.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.10s(0.92%)</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N62 -->
<g id="edge72" class="edge">
<title>N61&#45;&gt;N62</title>
<g id="a_edge72"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.10s)">
<path fill="none" stroke="#000000" d="M2156.1807,-1019.3447C2164.974,-1007.7596 2172.142,-992.9228 2163.1123,-982 2136.0098,-949.2153 2109.7554,-976.5507 2069.1123,-964 2065.5371,-962.896 2061.8896,-961.6468 2058.2453,-960.307"/>
<polygon fill="#000000" stroke="#000000" points="2059.2472,-956.9415 2048.6584,-956.5858 2056.7143,-963.4672 2059.2472,-956.9415"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.10s)">
<text text-anchor="middle" x="2183.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N15 -->
<g id="edge89" class="edge">
<title>N62&#45;&gt;N15</title>
<g id="a_edge89"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.08s)">
<path fill="none" stroke="#000000" d="M1968.3003,-918.4422C1961.3503,-915.6269 1954.105,-913.0042 1947.1123,-911 1854.6659,-884.5037 1828.689,-889.6534 1733.1123,-879 1551.598,-858.7676 1336.0194,-846.0007 1232.1506,-840.5513"/>
<polygon fill="#000000" stroke="#000000" points="1232.0185,-837.0398 1221.8502,-840.0157 1231.6549,-844.0303 1232.0185,-837.0398"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.08s)">
<text text-anchor="middle" x="1883.8364" y="-881.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N28 -->
<g id="edge101" class="edge">
<title>N63&#45;&gt;N28</title>
<g id="a_edge101"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.07s)">
<path fill="none" stroke="#000000" d="M2600.5091,-1016.7799C2593.452,-1004.178 2584.2494,-987.7447 2576.0536,-973.1095"/>
<polygon fill="#000000" stroke="#000000" points="2579.0488,-971.2946 2571.1089,-964.2797 2572.9412,-974.7149 2579.0488,-971.2946"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.07s)">
<text text-anchor="middle" x="2603.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N57 -->
<g id="edge99" class="edge">
<title>N65&#45;&gt;N57</title>
<g id="a_edge99"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.07s)">
<path fill="none" stroke="#000000" d="M3248.9194,-1119.8863C3242.3134,-1116.3591 3235.1616,-1113.1236 3228.1123,-1111 3176.8073,-1095.5443 3032.9395,-1121.6568 2987.6641,-1093 2977.6973,-1086.6916 2970.5645,-1076.0369 2965.6319,-1065.7397"/>
<polygon fill="#000000" stroke="#000000" points="2968.8425,-1064.3458 2961.7022,-1056.5185 2962.4028,-1067.0902 2968.8425,-1064.3458"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.07s)">
<text text-anchor="middle" x="3003.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.(*mheap).alloc_m (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3961.9175,-223 3860.3072,-223 3860.3072,-187 3961.9175,-187 3961.9175,-223"/>
<text text-anchor="middle" x="3911.1123" y="-206.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="3911.1123" y="-198.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.83%)</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N67 -->
<g id="edge79" class="edge">
<title>N66&#45;&gt;N67</title>
<g id="a_edge79"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.09s)">
<path fill="none" stroke="#000000" d="M3946.6223,-291.7104C3939.9323,-275.3743 3930.0368,-251.2109 3922.3899,-232.5383"/>
<polygon fill="#000000" stroke="#000000" points="3925.5452,-231.0076 3918.5165,-223.08 3919.0674,-233.6605 3925.5452,-231.0076"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.09s)">
<text text-anchor="middle" x="3951.8364" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.(*mheap).allocSpanLocked (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3983.3341,-127 3808.8905,-127 3808.8905,-86 3983.3341,-86 3983.3341,-127"/>
<text text-anchor="middle" x="3896.1123" y="-114.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).allocSpanLocked</text>
<text text-anchor="middle" x="3896.1123" y="-103.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.37%)</text>
<text text-anchor="middle" x="3896.1123" y="-92.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.07s(0.65%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N80 -->
<g id="edge100" class="edge">
<title>N67&#45;&gt;N80</title>
<g id="a_edge100"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.07s)">
<path fill="none" stroke="#000000" d="M3908.3611,-186.9336C3906.2519,-173.0835 3903.2916,-153.644 3900.8096,-137.3454"/>
<polygon fill="#000000" stroke="#000000" points="3904.227,-136.5379 3899.2614,-127.1788 3897.3068,-137.5918 3904.227,-136.5379"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.07s)">
<text text-anchor="middle" x="3919.8364" y="-147.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N28 -->
<g id="edge103" class="edge">
<title>N68&#45;&gt;N28</title>
<g id="a_edge103"><a xlink:title="runtime.assertI2I2 &#45;&gt; runtime.getitab (0.06s)">
<path fill="none" stroke="#000000" d="M2734.765,-1016.9012C2702.2899,-1002.4678 2658.4084,-982.9649 2622.2629,-966.9003"/>
<polygon fill="#000000" stroke="#000000" points="2623.3315,-963.5451 2612.7718,-962.682 2620.4885,-969.9418 2623.3315,-963.5451"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="runtime.assertI2I2 &#45;&gt; runtime.getitab (0.06s)">
<text text-anchor="middle" x="2697.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.goschedImpl (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4115.3196,-1055.5 4030.905,-1055.5 4030.905,-1019.5 4115.3196,-1019.5 4115.3196,-1055.5"/>
<text text-anchor="middle" x="4073.1123" y="-1039.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="4073.1123" y="-1031.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.83%)</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N50 -->
<g id="edge81" class="edge">
<title>N69&#45;&gt;N50</title>
<g id="a_edge81"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.09s)">
<path fill="none" stroke="#000000" d="M4081.1826,-1019.1585C4087.6947,-1004.3583 4096.973,-983.2712 4104.4696,-966.2333"/>
<polygon fill="#000000" stroke="#000000" points="4107.8195,-967.3105 4108.6433,-956.7477 4101.4123,-964.4913 4107.8195,-967.3105"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.09s)">
<text text-anchor="middle" x="4112.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N42 -->
<g id="edge92" class="edge">
<title>N70&#45;&gt;N42</title>
<g id="a_edge92"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.08s)">
<path fill="none" stroke="#000000" d="M3900.5033,-1032.7323C3953.0207,-1024.0258 4038.1123,-1000.2387 4038.1123,-937.5 4038.1123,-937.5 4038.1123,-937.5 4038.1123,-205 4038.1123,-181.3369 4038.1123,-154.4762 4038.1123,-134.7883"/>
<polygon fill="#000000" stroke="#000000" points="4041.6124,-134.6543 4038.1123,-124.6544 4034.6124,-134.6544 4041.6124,-134.6543"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.08s)">
<text text-anchor="middle" x="4054.8364" y="-554.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N9 -->
<g id="edge82" class="edge">
<title>N72&#45;&gt;N9</title>
<g id="a_edge82"><a xlink:title="runtime.markroot &#45;&gt; runtime.systemstack (0.09s)">
<path fill="none" stroke="#000000" d="M3652.2736,-1120.7715C3643.4243,-1100.8153 3631.1123,-1067.6352 3631.1123,-1037.5 3631.1123,-1037.5 3631.1123,-1037.5 3631.1123,-512 3631.1123,-470.703 3591.7616,-446.093 3552.3365,-431.7997"/>
<polygon fill="#000000" stroke="#000000" points="3553.4679,-428.4877 3542.8733,-428.5577 3551.1992,-435.1099 3553.4679,-428.4877"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.markroot &#45;&gt; runtime.systemstack (0.09s)">
<text text-anchor="middle" x="3647.8364" y="-784.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.scang (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3574.8822,-223 3501.3424,-223 3501.3424,-187 3574.8822,-187 3574.8822,-223"/>
<text text-anchor="middle" x="3538.1123" y="-206.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.scang</text>
<text text-anchor="middle" x="3538.1123" y="-198.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.83%)</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N74 -->
<g id="edge83" class="edge">
<title>N73&#45;&gt;N74</title>
<g id="a_edge83"><a xlink:title="runtime.markroot.func1 &#45;&gt; runtime.scang (0.09s)">
<path fill="none" stroke="#000000" d="M3319.7091,-291.9929C3326.1249,-288.9 3332.7849,-285.7874 3339.1123,-283 3390.5622,-260.3347 3450.8149,-237.177 3491.43,-222.0485"/>
<polygon fill="#000000" stroke="#000000" points="3492.9024,-225.2354 3501.06,-218.4749 3490.467,-218.6727 3492.9024,-225.2354"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.markroot.func1 &#45;&gt; runtime.scang (0.09s)">
<text text-anchor="middle" x="3430.8364" y="-253.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N42 -->
<g id="edge116" class="edge">
<title>N74&#45;&gt;N42</title>
<g id="a_edge116"><a xlink:title="runtime.scang &#45;&gt; runtime.osyield (0.02s)">
<path fill="none" stroke="#000000" d="M3575.1873,-202.5479C3661.2497,-196.568 3872.3921,-180.1615 3940.1123,-159 3961.7622,-152.2347 3984.1863,-140.6177 4002.1118,-130.0288"/>
<polygon fill="#000000" stroke="#000000" points="4004.3076,-132.7908 4011.0476,-124.6163 4000.681,-126.8035 4004.3076,-132.7908"/>
</a>
</g>
<g id="a_edge116&#45;label"><a xlink:title="runtime.scang &#45;&gt; runtime.osyield (0.02s)">
<text text-anchor="middle" x="3989.8364" y="-147.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.gopreempt_m (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4116.9293,-1157 4029.2953,-1157 4029.2953,-1121 4116.9293,-1121 4116.9293,-1157"/>
<text text-anchor="middle" x="4073.1123" y="-1140.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="4073.1123" y="-1132.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(0.74%)</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N69 -->
<g id="edge91" class="edge">
<title>N76&#45;&gt;N69</title>
<g id="a_edge91"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.08s)">
<path fill="none" stroke="#000000" d="M4073.1123,-1120.8538C4073.1123,-1105.6487 4073.1123,-1083.6722 4073.1123,-1066.1019"/>
<polygon fill="#000000" stroke="#000000" points="4076.6124,-1065.8313 4073.1123,-1055.8313 4069.6124,-1065.8313 4076.6124,-1065.8313"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.08s)">
<text text-anchor="middle" x="4089.8364" y="-1081.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.mcall (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4206.8822,-1055.5 4133.3424,-1055.5 4133.3424,-1019.5 4206.8822,-1019.5 4206.8822,-1055.5"/>
<text text-anchor="middle" x="4170.1123" y="-1039.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="4170.1123" y="-1031.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(0.74%)</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N50 -->
<g id="edge102" class="edge">
<title>N77&#45;&gt;N50</title>
<g id="a_edge102"><a xlink:title="runtime.mcall ... runtime.schedule (0.07s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M4160.3913,-1019.1585C4152.4739,-1004.2199 4141.1619,-982.8765 4132.0884,-965.7567"/>
<polygon fill="#000000" stroke="#000000" points="4135.0891,-963.9444 4127.3136,-956.7477 4128.9041,-967.2225 4135.0891,-963.9444"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="runtime.mcall ... runtime.schedule (0.07s)">
<text text-anchor="middle" x="4162.8364" y="-984.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.morestack (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4110.8705,-1459 4035.3541,-1459 4035.3541,-1423 4110.8705,-1423 4110.8705,-1459"/>
<text text-anchor="middle" x="4073.1123" y="-1442.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="4073.1123" y="-1434.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(0.74%)</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.newstack (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4109.8822,-1272 4036.3424,-1272 4036.3424,-1236 4109.8822,-1236 4109.8822,-1272"/>
<text text-anchor="middle" x="4073.1123" y="-1255.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="4073.1123" y="-1247.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(0.74%)</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N79 -->
<g id="edge94" class="edge">
<title>N78&#45;&gt;N79</title>
<g id="a_edge94"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.08s)">
<path fill="none" stroke="#000000" d="M4073.1123,-1422.7292C4073.1123,-1389.9674 4073.1123,-1321.0311 4073.1123,-1282.1761"/>
<polygon fill="#000000" stroke="#000000" points="4076.6124,-1282.0696 4073.1123,-1272.0697 4069.6124,-1282.0697 4076.6124,-1282.0696"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.08s)">
<text text-anchor="middle" x="4089.8364" y="-1311.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N76 -->
<g id="edge95" class="edge">
<title>N79&#45;&gt;N76</title>
<g id="a_edge95"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.08s)">
<path fill="none" stroke="#000000" d="M4073.1123,-1235.7779C4073.1123,-1217.3567 4073.1123,-1188.6329 4073.1123,-1167.2569"/>
<polygon fill="#000000" stroke="#000000" points="4076.6124,-1167.1368 4073.1123,-1157.1368 4069.6124,-1167.1369 4076.6124,-1167.1368"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.08s)">
<text text-anchor="middle" x="4089.8364" y="-1187.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion2.svg.







































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1745)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1745 3490.5601,-1745 3490.5601,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="564.1123,-1517 564.1123,-1733 1226.1123,-1733 1226.1123,-1517 564.1123,-1517"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="1217.9561,-1725 572.2685,-1725 572.2685,-1525 1217.9561,-1525 1217.9561,-1725"/>
<text text-anchor="start" x="580.1904" y="-1695.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="580.1904" y="-1663.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="580.1904" y="-1631.4" font-family="Times,serif" font-size="32.00" fill="#000000">27.52s of 29.97s total (91.83%)</text>
<text text-anchor="start" x="580.1904" y="-1599.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 114 nodes (cum &lt;= 0.15s)</text>
<text text-anchor="start" x="580.1904" y="-1567.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 19 edges (freq &lt;= 0.03s)</text>
<text text-anchor="start" x="580.1904" y="-1535.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 109 (cum &gt;= 0.18s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (28.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1396.4436,-1475 1157.781,-1475 1157.781,-1401 1396.4436,-1401 1396.4436,-1475"/>
<text text-anchor="middle" x="1277.1123" y="-1453.4" font-family="Times,serif" font-size="22.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="1277.1123" y="-1431.4" font-family="Times,serif" font-size="22.00" fill="#000000">2.80s(9.34%)</text>
<text text-anchor="middle" x="1277.1123" y="-1409.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 28.27s(94.33%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).loadLoopWords.func1 (28.01s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2460.0962,-1348 2268.1284,-1348 2268.1284,-1307 2460.0962,-1307 2460.0962,-1348"/>
<text text-anchor="middle" x="2364.1123" y="-1335.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="2364.1123" y="-1324.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.23%)</text>
<text text-anchor="middle" x="2364.1123" y="-1313.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 28.01s(93.46%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge81" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge81"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.18s)">
<path fill="none" stroke="#000000" d="M1396.3555,-1402.6575C1399.6322,-1402.054 1402.8889,-1401.4989 1406.1123,-1401 1548.253,-1378.9985 1909.8735,-1396.0652 2053.1123,-1383 2145.3829,-1374.5838 2168.0765,-1368.2386 2259.1123,-1351 2260.8158,-1350.6774 2262.5338,-1350.3474 2264.2629,-1350.0108"/>
<polygon fill="#000000" stroke="#000000" points="2265.1424,-1353.4044 2274.266,-1348.0183 2263.7749,-1346.5393 2265.1424,-1353.4044"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.18s)">
<text text-anchor="middle" x="2179.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (26.58s)">
<polygon fill="#f8f8f8" stroke="#000000" points="848.667,-1346.5 691.5576,-1346.5 691.5576,-1308.5 848.667,-1308.5 848.667,-1346.5"/>
<text text-anchor="middle" x="770.1123" y="-1334.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="770.1123" y="-1324.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.05s(0.17%)</text>
<text text-anchor="middle" x="770.1123" y="-1314.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 26.58s(88.69%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N4 -->
<g id="edge88" class="edge">
<title>N1&#45;&gt;N4</title>
<g id="a_edge88"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.14s)">
<path fill="none" stroke="#000000" d="M1157.6474,-1429.2112C1081.5598,-1421.5575 981.5154,-1407.6601 895.6641,-1383 868.0619,-1375.0715 838.6261,-1362.3097 815.199,-1351.0217"/>
<polygon fill="#000000" stroke="#000000" points="816.7261,-1347.8724 806.2056,-1346.6191 813.6483,-1354.1595 816.7261,-1347.8724"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.14s)">
<text text-anchor="middle" x="912.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="main.tryParseFloat (5.88s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2584.5967,-1349.5 2477.6279,-1349.5 2477.6279,-1305.5 2584.5967,-1305.5 2584.5967,-1349.5"/>
<text text-anchor="middle" x="2531.1123" y="-1335.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="2531.1123" y="-1323.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.15s(0.5%)</text>
<text text-anchor="middle" x="2531.1123" y="-1311.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 5.88s(19.62%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N8 -->
<g id="edge5" class="edge">
<title>N1&#45;&gt;N8</title>
<g id="a_edge5"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (5.88s)">
<path fill="none" stroke="#000000" d="M1396.3498,-1402.6199C1399.6281,-1402.0275 1402.8867,-1401.4849 1406.1123,-1401 1612.9373,-1369.9054 2139.9462,-1411.7341 2347.1123,-1383 2388.1971,-1377.3015 2432.7685,-1364.0503 2467.7524,-1351.9252"/>
<polygon fill="#000000" stroke="#000000" points="2469.0857,-1355.1663 2477.3545,-1348.5423 2466.7597,-1348.5641 2469.0857,-1355.1663"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (5.88s)">
<text text-anchor="middle" x="2424.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.88s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.tryParseInt (4.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="277.7672,-1349.5 178.4574,-1349.5 178.4574,-1305.5 277.7672,-1305.5 277.7672,-1349.5"/>
<text text-anchor="middle" x="228.1123" y="-1335.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="228.1123" y="-1323.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.19s(0.63%)</text>
<text text-anchor="middle" x="228.1123" y="-1311.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 4.73s(15.78%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N11 -->
<g id="edge8" class="edge">
<title>N1&#45;&gt;N11</title>
<g id="a_edge8"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (4.73s)">
<path fill="none" stroke="#000000" d="M1157.7861,-1430.4296C1014.7806,-1421.0013 767.9726,-1403.5994 556.6641,-1383 439.7572,-1371.6033 405.8226,-1380.2036 287.8052,-1350.8777"/>
<polygon fill="#000000" stroke="#000000" points="288.5812,-1347.4638 278.0287,-1348.4105 286.8683,-1354.2511 288.5812,-1347.4638"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (4.73s)">
<text text-anchor="middle" x="573.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.73s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.NilWord.func1 (3.47s)">
<polygon fill="#f8f8f8" stroke="#000000" points="973.3787,-1348 866.8459,-1348 866.8459,-1307 973.3787,-1307 973.3787,-1348"/>
<text text-anchor="middle" x="920.1123" y="-1335.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="920.1123" y="-1324.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.08s(0.27%)</text>
<text text-anchor="middle" x="920.1123" y="-1313.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 3.47s(11.58%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N15 -->
<g id="edge37" class="edge">
<title>N1&#45;&gt;N15</title>
<g id="a_edge37"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.77s)">
<path fill="none" stroke="#000000" d="M1157.7951,-1404.7267C1104.1317,-1389.2404 1040.1633,-1370.0562 983.1123,-1351 983.0154,-1350.9676 982.9185,-1350.9352 982.8214,-1350.9028"/>
<polygon fill="#000000" stroke="#000000" points="984.2333,-1347.6869 973.6387,-1347.7539 981.9627,-1354.3084 984.2333,-1347.6869"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.77s)">
<text text-anchor="middle" x="1096.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.77s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.convT2I (2.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1184.5889,-936 1087.6357,-936 1087.6357,-892 1184.5889,-892 1184.5889,-936"/>
<text text-anchor="middle" x="1136.1123" y="-922.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1136.1123" y="-910.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.22s(0.73%)</text>
<text text-anchor="middle" x="1136.1123" y="-898.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 2.22s(7.41%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N18 -->
<g id="edge20" class="edge">
<title>N1&#45;&gt;N18</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.60s)">
<path fill="none" stroke="#000000" d="M1273.2564,-1400.8477C1272.223,-1371.7313 1275.4157,-1331.6525 1296.1123,-1304 1328.2912,-1261.0062 1373.5243,-1296.6846 1406.1123,-1254 1417.5862,-1238.9712 1419.6641,-1188.908 1419.6641,-1170 1419.6641,-1170 1419.6641,-1170 1420.1123,-1014 1420.1123,-966.6428 1277.8403,-936.2271 1194.6919,-922.4951"/>
<polygon fill="#000000" stroke="#000000" points="1195.0417,-919.0062 1184.611,-920.8639 1193.9235,-925.9163 1195.0417,-919.0062"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.60s)">
<text text-anchor="middle" x="1436.8364" y="-1165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.60s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.mapaccess2_faststr (1.90s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1756.4656,-1254 1551.759,-1254 1551.759,-1195 1756.4656,-1195 1756.4656,-1254"/>
<text text-anchor="middle" x="1654.1123" y="-1236.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="1654.1123" y="-1219.4" font-family="Times,serif" font-size="17.00" fill="#000000">1.20s(4.00%)</text>
<text text-anchor="middle" x="1654.1123" y="-1202.4" font-family="Times,serif" font-size="17.00" fill="#000000">of 1.90s(6.34%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N20 -->
<g id="edge21" class="edge">
<title>N1&#45;&gt;N20</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.60s)">
<path fill="none" stroke="#000000" d="M1396.4731,-1403.2711C1399.7151,-1402.4867 1402.9327,-1401.7278 1406.1123,-1401 1469.8588,-1386.408 1653.982,-1401.0158 1696.1123,-1351 1717.2324,-1325.9269 1702.115,-1289.8648 1684.3993,-1262.6544"/>
<polygon fill="#000000" stroke="#000000" points="1687.1271,-1260.4424 1678.5988,-1254.1561 1681.3455,-1264.3887 1687.1271,-1260.4424"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.60s)">
<text text-anchor="middle" x="1723.8364" y="-1323.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.60s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="main.(*CodeQuotation).cloneCode (1.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="478.0615,-1349.5 296.1631,-1349.5 296.1631,-1305.5 478.0615,-1305.5 478.0615,-1349.5"/>
<text text-anchor="middle" x="387.1123" y="-1335.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="387.1123" y="-1323.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.23s(0.77%)</text>
<text text-anchor="middle" x="387.1123" y="-1311.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.70s(5.67%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N21 -->
<g id="edge19" class="edge">
<title>N1&#45;&gt;N21</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.70s)">
<path fill="none" stroke="#000000" d="M1157.8564,-1430.4177C1004.6006,-1419.4257 730.4299,-1395.5454 488.3705,-1351.1629"/>
<polygon fill="#000000" stroke="#000000" points="488.7932,-1347.6819 478.3236,-1349.3055 487.5206,-1354.5652 488.7932,-1347.6819"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.70s)">
<text text-anchor="middle" x="697.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.70s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="main.(*machine).executeMathWord (1.54s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1180.5811,-1349.5 991.6436,-1349.5 991.6436,-1305.5 1180.5811,-1305.5 1180.5811,-1349.5"/>
<text text-anchor="middle" x="1086.1123" y="-1335.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="1086.1123" y="-1323.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.16s(0.53%)</text>
<text text-anchor="middle" x="1086.1123" y="-1311.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.54s(5.14%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N22 -->
<g id="edge22" class="edge">
<title>N1&#45;&gt;N22</title>
<g id="a_edge22"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.54s)">
<path fill="none" stroke="#000000" d="M1200.9226,-1400.852C1189.9805,-1395.0871 1178.9515,-1389.0362 1168.6641,-1383 1154.2462,-1374.5402 1138.9291,-1364.5431 1125.4541,-1355.3808"/>
<polygon fill="#000000" stroke="#000000" points="1127.1186,-1352.2781 1116.8931,-1349.5049 1123.1573,-1358.0495 1127.1186,-1352.2781"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.54s)">
<text text-anchor="middle" x="1185.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.54s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.growslice (1.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="110.3371,-1351 -.1125,-1351 -.1125,-1304 110.3371,-1304 110.3371,-1351"/>
<text text-anchor="middle" x="55.1123" y="-1336.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="55.1123" y="-1323.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.39s(1.30%)</text>
<text text-anchor="middle" x="55.1123" y="-1310.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.44s(4.80%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N23 -->
<g id="edge24" class="edge">
<title>N1&#45;&gt;N23</title>
<g id="a_edge24"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.44s)">
<path fill="none" stroke="#000000" d="M1157.9259,-1435.4183C866.1333,-1428.7027 136.3099,-1409.3598 90.6641,-1383 81.5229,-1377.7211 74.3533,-1369.0399 68.9213,-1360.0938"/>
<polygon fill="#000000" stroke="#000000" points="71.9193,-1358.2808 64.0599,-1351.1758 65.7731,-1361.6312 71.9193,-1358.2808"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.44s)">
<text text-anchor="middle" x="107.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.44s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="main.(*machine).loadLocalWords.func1 (1.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="673.7533,-1346.5 496.4713,-1346.5 496.4713,-1308.5 673.7533,-1308.5 673.7533,-1346.5"/>
<text text-anchor="middle" x="585.1123" y="-1334.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="585.1123" y="-1324.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.06s(0.2%)</text>
<text text-anchor="middle" x="585.1123" y="-1314.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 1.23s(4.10%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N24 -->
<g id="edge25" class="edge">
<title>N1&#45;&gt;N24</title>
<g id="a_edge25"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (1.23s)">
<path fill="none" stroke="#000000" d="M1157.6349,-1427.2313C1065.0276,-1418.0177 933.699,-1403.0584 819.6641,-1383 757.8464,-1372.1265 743.181,-1365.5007 682.1123,-1351 679.2674,-1350.3245 676.3761,-1349.6359 673.4568,-1348.9389"/>
<polygon fill="#000000" stroke="#000000" points="673.9906,-1345.4679 663.4505,-1346.5437 672.361,-1352.2756 673.9906,-1345.4679"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (1.23s)">
<text text-anchor="middle" x="836.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.23s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.memeqbody (1s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1858.4717,-1138.5 1709.7529,-1138.5 1709.7529,-1098.5 1858.4717,-1098.5 1858.4717,-1138.5"/>
<text text-anchor="middle" x="1784.1123" y="-1121.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="1784.1123" y="-1105.7" font-family="Times,serif" font-size="16.00" fill="#000000">1s(3.34%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N29 -->
<g id="edge36" class="edge">
<title>N1&#45;&gt;N29</title>
<g id="a_edge36"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.80s)">
<path fill="none" stroke="#000000" d="M1396.3871,-1402.8475C1399.6544,-1402.188 1402.9006,-1401.5698 1406.1123,-1401 1480.8732,-1387.7354 1694.1825,-1408.2027 1744.1123,-1351 1793.941,-1293.9131 1792.6397,-1197.9089 1788.086,-1149.0525"/>
<polygon fill="#000000" stroke="#000000" points="1791.5366,-1148.3965 1787.0177,-1138.8138 1784.5744,-1149.123 1791.5366,-1148.3965"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.80s)">
<text text-anchor="middle" x="1798.8364" y="-1274.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.80s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.deferproc (0.97s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2840.4037,-1349.5 2737.8209,-1349.5 2737.8209,-1305.5 2840.4037,-1305.5 2840.4037,-1349.5"/>
<text text-anchor="middle" x="2789.1123" y="-1335.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="2789.1123" y="-1323.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.21s(0.7%)</text>
<text text-anchor="middle" x="2789.1123" y="-1311.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.97s(3.24%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N30 -->
<g id="edge33" class="edge">
<title>N1&#45;&gt;N30</title>
<g id="a_edge33"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.97s)">
<path fill="none" stroke="#000000" d="M1396.3475,-1402.6044C1399.6265,-1402.0166 1402.8859,-1401.4792 1406.1123,-1401 1660.6847,-1363.1933 2308.1265,-1409.603 2564.1123,-1383 2635.3644,-1375.5952 2655.7237,-1372.1092 2728.327,-1351.0503"/>
<polygon fill="#000000" stroke="#000000" points="2729.3158,-1354.4078 2737.9375,-1348.2501 2727.3576,-1347.6873 2729.3158,-1354.4078"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.97s)">
<text text-anchor="middle" x="2677.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.97s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.deferreturn (0.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2720.0359,-1351 2602.1887,-1351 2602.1887,-1304 2720.0359,-1304 2720.0359,-1351"/>
<text text-anchor="middle" x="2661.1123" y="-1336.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="2661.1123" y="-1323.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.37s(1.23%)</text>
<text text-anchor="middle" x="2661.1123" y="-1310.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.73s(2.44%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N33 -->
<g id="edge38" class="edge">
<title>N1&#45;&gt;N33</title>
<g id="a_edge38"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.73s)">
<path fill="none" stroke="#000000" d="M1396.3486,-1402.6121C1399.6273,-1402.022 1402.8863,-1401.482 1406.1123,-1401 1634.5004,-1366.8742 2215.7175,-1409.5276 2445.1123,-1383 2508.9614,-1375.6164 2526.734,-1369.6889 2592.6468,-1351.0342"/>
<polygon fill="#000000" stroke="#000000" points="2593.6035,-1354.401 2602.2766,-1348.316 2591.7019,-1347.6642 2593.6035,-1354.401"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.73s)">
<text text-anchor="middle" x="2543.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.73s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="main.(*CodeQuotation).nextWord (0.60s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1687.1875,-1346.5 1469.0371,-1346.5 1469.0371,-1308.5 1687.1875,-1308.5 1687.1875,-1346.5"/>
<text text-anchor="middle" x="1578.1123" y="-1330.5" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="1578.1123" y="-1315.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.60s(2.00%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N39 -->
<g id="edge44" class="edge">
<title>N1&#45;&gt;N39</title>
<g id="a_edge44"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.60s)">
<path fill="none" stroke="#000000" d="M1378.1783,-1400.8977C1424.092,-1384.0423 1476.911,-1364.652 1516.7256,-1350.0356"/>
<polygon fill="#000000" stroke="#000000" points="1518.1164,-1353.2535 1526.2977,-1346.5217 1515.704,-1346.6823 1518.1164,-1353.2535"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.60s)">
<text text-anchor="middle" x="1480.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.60s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.ifaceeq (0.47s)">
<polygon fill="#f8f8f8" stroke="#000000" points="213.2097,-1039 107.0149,-1039 107.0149,-989 213.2097,-989 213.2097,-1039"/>
<text text-anchor="middle" x="160.1123" y="-1023.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="160.1123" y="-1009.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.41s(1.37%)</text>
<text text-anchor="middle" x="160.1123" y="-995.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.47s(1.57%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N43 -->
<g id="edge86" class="edge">
<title>N1&#45;&gt;N43</title>
<g id="a_edge86"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.15s)">
<path fill="none" stroke="#000000" d="M1157.6961,-1436.6568C886.4215,-1432.4793 241.5851,-1415.7732 169.1123,-1351 83.8467,-1274.7931 123.4952,-1118.5984 147.0487,-1048.9102"/>
<polygon fill="#000000" stroke="#000000" points="150.42,-1049.8707 150.3902,-1039.2759 143.8065,-1047.5768 150.42,-1049.8707"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.15s)">
<text text-anchor="middle" x="136.8364" y="-1220.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="main.(*machine).hasPrefixWord (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1450.8342,-1346.5 1305.3904,-1346.5 1305.3904,-1308.5 1450.8342,-1308.5 1450.8342,-1346.5"/>
<text text-anchor="middle" x="1378.1123" y="-1334.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="1378.1123" y="-1324.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.05s(0.17%)</text>
<text text-anchor="middle" x="1378.1123" y="-1314.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.39s(1.30%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N47 -->
<g id="edge49" class="edge">
<title>N1&#45;&gt;N47</title>
<g id="a_edge49"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.39s)">
<path fill="none" stroke="#000000" d="M1311.0248,-1400.8977C1325.0473,-1385.5563 1340.9893,-1368.1148 1353.8135,-1354.0844"/>
<polygon fill="#000000" stroke="#000000" points="1356.422,-1356.4183 1360.5852,-1346.6756 1351.2551,-1351.6956 1356.422,-1356.4183"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.39s)">
<text text-anchor="middle" x="1356.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.eqstring (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1913.6796,-1345.5 1812.545,-1345.5 1812.545,-1309.5 1913.6796,-1309.5 1913.6796,-1345.5"/>
<text text-anchor="middle" x="1863.1123" y="-1330.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="1863.1123" y="-1317.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.26s(0.87%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N65 -->
<g id="edge66" class="edge">
<title>N1&#45;&gt;N65</title>
<g id="a_edge66"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.24s)">
<path fill="none" stroke="#000000" d="M1396.368,-1402.7355C1399.6409,-1402.109 1402.8935,-1401.5281 1406.1123,-1401 1492.1649,-1386.8828 1717.0111,-1415.0458 1798.1123,-1383 1814.414,-1376.5586 1829.5111,-1364.245 1841.0443,-1352.8497"/>
<polygon fill="#000000" stroke="#000000" points="1843.6522,-1355.1877 1848.0855,-1345.565 1838.619,-1350.3228 1843.6522,-1355.1877"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.24s)">
<text text-anchor="middle" x="1839.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="main.wordIsWhitespace (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2054.2131,-1348 1932.0116,-1348 1932.0116,-1307 2054.2131,-1307 2054.2131,-1348"/>
<text text-anchor="middle" x="1993.1123" y="-1335.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="1993.1123" y="-1324.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.14s(0.47%)</text>
<text text-anchor="middle" x="1993.1123" y="-1313.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.22s(0.73%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N73 -->
<g id="edge70" class="edge">
<title>N1&#45;&gt;N73</title>
<g id="a_edge70"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.22s)">
<path fill="none" stroke="#000000" d="M1396.3636,-1402.7085C1399.6378,-1402.09 1402.8919,-1401.518 1406.1123,-1401 1605.4862,-1368.9325 1662.9326,-1426.5709 1860.1123,-1383 1889.3576,-1376.5377 1920.3334,-1363.9836 1945.0268,-1352.4479"/>
<polygon fill="#000000" stroke="#000000" points="1946.6455,-1355.5537 1954.1665,-1348.0914 1943.6335,-1349.2348 1946.6455,-1355.5537"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.22s)">
<text text-anchor="middle" x="1922.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2249.7533,-1346.5 2072.4713,-1346.5 2072.4713,-1308.5 2249.7533,-1308.5 2249.7533,-1346.5"/>
<text text-anchor="middle" x="2161.1123" y="-1334.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2161.1123" y="-1324.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="2161.1123" y="-1314.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(0.6%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N80 -->
<g id="edge80" class="edge">
<title>N1&#45;&gt;N80</title>
<g id="a_edge80"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.18s)">
<path fill="none" stroke="#000000" d="M1396.3594,-1402.6821C1399.6349,-1402.0713 1402.8903,-1401.5081 1406.1123,-1401 1641.9978,-1363.8001 1706.6949,-1416.6538 1943.1123,-1383 1993.3311,-1375.8514 2048.7076,-1361.6704 2091.0814,-1349.4329"/>
<polygon fill="#000000" stroke="#000000" points="2092.1203,-1352.7758 2100.7382,-1346.6128 2090.158,-1346.0564 2092.1203,-1352.7758"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.18s)">
<text text-anchor="middle" x="2032.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge1" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge1"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (27.83s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2338.1683,-1348.0029C2320.4026,-1360.7246 2295.6917,-1375.9474 2271.1123,-1383 2181.3258,-1408.7626 1539.0711,-1387.8847 1406.6076,-1401.3594"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1405.7387,-1397.0585 1396.3509,-1402.6272 1406.8121,-1405.7424 1405.7387,-1397.0585"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (27.83s)">
<text text-anchor="middle" x="2323.3364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 27.83s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.newobject (9.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="834.7188,-842 721.5058,-842 721.5058,-795 834.7188,-795 834.7188,-842"/>
<text text-anchor="middle" x="778.1123" y="-827.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="778.1123" y="-814.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.27s(0.9%)</text>
<text text-anchor="middle" x="778.1123" y="-801.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 9.31s(31.06%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge104" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge104"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.05s)">
<path fill="none" stroke="#000000" d="M2275.5139,-1306.9857C2167.1952,-1281.281 1998.1123,-1238.8572 1998.1123,-1224.5 1998.1123,-1224.5 1998.1123,-1224.5 1998.1123,-914 1998.1123,-900.7857 1990.0278,-897.713 1978.1123,-892 1875.8817,-842.985 1082.8071,-824.2263 845.1801,-819.6722"/>
<polygon fill="#000000" stroke="#000000" points="845.0192,-816.1687 834.9546,-819.4785 844.8865,-823.1674 845.0192,-816.1687"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.05s)">
<text text-anchor="middle" x="2014.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.assertI2T (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1969.004,-934.5 1875.2206,-934.5 1875.2206,-893.5 1969.004,-893.5 1969.004,-934.5"/>
<text text-anchor="middle" x="1922.1123" y="-921.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="1922.1123" y="-910.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.23%)</text>
<text text-anchor="middle" x="1922.1123" y="-899.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.23s(0.77%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N69 -->
<g id="edge108" class="edge">
<title>N2&#45;&gt;N69</title>
<g id="a_edge108"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M2311.7726,-1306.8769C2228.7234,-1271.5554 2066.8931,-1191.719 1976.1123,-1074 1941.7813,-1029.4817 1954.2876,-1007.1992 1936.1123,-954 1935.0419,-950.8669 1933.9152,-947.5994 1932.7851,-944.3414"/>
<polygon fill="#000000" stroke="#000000" points="1936.0348,-943.0305 1929.4375,-934.7404 1929.4251,-945.3352 1936.0348,-943.0305"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="2057.8364" y="-1114.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="runtime.goexit (27.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1317.8822,-1643 1236.3424,-1643 1236.3424,-1607 1317.8822,-1607 1317.8822,-1643"/>
<text text-anchor="middle" x="1277.1123" y="-1626.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="1277.1123" y="-1618.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 27.22s(90.82%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N1 -->
<g id="edge2" class="edge">
<title>N3&#45;&gt;N1</title>
<g id="a_edge2"><a xlink:title="runtime.goexit ... main.(*machine).execute (26.46s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M1277.1123,-1606.7292C1277.1123,-1578.8892 1277.1123,-1524.9273 1277.1123,-1485.4997"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1281.4874,-1485.3069 1277.1123,-1475.307 1272.7374,-1485.307 1281.4874,-1485.3069"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (26.46s)">
<text text-anchor="middle" x="1297.3364" y="-1495.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 26.46s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.gcBgMarkWorker (0.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1515.503,-1456 1414.7216,-1456 1414.7216,-1420 1515.503,-1420 1515.503,-1456"/>
<text text-anchor="middle" x="1465.1123" y="-1439.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="1465.1123" y="-1431.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.66s(2.20%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N37 -->
<g id="edge42" class="edge">
<title>N3&#45;&gt;N37</title>
<g id="a_edge42"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.66s)">
<path fill="none" stroke="#000000" d="M1295.4808,-1606.7292C1329.2624,-1573.1273 1401.3008,-1501.4721 1439.7296,-1463.2476"/>
<polygon fill="#000000" stroke="#000000" points="1442.3243,-1465.6034 1446.946,-1456.0697 1437.3878,-1460.6404 1442.3243,-1465.6034"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.66s)">
<text text-anchor="middle" x="1426.8364" y="-1495.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.66s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (26.44s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M840.6688,-1346.5463C846.5639,-1348.0754 852.437,-1349.5776 858.1123,-1351 918.576,-1366.1541 933.716,-1369.9294 994.6641,-1383 1044.5894,-1393.7067 1099.672,-1404.6312 1147.8356,-1413.8929"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1147.0424,-1418.1954 1157.6876,-1415.7828 1148.6909,-1409.6021 1147.0424,-1418.1954"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (26.44s)">
<text text-anchor="middle" x="1015.3364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 26.44s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N6 -->
<g id="edge103" class="edge">
<title>N4&#45;&gt;N6</title>
<g id="a_edge103"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.05s)">
<path fill="none" stroke="#000000" d="M706.7609,-1308.4499C650.279,-1290.8656 575.1437,-1265.7537 566.1123,-1254 540.7003,-1220.9283 550.1123,-1108.7074 550.1123,-1067 550.1123,-1067 550.1123,-1067 550.1123,-914 550.1123,-878.7418 644.0433,-849.401 711.3251,-832.907"/>
<polygon fill="#000000" stroke="#000000" points="712.5556,-836.2109 721.4598,-830.4693 710.9186,-829.405 712.5556,-836.2109"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.05s)">
<text text-anchor="middle" x="566.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.mallocgc (11.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="875.5425,-745 680.6821,-745 680.6821,-665 875.5425,-665 875.5425,-745"/>
<text text-anchor="middle" x="778.1123" y="-721.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="778.1123" y="-697.8" font-family="Times,serif" font-size="24.00" fill="#000000">4.05s(13.51%)</text>
<text text-anchor="middle" x="778.1123" y="-673.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 11.06s(36.90%)</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.heapBitsSetType (2.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="887.5639,-615 668.6607,-615 668.6607,-567 887.5639,-567 887.5639,-615"/>
<text text-anchor="middle" x="778.1123" y="-595" font-family="Times,serif" font-size="20.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="778.1123" y="-575" font-family="Times,serif" font-size="20.00" fill="#000000">2.21s(7.37%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N19 -->
<g id="edge17" class="edge">
<title>N5&#45;&gt;N19</title>
<g id="a_edge17"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (2.21s)">
<path fill="none" stroke="#000000" d="M778.1123,-664.8079C778.1123,-652.0161 778.1123,-637.984 778.1123,-625.6215"/>
<polygon fill="#000000" stroke="#000000" points="781.6124,-625.2604 778.1123,-615.2604 774.6124,-625.2604 781.6124,-625.2604"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (2.21s)">
<text text-anchor="middle" x="794.8364" y="-635.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.21s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.(*mcache).nextFree (1.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2445.8939,-610 2316.3307,-610 2316.3307,-572 2445.8939,-572 2445.8939,-610"/>
<text text-anchor="middle" x="2381.1123" y="-598" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="2381.1123" y="-588" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="2381.1123" y="-578" font-family="Times,serif" font-size="10.00" fill="#000000">of 1.21s(4.04%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N25 -->
<g id="edge26" class="edge">
<title>N5&#45;&gt;N25</title>
<g id="a_edge26"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (1.21s)">
<path fill="none" stroke="#000000" d="M875.3748,-698.083C1169.2348,-677.1847 2043.7954,-614.9889 2305.9951,-596.3421"/>
<polygon fill="#000000" stroke="#000000" points="2306.4467,-599.8189 2316.1732,-595.6183 2305.95,-592.8365 2306.4467,-599.8189"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (1.21s)">
<text text-anchor="middle" x="1787.8364" y="-635.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.21s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.memclr (0.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1134.3308,-610 1021.8938,-610 1021.8938,-572 1134.3308,-572 1134.3308,-610"/>
<text text-anchor="middle" x="1078.1123" y="-594" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="1078.1123" y="-579" font-family="Times,serif" font-size="15.00" fill="#000000">0.64s(2.14%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N38 -->
<g id="edge97" class="edge">
<title>N5&#45;&gt;N38</title>
<g id="a_edge97"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.09s)">
<path fill="none" stroke="#000000" d="M875.5137,-667.9875C922.5561,-650.1114 977.5013,-629.2322 1018.2944,-613.7308"/>
<polygon fill="#000000" stroke="#000000" points="1019.7166,-616.9346 1027.8211,-610.1106 1017.23,-610.3911 1019.7166,-616.9346"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.09s)">
<text text-anchor="middle" x="980.8364" y="-635.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.mProf_Malloc (0.55s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1004.3485,-609 905.8761,-609 905.8761,-573 1004.3485,-573 1004.3485,-609"/>
<text text-anchor="middle" x="955.1123" y="-597.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.mProf_Malloc</text>
<text text-anchor="middle" x="955.1123" y="-588.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.033%)</text>
<text text-anchor="middle" x="955.1123" y="-579.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.55s(1.84%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N40 -->
<g id="edge45" class="edge">
<title>N5&#45;&gt;N40</title>
<g id="a_edge45"><a xlink:title="runtime.mallocgc ... runtime.mProf_Malloc (0.55s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M840.5159,-664.8079C866.5243,-648.0567 895.8351,-629.1785 918.3026,-614.708"/>
<polygon fill="#000000" stroke="#000000" points="920.3523,-617.551 926.8643,-609.1936 916.5619,-611.666 920.3523,-617.551"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.mallocgc ... runtime.mProf_Malloc (0.55s)">
<text text-anchor="middle" x="904.8364" y="-635.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.55s</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N5 -->
<g id="edge4" class="edge">
<title>N6&#45;&gt;N5</title>
<g id="a_edge4"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (9.04s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M778.1123,-794.9827C778.1123,-783.496 778.1123,-769.2045 778.1123,-755.4179"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="781.6124,-755.0283 778.1123,-745.0283 774.6124,-755.0284 781.6124,-755.0283"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (9.04s)">
<text text-anchor="middle" x="794.8364" y="-765.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.04s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.systemstack (6.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2722.1206,-515.5 2600.104,-515.5 2600.104,-468.5 2722.1206,-468.5 2722.1206,-515.5"/>
<text text-anchor="middle" x="2661.1123" y="-501.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2661.1123" y="-488.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.34s(1.13%)</text>
<text text-anchor="middle" x="2661.1123" y="-475.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 6.11s(20.39%)</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.mach_semaphore_signal (3.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2821.2726,-417 2500.952,-417 2500.952,-363 2821.2726,-363 2821.2726,-417"/>
<text text-anchor="middle" x="2661.1123" y="-394.6" font-family="Times,serif" font-size="23.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2661.1123" y="-371.6" font-family="Times,serif" font-size="23.00" fill="#000000">3.18s(10.61%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N16 -->
<g id="edge14" class="edge">
<title>N7&#45;&gt;N16</title>
<g id="a_edge14"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (2.88s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2661.1123,-468.3428C2661.1123,-456.1495 2661.1123,-440.9958 2661.1123,-427.2742"/>
<polygon fill="#000000" stroke="#000000" points="2664.6124,-427.1332 2661.1123,-417.1332 2657.6124,-427.1332 2664.6124,-427.1332"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (2.88s)">
<text text-anchor="middle" x="2677.8364" y="-437.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.88s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.90s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3145.1628,-409 2991.0618,-409 2991.0618,-371 3145.1628,-371 3145.1628,-409"/>
<text text-anchor="middle" x="3068.1123" y="-397" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="3068.1123" y="-387" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.067%)</text>
<text text-anchor="middle" x="3068.1123" y="-377" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.90s(3.00%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N31 -->
<g id="edge34" class="edge">
<title>N7&#45;&gt;N31</title>
<g id="a_edge34"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.90s)">
<path fill="none" stroke="#000000" d="M2722.185,-479.0331C2786.8179,-464.9965 2891.6387,-441.3363 2981.1123,-417 2987.0209,-415.3929 2993.1324,-413.6543 2999.2502,-411.8607"/>
<polygon fill="#000000" stroke="#000000" points="3000.2537,-415.2139 3008.8408,-409.008 2998.2579,-408.5044 3000.2537,-415.2139"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.90s)">
<text text-anchor="middle" x="2927.8364" y="-437.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.90s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.deferproc.func1 (0.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2972.2261,-412 2839.9985,-412 2839.9985,-368 2972.2261,-368 2972.2261,-412"/>
<text text-anchor="middle" x="2906.1123" y="-398.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2906.1123" y="-386.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.18s(0.6%)</text>
<text text-anchor="middle" x="2906.1123" y="-374.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.66s(2.20%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N36 -->
<g id="edge43" class="edge">
<title>N7&#45;&gt;N36</title>
<g id="a_edge43"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.66s)">
<path fill="none" stroke="#000000" d="M2717.6279,-468.4711C2755.2779,-452.7964 2804.781,-432.1869 2843.6071,-416.0226"/>
<polygon fill="#000000" stroke="#000000" points="2845.3477,-419.0892 2853.2343,-412.0145 2842.6572,-412.6269 2845.3477,-419.0892"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.66s)">
<text text-anchor="middle" x="2806.8364" y="-437.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.66s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.(*mheap).alloc.func1 (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3411.9096,-408 3300.315,-408 3300.315,-372 3411.9096,-372 3411.9096,-408"/>
<text text-anchor="middle" x="3356.1123" y="-391.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="3356.1123" y="-383.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.26s(0.87%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N61 -->
<g id="edge62" class="edge">
<title>N7&#45;&gt;N61</title>
<g id="a_edge62"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.26s)">
<path fill="none" stroke="#000000" d="M2722.4307,-487.6981C2809.2043,-481.2568 2972.6898,-467.8193 3111.1123,-449 3192.0596,-437.9948 3213.7641,-440.1332 3292.1123,-417 3297.1163,-415.5225 3302.257,-413.7732 3307.3451,-411.8862"/>
<polygon fill="#000000" stroke="#000000" points="3308.9656,-415.0113 3317.0155,-408.1229 3306.4269,-408.4879 3308.9656,-415.0113"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.26s)">
<text text-anchor="middle" x="3233.8364" y="-437.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.deferreturn.func1 (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3282.8988,-409 3163.3258,-409 3163.3258,-371 3282.8988,-371 3282.8988,-409"/>
<text text-anchor="middle" x="3223.1123" y="-397" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="3223.1123" y="-387" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.13%)</text>
<text text-anchor="middle" x="3223.1123" y="-377" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.26s(0.87%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N64 -->
<g id="edge63" class="edge">
<title>N7&#45;&gt;N64</title>
<g id="a_edge63"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.26s)">
<path fill="none" stroke="#000000" d="M2722.3567,-487.1469C2816.4781,-478.6944 3001.7773,-458.1037 3154.1123,-417 3159.0316,-415.6727 3164.0804,-414.1097 3169.101,-412.4158"/>
<polygon fill="#000000" stroke="#000000" points="3170.421,-415.6614 3178.6794,-409.0245 3168.0847,-409.0628 3170.421,-415.6614"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.26s)">
<text text-anchor="middle" x="3090.8364" y="-437.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.mach_semaphore_wait (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2482.5615,-408 2315.6631,-408 2315.6631,-372 2482.5615,-372 2482.5615,-408"/>
<text text-anchor="middle" x="2399.1123" y="-392.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="2399.1123" y="-380.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.23s(0.77%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N71 -->
<g id="edge68" class="edge">
<title>N7&#45;&gt;N71</title>
<g id="a_edge68"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.23s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2600.6752,-468.4711C2556.6996,-451.3508 2497.6027,-428.3436 2454.7775,-411.6712"/>
<polygon fill="#000000" stroke="#000000" points="2455.9422,-408.3688 2445.3537,-408.0024 2453.4026,-414.8919 2455.9422,-408.3688"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.23s)">
<text text-anchor="middle" x="2561.8364" y="-437.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="strconv.ParseFloat (5.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2579.4689,-1245 2482.7558,-1245 2482.7558,-1204 2579.4689,-1204 2579.4689,-1245"/>
<text text-anchor="middle" x="2531.1123" y="-1232.2" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.ParseFloat</text>
<text text-anchor="middle" x="2531.1123" y="-1221.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.10s(0.33%)</text>
<text text-anchor="middle" x="2531.1123" y="-1210.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 5.73s(19.12%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N9 -->
<g id="edge6" class="edge">
<title>N8&#45;&gt;N9</title>
<g id="a_edge6"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (5.73s)">
<path fill="none" stroke="#000000" d="M2531.1123,-1305.4039C2531.1123,-1290.7601 2531.1123,-1271.3463 2531.1123,-1255.2069"/>
<polygon fill="#000000" stroke="#000000" points="2534.6124,-1255.1568 2531.1123,-1245.1569 2527.6124,-1255.1569 2534.6124,-1255.1568"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (5.73s)">
<text text-anchor="middle" x="2547.8364" y="-1274.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.73s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="strconv.atof64 (5.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2591.1809,-1145 2471.0437,-1145 2471.0437,-1092 2591.1809,-1092 2591.1809,-1145"/>
<text text-anchor="middle" x="2531.1123" y="-1129" font-family="Times,serif" font-size="15.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="2531.1123" y="-1114" font-family="Times,serif" font-size="15.00" fill="#000000">0.68s(2.27%)</text>
<text text-anchor="middle" x="2531.1123" y="-1099" font-family="Times,serif" font-size="15.00" fill="#000000">of 5.63s(18.79%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N10 -->
<g id="edge7" class="edge">
<title>N9&#45;&gt;N10</title>
<g id="a_edge7"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (5.63s)">
<path fill="none" stroke="#000000" d="M2531.1123,-1203.8105C2531.1123,-1190.0707 2531.1123,-1171.6461 2531.1123,-1155.4358"/>
<polygon fill="#000000" stroke="#000000" points="2534.6124,-1155.1745 2531.1123,-1145.1745 2527.6124,-1155.1745 2534.6124,-1155.1745"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (5.63s)">
<text text-anchor="middle" x="2547.8364" y="-1165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.63s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N6 -->
<g id="edge12" class="edge">
<title>N10&#45;&gt;N6</title>
<g id="a_edge12"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (3.15s)">
<path fill="none" stroke="#000000" d="M2470.7138,-1112.4491C2372.3816,-1101.7215 2182.9406,-1077.1401 2126.1123,-1042 2054.8933,-997.9613 2084.9847,-933.2453 2012.1123,-892 1910.3232,-834.388 1087.0935,-821.5975 844.9011,-819.0695"/>
<polygon fill="#000000" stroke="#000000" points="844.8636,-815.5691 834.8284,-818.9669 844.7921,-822.5687 844.8636,-815.5691"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (3.15s)">
<text text-anchor="middle" x="2086.8364" y="-956.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.15s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.duffzero (1.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2265.5143,-1035 2134.7103,-1035 2134.7103,-993 2265.5143,-993 2265.5143,-1035"/>
<text text-anchor="middle" x="2200.1123" y="-1017.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="2200.1123" y="-1000.4" font-family="Times,serif" font-size="17.00" fill="#000000">1.12s(3.74%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N27 -->
<g id="edge29" class="edge">
<title>N10&#45;&gt;N27</title>
<g id="a_edge29"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (1.11s)">
<path fill="none" stroke="#000000" d="M2471.0068,-1101.9403C2418.675,-1087.2061 2340.936,-1064.5549 2274.1123,-1042 2270.824,-1040.8901 2267.464,-1039.7266 2264.0785,-1038.5308"/>
<polygon fill="#000000" stroke="#000000" points="2265.1026,-1035.1797 2254.5081,-1035.0932 2262.7362,-1041.7677 2265.1026,-1035.1797"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (1.11s)">
<text text-anchor="middle" x="2388.5801" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.11s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="strconv.special (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2376.7672,-1036 2283.4574,-1036 2283.4574,-992 2376.7672,-992 2376.7672,-1036"/>
<text text-anchor="middle" x="2330.1123" y="-1022.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.special</text>
<text text-anchor="middle" x="2330.1123" y="-1010.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.25s(0.83%)</text>
<text text-anchor="middle" x="2330.1123" y="-998.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.26s(0.87%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N67 -->
<g id="edge65" class="edge">
<title>N10&#45;&gt;N67</title>
<g id="a_edge65"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.26s)">
<path fill="none" stroke="#000000" d="M2480.1317,-1091.9951C2449.9868,-1076.3228 2411.9175,-1056.5306 2381.672,-1040.8059"/>
<polygon fill="#000000" stroke="#000000" points="2383.0411,-1037.573 2372.554,-1036.0655 2379.8121,-1043.7837 2383.0411,-1037.573"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.special (0.26s)">
<text text-anchor="middle" x="2458.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="strconv.readFloat (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2493.4757,-1032 2394.7489,-1032 2394.7489,-996 2493.4757,-996 2493.4757,-1032"/>
<text text-anchor="middle" x="2444.1123" y="-1016.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.readFloat</text>
<text text-anchor="middle" x="2444.1123" y="-1004.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.23s(0.77%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N72 -->
<g id="edge69" class="edge">
<title>N10&#45;&gt;N72</title>
<g id="a_edge69"><a xlink:title="strconv.atof64 &#45;&gt; strconv.readFloat (0.23s)">
<path fill="none" stroke="#000000" d="M2508.9334,-1091.8599C2495.6435,-1075.8967 2478.8261,-1055.6965 2465.6517,-1039.872"/>
<polygon fill="#000000" stroke="#000000" points="2468.2205,-1037.4872 2459.1324,-1032.0413 2462.8408,-1041.966 2468.2205,-1037.4872"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.readFloat (0.23s)">
<text text-anchor="middle" x="2508.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="strconv.(*decimal).set (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2632.962,-1032 2511.2626,-1032 2511.2626,-996 2632.962,-996 2632.962,-1032"/>
<text text-anchor="middle" x="2572.1123" y="-1016.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.(*decimal).set</text>
<text text-anchor="middle" x="2572.1123" y="-1004.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.20s(0.67%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N78 -->
<g id="edge77" class="edge">
<title>N10&#45;&gt;N78</title>
<g id="a_edge77"><a xlink:title="strconv.atof64 &#45;&gt; strconv.(*decimal).set (0.20s)">
<path fill="none" stroke="#000000" d="M2541.5644,-1091.8599C2547.5977,-1076.4825 2555.1735,-1057.1733 2561.2713,-1041.6314"/>
<polygon fill="#000000" stroke="#000000" points="2564.6396,-1042.6288 2565.0339,-1032.0413 2558.1232,-1040.0721 2564.6396,-1042.6288"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; strconv.(*decimal).set (0.20s)">
<text text-anchor="middle" x="2568.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="strconv.Atoi (4.54s)">
<polygon fill="#f8f8f8" stroke="#000000" points="277.296,-1245 184.9287,-1245 184.9287,-1204 277.296,-1204 277.296,-1245"/>
<text text-anchor="middle" x="231.1123" y="-1232.2" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="231.1123" y="-1221.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.13s(0.43%)</text>
<text text-anchor="middle" x="231.1123" y="-1210.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 4.54s(15.15%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N12 -->
<g id="edge9" class="edge">
<title>N11&#45;&gt;N12</title>
<g id="a_edge9"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (4.54s)">
<path fill="none" stroke="#000000" d="M228.7559,-1305.4039C229.1824,-1290.7601 229.7478,-1271.3463 230.2179,-1255.2069"/>
<polygon fill="#000000" stroke="#000000" points="233.7179,-1255.2546 230.5106,-1245.1569 226.7209,-1255.0507 233.7179,-1255.2546"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (4.54s)">
<text text-anchor="middle" x="246.8364" y="-1274.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.54s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="strconv.ParseInt (4.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="287.7097,-1143.5 174.5149,-1143.5 174.5149,-1093.5 287.7097,-1093.5 287.7097,-1143.5"/>
<text text-anchor="middle" x="231.1123" y="-1128.3" font-family="Times,serif" font-size="14.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="231.1123" y="-1114.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.47s(1.57%)</text>
<text text-anchor="middle" x="231.1123" y="-1100.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 4.41s(14.71%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N13 -->
<g id="edge10" class="edge">
<title>N12&#45;&gt;N13</title>
<g id="a_edge10"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (4.41s)">
<path fill="none" stroke="#000000" d="M231.1123,-1203.8105C231.1123,-1189.6753 231.1123,-1170.5818 231.1123,-1154.042"/>
<polygon fill="#000000" stroke="#000000" points="234.6124,-1153.6194 231.1123,-1143.6195 227.6124,-1153.6195 234.6124,-1153.6194"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (4.41s)">
<text text-anchor="middle" x="247.8364" y="-1165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.41s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="strconv.ParseUint (3.62s)">
<polygon fill="#f8f8f8" stroke="#000000" points="360.7765,-1042 231.4481,-1042 231.4481,-986 360.7765,-986 360.7765,-1042"/>
<text text-anchor="middle" x="296.1123" y="-1025.2" font-family="Times,serif" font-size="16.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="296.1123" y="-1009.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.90s(3.00%)</text>
<text text-anchor="middle" x="296.1123" y="-993.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 3.62s(12.08%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N14 -->
<g id="edge11" class="edge">
<title>N13&#45;&gt;N14</title>
<g id="a_edge11"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (3.62s)">
<path fill="none" stroke="#000000" d="M246.6814,-1093.4696C254.6437,-1080.6687 264.487,-1064.8437 273.2886,-1050.6936"/>
<polygon fill="#000000" stroke="#000000" points="276.2982,-1052.4816 278.608,-1042.1415 270.3542,-1048.7843 276.2982,-1052.4816"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (3.62s)">
<text text-anchor="middle" x="282.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.62s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N43 -->
<g id="edge51" class="edge">
<title>N13&#45;&gt;N43</title>
<g id="a_edge51"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.32s)">
<path fill="none" stroke="#000000" d="M214.106,-1093.4696C204.778,-1079.7404 193.0865,-1062.5324 182.9703,-1047.6431"/>
<polygon fill="#000000" stroke="#000000" points="185.7408,-1045.4928 177.2259,-1039.1883 179.9508,-1049.4267 185.7408,-1045.4928"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.32s)">
<text text-anchor="middle" x="216.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N6 -->
<g id="edge15" class="edge">
<title>N14&#45;&gt;N6</title>
<g id="a_edge15"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (2.72s)">
<path fill="none" stroke="#000000" d="M300.1842,-985.7517C307.441,-947.7585 326.6969,-882.3771 375.1123,-860 433.2302,-833.1385 612.5028,-823.4941 711.2161,-820.1637"/>
<polygon fill="#000000" stroke="#000000" points="711.5036,-823.6563 721.3847,-819.8334 711.2763,-816.66 711.5036,-823.6563"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (2.72s)">
<text text-anchor="middle" x="353.8364" y="-909.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.72s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (2.95s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1323.2981,-1245 1106.9265,-1245 1106.9265,-1204 1323.2981,-1204 1323.2981,-1245"/>
<text text-anchor="middle" x="1215.1123" y="-1232.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="1215.1123" y="-1221.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.13s(0.43%)</text>
<text text-anchor="middle" x="1215.1123" y="-1210.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 2.95s(9.84%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N17 -->
<g id="edge13" class="edge">
<title>N15&#45;&gt;N17</title>
<g id="a_edge13"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.95s)">
<path fill="none" stroke="#000000" d="M912.3248,-1306.9698C909.3644,-1295.3579 908.4244,-1281.3382 916.6641,-1272 937.9203,-1247.9098 1028.3773,-1259.0059 1060.1123,-1254 1073.7207,-1251.8534 1087.9644,-1249.4117 1102.0686,-1246.8736"/>
<polygon fill="#000000" stroke="#000000" points="1103.0911,-1250.2451 1112.303,-1245.0114 1101.8379,-1243.3582 1103.0911,-1250.2451"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.95s)">
<text text-anchor="middle" x="933.8364" y="-1274.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.95s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="737.0896,-1242.5 575.135,-1242.5 575.135,-1206.5 737.0896,-1206.5 737.0896,-1242.5"/>
<text text-anchor="middle" x="656.1123" y="-1230.8" font-family="Times,serif" font-size="9.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="656.1123" y="-1221.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.033%)</text>
<text text-anchor="middle" x="656.1123" y="-1212.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.23s(0.77%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N68 -->
<g id="edge67" class="edge">
<title>N15&#45;&gt;N68</title>
<g id="a_edge67"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.23s)">
<path fill="none" stroke="#000000" d="M867.3225,-1306.904C822.3688,-1289.3652 757.9655,-1264.2382 712.1154,-1246.3497"/>
<polygon fill="#000000" stroke="#000000" points="713.215,-1243.0218 702.6267,-1242.6477 710.6706,-1249.543 713.215,-1243.0218"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.23s)">
<text text-anchor="middle" x="828.8364" y="-1274.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N1 -->
<g id="edge16" class="edge">
<title>N17&#45;&gt;N1</title>
<g id="a_edge16"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.70s)">
<path fill="none" stroke="#000000" d="M1215.0825,-1245.1586C1215.5873,-1270.6279 1218.2434,-1314.9641 1229.6641,-1351 1234.0557,-1364.8571 1240.7171,-1379.0443 1247.6715,-1391.8341"/>
<polygon fill="#000000" stroke="#000000" points="1244.8048,-1393.8768 1252.759,-1400.8755 1250.9053,-1390.444 1244.8048,-1393.8768"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.70s)">
<text text-anchor="middle" x="1246.8364" y="-1323.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.70s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N6 -->
<g id="edge102" class="edge">
<title>N17&#45;&gt;N6</title>
<g id="a_edge102"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.06s)">
<path fill="none" stroke="#000000" d="M1288.989,-1203.9303C1301.968,-1200.6846 1315.3911,-1197.5606 1328.1123,-1195 1355.8404,-1189.4188 1433.2042,-1196.0487 1454.1123,-1177 1473.8745,-1158.9952 1468.1123,-1145.2342 1468.1123,-1118.5 1468.1123,-1118.5 1468.1123,-1118.5 1468.1123,-914 1468.1123,-851.4905 1018.0353,-827.6583 844.8834,-820.8027"/>
<polygon fill="#000000" stroke="#000000" points="844.9997,-817.3046 834.8711,-820.413 844.7274,-824.2993 844.9997,-817.3046"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.06s)">
<text text-anchor="middle" x="1484.8364" y="-1009.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N69 -->
<g id="edge109" class="edge">
<title>N17&#45;&gt;N69</title>
<g id="a_edge109"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1286.4479,-1203.9355C1300.1847,-1200.5284 1314.5261,-1197.3469 1328.1123,-1195 1419.1118,-1179.2809 1448.1077,-1207.9547 1535.1123,-1177 1612.1868,-1149.5783 1807.5337,-1002.5097 1887.3397,-941.0354"/>
<polygon fill="#000000" stroke="#000000" points="1889.814,-943.547 1895.592,-934.6664 1885.5371,-938.0055 1889.814,-943.547"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="1742.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N6 -->
<g id="edge18" class="edge">
<title>N18&#45;&gt;N6</title>
<g id="a_edge18"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.74s)">
<path fill="none" stroke="#000000" d="M1087.4583,-901.0211C1024.6469,-884.2655 915.0674,-855.0341 844.6051,-836.2376"/>
<polygon fill="#000000" stroke="#000000" points="845.4954,-832.8528 834.9312,-833.657 843.6911,-839.6163 845.4954,-832.8528"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.74s)">
<text text-anchor="middle" x="995.8364" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.74s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.typedmemmove (0.51s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2178.7515,-840.5 2045.4731,-840.5 2045.4731,-796.5 2178.7515,-796.5 2178.7515,-840.5"/>
<text text-anchor="middle" x="2112.1123" y="-826.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="2112.1123" y="-814.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.19s(0.63%)</text>
<text text-anchor="middle" x="2112.1123" y="-802.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.51s(1.70%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N42 -->
<g id="edge60" class="edge">
<title>N18&#45;&gt;N42</title>
<g id="a_edge60"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.26s)">
<path fill="none" stroke="#000000" d="M1184.8462,-909.2315C1343.0043,-893.756 1842.8402,-844.8478 2035.4218,-826.004"/>
<polygon fill="#000000" stroke="#000000" points="2035.8487,-829.4791 2045.4603,-825.0218 2035.167,-822.5123 2035.8487,-829.4791"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.26s)">
<text text-anchor="middle" x="1699.8364" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N29 -->
<g id="edge85" class="edge">
<title>N20&#45;&gt;N29</title>
<g id="a_edge85"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.16s)">
<path fill="none" stroke="#000000" d="M1690.3246,-1194.9731C1709.4343,-1179.3913 1732.7041,-1160.4175 1751.2842,-1145.2675"/>
<polygon fill="#000000" stroke="#000000" points="1753.6576,-1147.8484 1759.196,-1138.8164 1749.234,-1142.4232 1753.6576,-1147.8484"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.16s)">
<text text-anchor="middle" x="1743.8364" y="-1165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.aeshashbody (0.51s)">
<polygon fill="#f8f8f8" stroke="#000000" points="712.196,-1136.5 578.0287,-1136.5 578.0287,-1100.5 712.196,-1100.5 712.196,-1136.5"/>
<text text-anchor="middle" x="645.1123" y="-1121.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="645.1123" y="-1107.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.51s(1.70%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N41 -->
<g id="edge46" class="edge">
<title>N20&#45;&gt;N41</title>
<g id="a_edge46"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.48s)">
<path fill="none" stroke="#000000" d="M1576.7153,-1194.8629C1540.8864,-1182.5724 1497.4128,-1169.6495 1457.1123,-1163 1295.6904,-1136.3659 882.0742,-1174.2863 721.1123,-1145 713.9291,-1143.693 706.5121,-1141.8157 699.256,-1139.6552"/>
<polygon fill="#000000" stroke="#000000" points="700.0883,-1136.2474 689.4981,-1136.5605 697.9722,-1142.9199 700.0883,-1136.2474"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.48s)">
<text text-anchor="middle" x="1534.8364" y="-1165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.48s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N6 -->
<g id="edge23" class="edge">
<title>N21&#45;&gt;N6</title>
<g id="a_edge23"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.44s)">
<path fill="none" stroke="#000000" d="M384.0231,-1305.2841C375.3939,-1233.3187 359.028,-1004.7466 480.1123,-892 513.2825,-861.1139 633.9549,-838.8207 711.1921,-827.3385"/>
<polygon fill="#000000" stroke="#000000" points="711.9326,-830.7676 721.321,-825.8575 710.9198,-823.8412 711.9326,-830.7676"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.44s)">
<text text-anchor="middle" x="409.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.44s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N18 -->
<g id="edge99" class="edge">
<title>N22&#45;&gt;N18</title>
<g id="a_edge99"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.08s)">
<path fill="none" stroke="#000000" d="M1087.8115,-1305.432C1089.9076,-1279.1086 1093.7353,-1233.7888 1098.1123,-1195 1108.3118,-1104.6134 1123.5837,-998.3183 1131.2927,-946.1646"/>
<polygon fill="#000000" stroke="#000000" points="1134.7686,-946.5847 1132.7741,-936.1793 1127.8444,-945.5574 1134.7686,-946.5847"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.08s)">
<text text-anchor="middle" x="1127.8364" y="-1114.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N29 -->
<g id="edge105" class="edge">
<title>N22&#45;&gt;N29</title>
<g id="a_edge105"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.04s)">
<path fill="none" stroke="#000000" d="M1161.9331,-1305.4949C1210.6612,-1291.1929 1275.2566,-1271.9356 1332.1123,-1254 1411.4146,-1228.9834 1430.1338,-1219.2821 1509.6641,-1195 1573.0163,-1175.6574 1645.1886,-1155.6178 1699.6176,-1140.9033"/>
<polygon fill="#000000" stroke="#000000" points="1700.8248,-1144.2029 1709.5681,-1138.2192 1699.0016,-1137.4445 1700.8248,-1144.2029"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.04s)">
<text text-anchor="middle" x="1526.8364" y="-1220.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="main.(*machine).executeSubtract (0.68s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1051.4976,-1243.5 900.727,-1243.5 900.727,-1205.5 1051.4976,-1205.5 1051.4976,-1243.5"/>
<text text-anchor="middle" x="976.1123" y="-1231.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="976.1123" y="-1221.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.067%)</text>
<text text-anchor="middle" x="976.1123" y="-1211.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.68s(2.27%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N34 -->
<g id="edge39" class="edge">
<title>N22&#45;&gt;N34</title>
<g id="a_edge39"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.68s)">
<path fill="none" stroke="#000000" d="M1055.7073,-1305.3032C1047.9811,-1299.2851 1039.84,-1292.6018 1032.6641,-1286 1020.982,-1275.2525 1008.9531,-1262.4549 999.0089,-1251.3241"/>
<polygon fill="#000000" stroke="#000000" points="1001.4092,-1248.7542 992.1711,-1243.5669 996.158,-1253.383 1001.4092,-1248.7542"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.68s)">
<text text-anchor="middle" x="1049.8364" y="-1274.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.68s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="main.(*machine).executeLessThan (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="883.0615,-1242.5 755.1631,-1242.5 755.1631,-1206.5 883.0615,-1206.5 883.0615,-1242.5"/>
<text text-anchor="middle" x="819.1123" y="-1226.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeLessThan</text>
<text text-anchor="middle" x="819.1123" y="-1218.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.27s(0.9%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N59 -->
<g id="edge56" class="edge">
<title>N22&#45;&gt;N59</title>
<g id="a_edge56"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeLessThan (0.27s)">
<path fill="none" stroke="#000000" d="M1028.88,-1305.4222C1013.7576,-1299.3487 997.5148,-1292.6088 982.6641,-1286 969.7518,-1280.2539 967.2929,-1277.1005 954.1123,-1272 927.3526,-1261.6449 919.2266,-1263.3874 892.1123,-1254 885.2743,-1251.6326 878.1428,-1248.9828 871.1316,-1246.2687"/>
<polygon fill="#000000" stroke="#000000" points="872.2712,-1242.9559 861.6842,-1242.5483 869.7062,-1249.4691 872.2712,-1242.9559"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeLessThan (0.27s)">
<text text-anchor="middle" x="999.8364" y="-1274.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N5 -->
<g id="edge30" class="edge">
<title>N23&#45;&gt;N5</title>
<g id="a_edge30"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (1.04s)">
<path fill="none" stroke="#000000" d="M55.1123,-1303.7722C55.1123,-1282.8957 55.1123,-1251.6806 55.1123,-1224.5 55.1123,-1224.5 55.1123,-1224.5 55.1123,-818.5 55.1123,-756.9627 469.1595,-723.5637 670.5886,-710.9565"/>
<polygon fill="#000000" stroke="#000000" points="670.841,-714.4477 680.6053,-710.3358 670.4079,-707.4611 670.841,-714.4477"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (1.04s)">
<text text-anchor="middle" x="71.8364" y="-1009.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.04s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.mapassign1 (1.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="519.5147,-1245 414.7099,-1245 414.7099,-1204 519.5147,-1204 519.5147,-1245"/>
<text text-anchor="middle" x="467.1123" y="-1232.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="467.1123" y="-1221.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.10s(0.33%)</text>
<text text-anchor="middle" x="467.1123" y="-1210.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 1.15s(3.84%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N26 -->
<g id="edge28" class="edge">
<title>N24&#45;&gt;N26</title>
<g id="a_edge28"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (1.15s)">
<path fill="none" stroke="#000000" d="M532.4927,-1308.3979C520.7596,-1302.4685 509.035,-1295.0514 499.6641,-1286 490.5915,-1277.2368 483.5045,-1265.3911 478.2928,-1254.4353"/>
<polygon fill="#000000" stroke="#000000" points="481.4297,-1252.8744 474.1927,-1245.1364 475.0247,-1255.6985 481.4297,-1252.8744"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (1.15s)">
<text text-anchor="middle" x="516.8364" y="-1274.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.15s</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N7 -->
<g id="edge27" class="edge">
<title>N25&#45;&gt;N7</title>
<g id="a_edge27"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (1.17s)">
<path fill="none" stroke="#000000" d="M2435.0991,-571.9118C2479.3472,-556.267 2542.311,-534.0048 2590.5483,-516.9494"/>
<polygon fill="#000000" stroke="#000000" points="2591.7282,-520.2446 2599.9895,-513.6113 2589.3947,-513.645 2591.7282,-520.2446"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (1.17s)">
<text text-anchor="middle" x="2553.8364" y="-537.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.17s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.newarray (1.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="501.4133,-1137.5 414.8113,-1137.5 414.8113,-1099.5 501.4133,-1099.5 501.4133,-1137.5"/>
<text text-anchor="middle" x="458.1123" y="-1125.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="458.1123" y="-1115.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.13%)</text>
<text text-anchor="middle" x="458.1123" y="-1105.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 1.02s(3.40%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N28 -->
<g id="edge31" class="edge">
<title>N26&#45;&gt;N28</title>
<g id="a_edge31"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (1.02s)">
<path fill="none" stroke="#000000" d="M459.9584,-1203.9555C457.4337,-1195.689 454.9134,-1185.9986 453.6641,-1177 452.3411,-1167.4708 452.5999,-1157.0098 453.4534,-1147.6017"/>
<polygon fill="#000000" stroke="#000000" points="456.9457,-1147.8686 454.617,-1137.5329 449.992,-1147.0649 456.9457,-1147.8686"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (1.02s)">
<text text-anchor="middle" x="470.8364" y="-1165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.02s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N41 -->
<g id="edge110" class="edge">
<title>N26&#45;&gt;N41</title>
<g id="a_edge110"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.03s)">
<path fill="none" stroke="#000000" d="M501.8551,-1203.8105C531.6904,-1186.0434 574.6804,-1160.4426 605.7747,-1141.9258"/>
<polygon fill="#000000" stroke="#000000" points="607.8099,-1144.7874 614.611,-1136.6637 604.2283,-1138.7731 607.8099,-1144.7874"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.03s)">
<text text-anchor="middle" x="583.8364" y="-1165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N5 -->
<g id="edge32" class="edge">
<title>N28&#45;&gt;N5</title>
<g id="a_edge32"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.98s)">
<path fill="none" stroke="#000000" d="M458.0743,-1099.2991C458.7768,-1058.5411 464.6567,-961.4284 502.6641,-892 539.0296,-825.5708 610.3246,-778.1551 671.2684,-747.6916"/>
<polygon fill="#000000" stroke="#000000" points="673.1275,-750.6782 680.5661,-743.1338 670.0463,-744.3928 673.1275,-750.6782"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.98s)">
<text text-anchor="middle" x="519.8364" y="-909.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.98s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N7 -->
<g id="edge41" class="edge">
<title>N30&#45;&gt;N7</title>
<g id="a_edge41"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.66s)">
<path fill="none" stroke="#000000" d="M2781.8853,-1305.2624C2775.8107,-1284.5794 2768.1123,-1252.7872 2768.1123,-1224.5 2768.1123,-1224.5 2768.1123,-1224.5 2768.1123,-591 2768.1123,-561.1168 2745.3486,-537.7387 2720.8204,-521.2223"/>
<polygon fill="#000000" stroke="#000000" points="2722.4192,-518.0909 2712.1053,-515.667 2718.6565,-523.9936 2722.4192,-518.0909"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.66s)">
<text text-anchor="middle" x="2784.8364" y="-909.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.66s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.(*mcentral).cacheSpan (0.88s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3139.1112,-307 2997.1134,-307 2997.1134,-269 3139.1112,-269 3139.1112,-307"/>
<text text-anchor="middle" x="3068.1123" y="-295" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="3068.1123" y="-285" font-family="Times,serif" font-size="10.00" fill="#000000">0.05s(0.17%)</text>
<text text-anchor="middle" x="3068.1123" y="-275" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.88s(2.94%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N32 -->
<g id="edge35" class="edge">
<title>N31&#45;&gt;N32</title>
<g id="a_edge35"><a xlink:title="runtime.(*mcache).nextFree.func1 ... runtime.(*mcentral).cacheSpan (0.88s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3068.1123,-370.8146C3068.1123,-355.7129 3068.1123,-334.4146 3068.1123,-317.199"/>
<polygon fill="#000000" stroke="#000000" points="3071.6124,-317.0994 3068.1123,-307.0994 3064.6124,-317.0994 3071.6124,-317.0994"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 ... runtime.(*mcentral).cacheSpan (0.88s)">
<text text-anchor="middle" x="3084.8364" y="-333.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.88s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.(*mcentral).grow (0.68s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3127.9086,-211.5 3008.316,-211.5 3008.316,-173.5 3127.9086,-173.5 3127.9086,-211.5"/>
<text text-anchor="middle" x="3068.1123" y="-199.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="3068.1123" y="-189.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="3068.1123" y="-179.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.68s(2.27%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N35 -->
<g id="edge40" class="edge">
<title>N32&#45;&gt;N35</title>
<g id="a_edge40"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.68s)">
<path fill="none" stroke="#000000" d="M3068.1123,-268.6741C3068.1123,-255.3414 3068.1123,-237.3602 3068.1123,-222.216"/>
<polygon fill="#000000" stroke="#000000" points="3071.6124,-221.7971 3068.1123,-211.7971 3064.6124,-221.7971 3071.6124,-221.7971"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.68s)">
<text text-anchor="middle" x="3084.8364" y="-233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.68s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.lock (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3483.7956,-213 3396.429,-213 3396.429,-172 3483.7956,-172 3483.7956,-213"/>
<text text-anchor="middle" x="3440.1123" y="-200.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="3440.1123" y="-189.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.12s(0.4%)</text>
<text text-anchor="middle" x="3440.1123" y="-178.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.34s(1.13%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N49 -->
<g id="edge96" class="edge">
<title>N32&#45;&gt;N49</title>
<g id="a_edge96"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.09s)">
<path fill="none" stroke="#000000" d="M3131.4302,-268.9563C3172.7868,-256.9701 3228.1142,-241.7837 3277.6641,-231 3322.9171,-221.1514 3337.7622,-225.3598 3386.5191,-212.8484"/>
<polygon fill="#000000" stroke="#000000" points="3387.6279,-216.175 3396.3859,-210.2127 3385.8213,-209.4121 3387.6279,-216.175"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.09s)">
<text text-anchor="middle" x="3293.8364" y="-233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N7 -->
<g id="edge61" class="edge">
<title>N33&#45;&gt;N7</title>
<g id="a_edge61"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.26s)">
<path fill="none" stroke="#000000" d="M2675.2621,-1303.8517C2686.066,-1283.5385 2699.1123,-1253.0901 2699.1123,-1224.5 2699.1123,-1224.5 2699.1123,-1224.5 2699.1123,-591 2699.1123,-567.8485 2689.9428,-543.5533 2680.6124,-524.8244"/>
<polygon fill="#000000" stroke="#000000" points="2683.6495,-523.0793 2675.9129,-515.8408 2677.4469,-526.324 2683.6495,-523.0793"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.26s)">
<text text-anchor="middle" x="2715.8364" y="-909.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.memmove (0.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2349.254,-306 2226.9706,-306 2226.9706,-270 2349.254,-270 2349.254,-306"/>
<text text-anchor="middle" x="2288.1123" y="-290.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="2288.1123" y="-276.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.45s(1.50%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N44 -->
<g id="edge101" class="edge">
<title>N33&#45;&gt;N44</title>
<g id="a_edge101"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.07s)">
<path fill="none" stroke="#000000" d="M2661.1123,-1303.7722C2661.1123,-1282.8957 2661.1123,-1251.6806 2661.1123,-1224.5 2661.1123,-1224.5 2661.1123,-1224.5 2661.1123,-1067 2661.1123,-780.7716 2288.1123,-828.2284 2288.1123,-542 2288.1123,-542 2288.1123,-542 2288.1123,-390 2288.1123,-365.0824 2288.1123,-336.7409 2288.1123,-316.2674"/>
<polygon fill="#000000" stroke="#000000" points="2291.6124,-316.0566 2288.1123,-306.0566 2284.6124,-316.0567 2291.6124,-316.0566"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.07s)">
<text text-anchor="middle" x="2545.8364" y="-814.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="main.(*Integer).Add (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1074.0855,-1136.5 984.1392,-1136.5 984.1392,-1100.5 1074.0855,-1100.5 1074.0855,-1136.5"/>
<text text-anchor="middle" x="1029.1123" y="-1124.8" font-family="Times,serif" font-size="9.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="1029.1123" y="-1115.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.033%)</text>
<text text-anchor="middle" x="1029.1123" y="-1106.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.30s(1.00%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N50 -->
<g id="edge52" class="edge">
<title>N34&#45;&gt;N50</title>
<g id="a_edge52"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.30s)">
<path fill="none" stroke="#000000" d="M985.8333,-1205.058C994.1294,-1188.4658 1006.1526,-1164.4194 1015.4222,-1145.8802"/>
<polygon fill="#000000" stroke="#000000" points="1018.6426,-1147.2655 1019.9843,-1136.756 1012.3816,-1144.135 1018.6426,-1147.2655"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.30s)">
<text text-anchor="middle" x="1022.8364" y="-1165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.assertI2I (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="928.1445,-1137.5 844.0801,-1137.5 844.0801,-1099.5 928.1445,-1099.5 928.1445,-1137.5"/>
<text text-anchor="middle" x="886.1123" y="-1125.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="886.1123" y="-1115.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.13%)</text>
<text text-anchor="middle" x="886.1123" y="-1105.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.26s(0.87%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N63 -->
<g id="edge87" class="edge">
<title>N34&#45;&gt;N63</title>
<g id="a_edge87"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.15s)">
<path fill="none" stroke="#000000" d="M959.6049,-1205.058C945.4593,-1188.3976 924.9326,-1164.2217 909.1658,-1145.6519"/>
<polygon fill="#000000" stroke="#000000" points="911.6554,-1143.1764 902.515,-1137.8188 906.3193,-1147.7071 911.6554,-1143.1764"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.15s)">
<text text-anchor="middle" x="950.8364" y="-1165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N44 -->
<g id="edge100" class="edge">
<title>N36&#45;&gt;N44</title>
<g id="a_edge100"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.07s)">
<path fill="none" stroke="#000000" d="M2847.9726,-367.9948C2841.9901,-366.1378 2835.9616,-364.4279 2830.1123,-363 2664.219,-322.5034 2464.0531,-301.8988 2359.5473,-293.2182"/>
<polygon fill="#000000" stroke="#000000" points="2359.6824,-289.7176 2349.4303,-292.3904 2359.1115,-296.6943 2359.6824,-289.7176"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.07s)">
<text text-anchor="middle" x="2758.8364" y="-333.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.newdefer (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2963.7335,-313 2848.4911,-313 2848.4911,-263 2963.7335,-263 2963.7335,-313"/>
<text text-anchor="middle" x="2906.1123" y="-297.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2906.1123" y="-283.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.40s(1.33%)</text>
<text text-anchor="middle" x="2906.1123" y="-269.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.41s(1.37%)</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N46 -->
<g id="edge48" class="edge">
<title>N36&#45;&gt;N46</title>
<g id="a_edge48"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.41s)">
<path fill="none" stroke="#000000" d="M2906.1123,-367.8675C2906.1123,-354.9489 2906.1123,-338.3457 2906.1123,-323.6269"/>
<polygon fill="#000000" stroke="#000000" points="2909.6124,-323.322 2906.1123,-313.322 2902.6124,-323.322 2909.6124,-323.322"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.41s)">
<text text-anchor="middle" x="2922.8364" y="-333.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.gcFlushBgCredit (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3325.0508,-1346.5 3207.1738,-1346.5 3207.1738,-1308.5 3325.0508,-1308.5 3325.0508,-1346.5"/>
<text text-anchor="middle" x="3266.1123" y="-1334.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="3266.1123" y="-1324.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="3266.1123" y="-1314.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.23s(0.77%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N70 -->
<g id="edge79" class="edge">
<title>N37&#45;&gt;N70</title>
<g id="a_edge79"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcFlushBgCredit (0.19s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1515.67,-1436.7027C1683.8292,-1432.1832 2239.6493,-1415.6009 2698.1123,-1383 2878.348,-1370.1836 3090.039,-1347.4625 3196.9048,-1335.4523"/>
<polygon fill="#000000" stroke="#000000" points="3197.3697,-1338.9222 3206.9148,-1334.3242 3196.5857,-1331.9662 3197.3697,-1338.9222"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcFlushBgCredit (0.19s)">
<text text-anchor="middle" x="2870.8364" y="-1371.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.stkbucket (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1013.3129,-517 896.9117,-517 896.9117,-467 1013.3129,-467 1013.3129,-517"/>
<text text-anchor="middle" x="955.1123" y="-501.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="955.1123" y="-487.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.40s(1.33%)</text>
<text text-anchor="middle" x="955.1123" y="-473.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.43s(1.43%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N45 -->
<g id="edge47" class="edge">
<title>N40&#45;&gt;N45</title>
<g id="a_edge47"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.43s)">
<path fill="none" stroke="#000000" d="M955.1123,-572.8419C955.1123,-560.1425 955.1123,-542.7678 955.1123,-527.3798"/>
<polygon fill="#000000" stroke="#000000" points="958.6124,-527.1258 955.1123,-517.1259 951.6124,-527.1259 958.6124,-527.1258"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.43s)">
<text text-anchor="middle" x="971.8364" y="-537.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N44 -->
<g id="edge64" class="edge">
<title>N42&#45;&gt;N44</title>
<g id="a_edge64"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.26s)">
<path fill="none" stroke="#000000" d="M2133.7798,-796.2284C2152.3467,-774.717 2176.1123,-740.2897 2176.1123,-705 2176.1123,-705 2176.1123,-705 2176.1123,-390 2176.1123,-354.4873 2207.273,-328.0596 2236.7219,-311.0132"/>
<polygon fill="#000000" stroke="#000000" points="2238.7027,-313.9178 2245.7699,-306.0244 2235.3228,-307.7879 2238.7027,-313.9178"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.26s)">
<text text-anchor="middle" x="2192.8364" y="-537.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N20 -->
<g id="edge75" class="edge">
<title>N47&#45;&gt;N20</title>
<g id="a_edge75"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.20s)">
<path fill="none" stroke="#000000" d="M1429.0566,-1308.4882C1467.2282,-1294.243 1520.4196,-1274.3926 1565.507,-1257.5665"/>
<polygon fill="#000000" stroke="#000000" points="1566.8518,-1260.8005 1574.9969,-1254.025 1564.4043,-1254.2423 1566.8518,-1260.8005"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.20s)">
<text text-anchor="middle" x="1541.8364" y="-1274.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime._System (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2670.8822,-609 2597.3424,-609 2597.3424,-573 2670.8822,-573 2670.8822,-609"/>
<text text-anchor="middle" x="2634.1123" y="-592.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="2634.1123" y="-584.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.34s(1.13%)</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N7 -->
<g id="edge50" class="edge">
<title>N48&#45;&gt;N7</title>
<g id="a_edge50"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.34s)">
<path fill="none" stroke="#000000" d="M2639.0645,-572.8419C2642.6612,-559.6541 2647.6329,-541.4244 2651.945,-525.6135"/>
<polygon fill="#000000" stroke="#000000" points="2655.4077,-526.2186 2654.6623,-515.6501 2648.6544,-524.3768 2655.4077,-526.2186"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.34s)">
<text text-anchor="middle" x="2665.8364" y="-537.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.osyield (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3474.8822,-122 3405.3424,-122 3405.3424,-86 3474.8822,-86 3474.8822,-122"/>
<text text-anchor="middle" x="3440.1123" y="-105.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="3440.1123" y="-97.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.27s(0.9%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N60 -->
<g id="edge89" class="edge">
<title>N49&#45;&gt;N60</title>
<g id="a_edge89"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.12s)">
<path fill="none" stroke="#000000" d="M3440.1123,-171.9739C3440.1123,-160.1658 3440.1123,-145.1577 3440.1123,-132.2491"/>
<polygon fill="#000000" stroke="#000000" points="3443.6124,-132.0159 3440.1123,-122.016 3436.6124,-132.016 3443.6124,-132.0159"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.12s)">
<text text-anchor="middle" x="3456.8364" y="-142.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="main.Integer.Add (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1224.0977,-1033 1138.127,-1033 1138.127,-995 1224.0977,-995 1224.0977,-1033"/>
<text text-anchor="middle" x="1181.1123" y="-1021" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="1181.1123" y="-1011" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="1181.1123" y="-1001" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.29s(0.97%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N51 -->
<g id="edge53" class="edge">
<title>N50&#45;&gt;N51</title>
<g id="a_edge53"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.29s)">
<path fill="none" stroke="#000000" d="M1055.5887,-1100.2975C1080.3023,-1083.3069 1117.3907,-1057.8086 1144.8498,-1038.9305"/>
<polygon fill="#000000" stroke="#000000" points="1147.1413,-1041.6025 1153.3989,-1033.053 1143.1756,-1035.8342 1147.1413,-1041.6025"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.29s)">
<text text-anchor="middle" x="1126.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N18 -->
<g id="edge76" class="edge">
<title>N51&#45;&gt;N18</title>
<g id="a_edge76"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.20s)">
<path fill="none" stroke="#000000" d="M1172.4359,-994.719C1166.1163,-980.6755 1157.4213,-961.3534 1150.1229,-945.1347"/>
<polygon fill="#000000" stroke="#000000" points="1153.311,-943.6902 1146.0156,-936.0073 1146.9276,-946.5628 1153.311,-943.6902"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.20s)">
<text text-anchor="middle" x="1176.8364" y="-956.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N69 -->
<g id="edge107" class="edge">
<title>N51&#45;&gt;N69</title>
<g id="a_edge107"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M1224.2016,-1004.6539C1285.5521,-991.6399 1401.7294,-968.0772 1501.6641,-954 1631.0003,-935.7811 1783.9154,-923.5496 1864.9747,-917.7943"/>
<polygon fill="#000000" stroke="#000000" points="1865.2436,-921.2841 1874.9736,-917.0914 1864.7527,-914.3013 1865.2436,-921.2841"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="1518.8364" y="-956.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.mcall (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2892.8822,-1032 2819.3424,-1032 2819.3424,-996 2892.8822,-996 2892.8822,-1032"/>
<text text-anchor="middle" x="2856.1123" y="-1015.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="2856.1123" y="-1007.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.29s(0.97%)</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.park_m (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2894.3534,-932 2819.8712,-932 2819.8712,-896 2894.3534,-896 2894.3534,-932"/>
<text text-anchor="middle" x="2857.1123" y="-920.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.park_m</text>
<text text-anchor="middle" x="2857.1123" y="-911.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.033%)</text>
<text text-anchor="middle" x="2857.1123" y="-902.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.28s(0.93%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N57 -->
<g id="edge54" class="edge">
<title>N52&#45;&gt;N57</title>
<g id="a_edge54"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.28s)">
<path fill="none" stroke="#000000" d="M2856.2957,-995.6585C2856.4451,-980.7164 2856.6586,-959.3665 2856.8299,-942.2446"/>
<polygon fill="#000000" stroke="#000000" points="2860.3298,-942.2598 2856.9301,-932.2253 2853.3301,-942.1897 2860.3298,-942.2598"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.28s)">
<text text-anchor="middle" x="2872.8364" y="-956.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.morestack (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2996.8705,-1136.5 2921.3541,-1136.5 2921.3541,-1100.5 2996.8705,-1100.5 2996.8705,-1136.5"/>
<text text-anchor="middle" x="2959.1123" y="-1120.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="2959.1123" y="-1112.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.29s(0.97%)</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.gopreempt_m (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3007.3435,-1032 2910.8811,-1032 2910.8811,-996 3007.3435,-996 3007.3435,-1032"/>
<text text-anchor="middle" x="2959.1123" y="-1020.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="2959.1123" y="-1011.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.033%)</text>
<text text-anchor="middle" x="2959.1123" y="-1002.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.28s(0.93%)</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N55 -->
<g id="edge55" class="edge">
<title>N53&#45;&gt;N55</title>
<g id="a_edge55"><a xlink:title="runtime.morestack ... runtime.gopreempt_m (0.28s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2959.1123,-1100.2975C2959.1123,-1084.3617 2959.1123,-1060.942 2959.1123,-1042.5195"/>
<polygon fill="#000000" stroke="#000000" points="2962.6124,-1042.3445 2959.1123,-1032.3445 2955.6124,-1042.3446 2962.6124,-1042.3445"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.morestack ... runtime.gopreempt_m (0.28s)">
<text text-anchor="middle" x="2975.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.getitab (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="927.7672,-1036 834.4574,-1036 834.4574,-992 927.7672,-992 927.7672,-1036"/>
<text text-anchor="middle" x="881.1123" y="-1022.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="881.1123" y="-1010.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.17s(0.57%)</text>
<text text-anchor="middle" x="881.1123" y="-998.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.28s(0.93%)</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.goschedImpl (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2999.3196,-932 2914.905,-932 2914.905,-896 2999.3196,-896 2999.3196,-932"/>
<text text-anchor="middle" x="2957.1123" y="-915.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="2957.1123" y="-907.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.28s(0.93%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N56 -->
<g id="edge57" class="edge">
<title>N55&#45;&gt;N56</title>
<g id="a_edge57"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.27s)">
<path fill="none" stroke="#000000" d="M2958.7455,-995.6585C2958.4466,-980.7164 2958.0196,-959.3665 2957.6772,-942.2446"/>
<polygon fill="#000000" stroke="#000000" points="2961.1762,-942.1532 2957.4768,-932.2253 2954.1776,-942.2933 2961.1762,-942.1532"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.27s)">
<text text-anchor="middle" x="2974.8364" y="-956.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.findrunnable (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2898.9332,-836.5 2815.2914,-836.5 2815.2914,-800.5 2898.9332,-800.5 2898.9332,-836.5"/>
<text text-anchor="middle" x="2857.1123" y="-820.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="2857.1123" y="-812.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.22s(0.73%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N74 -->
<g id="edge90" class="edge">
<title>N56&#45;&gt;N74</title>
<g id="a_edge90"><a xlink:title="runtime.goschedImpl ... runtime.findrunnable (0.11s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2937.8313,-895.5866C2922.3769,-880.8277 2900.53,-859.9639 2883.4611,-843.6631"/>
<polygon fill="#000000" stroke="#000000" points="2885.6442,-840.9083 2875.995,-836.533 2880.8096,-845.9706 2885.6442,-840.9083"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.goschedImpl ... runtime.findrunnable (0.11s)">
<text text-anchor="middle" x="2928.5801" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N74 -->
<g id="edge91" class="edge">
<title>N57&#45;&gt;N74</title>
<g id="a_edge91"><a xlink:title="runtime.park_m ... runtime.findrunnable (0.11s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2857.1123,-895.5866C2857.1123,-881.7585 2857.1123,-862.5711 2857.1123,-846.7988"/>
<polygon fill="#000000" stroke="#000000" points="2860.6124,-846.5329 2857.1123,-836.533 2853.6124,-846.533 2860.6124,-846.5329"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.park_m ... runtime.findrunnable (0.11s)">
<text text-anchor="middle" x="2873.5801" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.usleep (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3486.5079,-36 3393.7167,-36 3393.7167,0 3486.5079,0 3486.5079,-36"/>
<text text-anchor="middle" x="3440.1123" y="-20.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="3440.1123" y="-7.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.28s(0.93%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N18 -->
<g id="edge98" class="edge">
<title>N59&#45;&gt;N18</title>
<g id="a_edge98"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.convT2I (0.08s)">
<path fill="none" stroke="#000000" d="M863.0112,-1206.4417C872.5764,-1202.5961 882.6626,-1198.6088 892.1123,-1195 914.1765,-1186.5739 925.2061,-1193.4926 942.1123,-1177 971.1204,-1148.7016 954.1003,-1126.6521 975.1123,-1092 1017.4064,-1022.2502 1040.3538,-1013.5383 1096.1123,-954 1099.3808,-950.51 1102.8528,-946.9006 1106.3328,-943.3436"/>
<polygon fill="#000000" stroke="#000000" points="1108.8827,-945.7427 1113.4244,-936.1707 1103.9048,-940.8212 1108.8827,-945.7427"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.convT2I (0.08s)">
<text text-anchor="middle" x="1012.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N63 -->
<g id="edge95" class="edge">
<title>N59&#45;&gt;N63</title>
<g id="a_edge95"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.assertI2I (0.09s)">
<path fill="none" stroke="#000000" d="M823.5304,-1206.3278C827.1559,-1193.5548 833.0974,-1176.42 841.6641,-1163 845.7034,-1156.6722 850.7788,-1150.5338 856.0426,-1144.9393"/>
<polygon fill="#000000" stroke="#000000" points="858.6899,-1147.2407 863.2575,-1137.6809 853.7253,-1142.3058 858.6899,-1147.2407"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.assertI2I (0.09s)">
<text text-anchor="middle" x="858.8364" y="-1165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N58 -->
<g id="edge58" class="edge">
<title>N60&#45;&gt;N58</title>
<g id="a_edge58"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.27s)">
<path fill="none" stroke="#000000" d="M3440.1123,-85.7616C3440.1123,-74.3597 3440.1123,-59.4342 3440.1123,-46.494"/>
<polygon fill="#000000" stroke="#000000" points="3443.6124,-46.2121 3440.1123,-36.2121 3436.6124,-46.2121 3443.6124,-46.2121"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.27s)">
<text text-anchor="middle" x="3456.8364" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.(*mheap).alloc_m (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3412.2437,-307 3289.9809,-307 3289.9809,-269 3412.2437,-269 3412.2437,-307"/>
<text text-anchor="middle" x="3351.1123" y="-295" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="3351.1123" y="-285" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.1%)</text>
<text text-anchor="middle" x="3351.1123" y="-275" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.26s(0.87%)</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N62 -->
<g id="edge59" class="edge">
<title>N61&#45;&gt;N62</title>
<g id="a_edge59"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.26s)">
<path fill="none" stroke="#000000" d="M3355.2184,-371.7644C3354.4787,-356.6742 3353.4136,-334.9473 3352.5536,-317.4029"/>
<polygon fill="#000000" stroke="#000000" points="3356.0349,-316.9328 3352.0494,-307.1162 3349.0433,-317.2756 3356.0349,-316.9328"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.26s)">
<text text-anchor="middle" x="3369.8364" y="-333.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.(*mheap).allocSpanLocked (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3378.3341,-213 3203.8905,-213 3203.8905,-172 3378.3341,-172 3378.3341,-213"/>
<text text-anchor="middle" x="3291.1123" y="-200.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).allocSpanLocked</text>
<text text-anchor="middle" x="3291.1123" y="-189.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.11s(0.37%)</text>
<text text-anchor="middle" x="3291.1123" y="-178.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.21s(0.7%)</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N77 -->
<g id="edge74" class="edge">
<title>N62&#45;&gt;N77</title>
<g id="a_edge74"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.21s)">
<path fill="none" stroke="#000000" d="M3338.9704,-268.6741C3330.4975,-255.1881 3319.0366,-236.9461 3309.4546,-221.6948"/>
<polygon fill="#000000" stroke="#000000" points="3312.3503,-219.7247 3304.0668,-213.1192 3306.4231,-223.4487 3312.3503,-219.7247"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.21s)">
<text text-anchor="middle" x="3338.8364" y="-233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N54 -->
<g id="edge72" class="edge">
<title>N63&#45;&gt;N54</title>
<g id="a_edge72"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.22s)">
<path fill="none" stroke="#000000" d="M885.1952,-1099.3331C884.4902,-1084.597 883.4997,-1063.8967 882.6709,-1046.5749"/>
<polygon fill="#000000" stroke="#000000" points="886.1538,-1046.131 882.1798,-1036.3097 879.1618,-1046.4656 886.1538,-1046.131"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.22s)">
<text text-anchor="middle" x="900.8364" y="-1062.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.freedefer (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3271.7263,-310 3172.4983,-310 3172.4983,-266 3271.7263,-266 3271.7263,-310"/>
<text text-anchor="middle" x="3222.1123" y="-296.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="3222.1123" y="-284.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.21s(0.7%)</text>
<text text-anchor="middle" x="3222.1123" y="-272.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.22s(0.73%)</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N75 -->
<g id="edge73" class="edge">
<title>N64&#45;&gt;N75</title>
<g id="a_edge73"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.22s)">
<path fill="none" stroke="#000000" d="M3222.9242,-370.8146C3222.7859,-356.7075 3222.5946,-337.1931 3222.4324,-320.6506"/>
<polygon fill="#000000" stroke="#000000" points="3225.9289,-320.2609 3222.3309,-310.2957 3218.9292,-320.3296 3225.9289,-320.2609"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.22s)">
<text text-anchor="middle" x="3238.8364" y="-333.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.stopm (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2881.8822,-723 2808.3424,-723 2808.3424,-687 2881.8822,-687 2881.8822,-723"/>
<text text-anchor="middle" x="2845.1123" y="-706.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="2845.1123" y="-698.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.26s(0.87%)</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.semasleep (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2873.8705,-609 2798.3541,-609 2798.3541,-573 2873.8705,-573 2873.8705,-609"/>
<text text-anchor="middle" x="2836.1123" y="-592.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep</text>
<text text-anchor="middle" x="2836.1123" y="-584.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.19s(0.63%)</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N79 -->
<g id="edge83" class="edge">
<title>N66&#45;&gt;N79</title>
<g id="a_edge83"><a xlink:title="runtime.stopm ... runtime.semasleep (0.17s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2843.6862,-686.9364C2842.253,-668.7827 2840.023,-640.536 2838.3533,-619.3859"/>
<polygon fill="#000000" stroke="#000000" points="2841.8378,-619.0501 2837.5615,-609.3566 2834.8595,-619.6011 2841.8378,-619.0501"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.stopm ... runtime.semasleep (0.17s)">
<text text-anchor="middle" x="2856.8364" y="-635.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.makemap (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="825.8358,-1139 730.3888,-1139 730.3888,-1098 825.8358,-1098 825.8358,-1139"/>
<text text-anchor="middle" x="778.1123" y="-1126.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="778.1123" y="-1115.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.12s(0.4%)</text>
<text text-anchor="middle" x="778.1123" y="-1104.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.22s(0.73%)</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N76 -->
<g id="edge71" class="edge">
<title>N68&#45;&gt;N76</title>
<g id="a_edge71"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.22s)">
<path fill="none" stroke="#000000" d="M677.0849,-1206.278C696.2587,-1189.6187 724.879,-1164.7519 746.7673,-1145.7342"/>
<polygon fill="#000000" stroke="#000000" points="749.2437,-1148.2192 754.4968,-1139.0184 744.6525,-1142.935 749.2437,-1148.2192"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.22s)">
<text text-anchor="middle" x="741.8364" y="-1165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N42 -->
<g id="edge84" class="edge">
<title>N69&#45;&gt;N42</title>
<g id="a_edge84"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.16s)">
<path fill="none" stroke="#000000" d="M1969.2913,-908.7487C1999.5291,-903.6144 2038.5116,-893.5605 2068.1123,-874 2077.9301,-867.5123 2086.5566,-858.1188 2093.5104,-848.8989"/>
<polygon fill="#000000" stroke="#000000" points="2096.4872,-850.7517 2099.4126,-840.5687 2090.7755,-846.7048 2096.4872,-850.7517"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.16s)">
<text text-anchor="middle" x="2099.8364" y="-862.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N49 -->
<g id="edge93" class="edge">
<title>N70&#45;&gt;N49</title>
<g id="a_edge93"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.10s)">
<path fill="none" stroke="#000000" d="M3325.5066,-1317.5798C3375.913,-1305.3624 3440.1123,-1279.0871 3440.1123,-1224.5 3440.1123,-1224.5 3440.1123,-1224.5 3440.1123,-288 3440.1123,-266.417 3440.1123,-242.0903 3440.1123,-223.391"/>
<polygon fill="#000000" stroke="#000000" points="3443.6124,-223.3652 3440.1123,-213.3653 3436.6124,-223.3653 3443.6124,-223.3652"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.10s)">
<text text-anchor="middle" x="3456.8364" y="-765.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N66 -->
<g id="edge82" class="edge">
<title>N74&#45;&gt;N66</title>
<g id="a_edge82"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.18s)">
<path fill="none" stroke="#000000" d="M2855.1843,-800.2643C2853.2774,-782.2279 2850.3314,-754.3641 2848.1173,-733.4221"/>
<polygon fill="#000000" stroke="#000000" points="2851.5676,-732.767 2847.0355,-723.1905 2844.6064,-733.5031 2851.5676,-732.767"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.18s)">
<text text-anchor="middle" x="2868.8364" y="-765.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N6 -->
<g id="edge94" class="edge">
<title>N76&#45;&gt;N6</title>
<g id="a_edge94"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.10s)">
<path fill="none" stroke="#000000" d="M778.1123,-1097.8798C778.1123,-1046.9476 778.1123,-914.8022 778.1123,-852.259"/>
<polygon fill="#000000" stroke="#000000" points="781.6124,-852.1324 778.1123,-842.1324 774.6124,-852.1325 781.6124,-852.1324"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.10s)">
<text text-anchor="middle" x="794.8364" y="-956.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N7 -->
<g id="edge78" class="edge">
<title>N79&#45;&gt;N7</title>
<g id="a_edge78"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.19s)">
<path fill="none" stroke="#000000" d="M2822.4723,-572.9736C2812.456,-560.806 2797.8921,-545.1704 2782.1123,-535 2766.7756,-525.1151 2748.8779,-517.1557 2731.6243,-510.9009"/>
<polygon fill="#000000" stroke="#000000" points="2732.7204,-507.5765 2722.1255,-507.5999 2730.4225,-514.1886 2732.7204,-507.5765"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.19s)">
<text text-anchor="middle" x="2814.8364" y="-537.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N20 -->
<g id="edge92" class="edge">
<title>N80&#45;&gt;N20</title>
<g id="a_edge92"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.10s)">
<path fill="none" stroke="#000000" d="M2086.4247,-1308.45C2078.5839,-1306.7921 2070.7057,-1305.2667 2063.1123,-1304 1980.123,-1290.1564 1957.3862,-1301.3593 1874.6641,-1286 1868.6747,-1284.8879 1817.8392,-1270.7362 1766.485,-1256.2893"/>
<polygon fill="#000000" stroke="#000000" points="1767.1355,-1252.8365 1756.5612,-1253.4958 1765.2387,-1259.5746 1767.1355,-1252.8365"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.10s)">
<text text-anchor="middle" x="1891.8364" y="-1274.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N69 -->
<g id="edge106" class="edge">
<title>N80&#45;&gt;N69</title>
<g id="a_edge106"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M2081.9698,-1308.4407C2075.5918,-1306.9295 2069.2455,-1305.434 2063.1123,-1304 2028.0471,-1295.8013 2015.6684,-1303.3494 1984.1123,-1286 1950.1011,-1267.3008 1922.1123,-1263.3126 1922.1123,-1224.5 1922.1123,-1224.5 1922.1123,-1224.5 1922.1123,-1014 1922.1123,-990.8555 1922.1123,-964.6978 1922.1123,-944.9416"/>
<polygon fill="#000000" stroke="#000000" points="1925.6124,-944.6842 1922.1123,-934.6843 1918.6124,-944.6843 1925.6124,-944.6842"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="1938.8364" y="-1114.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion3.svg.



































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1462)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1462 3744.1035,-1462 3744.1035,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="1009,-1234 1009,-1450 1671,-1450 1671,-1234 1009,-1234"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="1662.8438,-1442 1017.1562,-1442 1017.1562,-1242 1662.8438,-1242 1662.8438,-1442"/>
<text text-anchor="start" x="1025.0781" y="-1412.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="1025.0781" y="-1380.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="1025.0781" y="-1348.4" font-family="Times,serif" font-size="32.00" fill="#000000">19.55s of 21.43s total (91.23%)</text>
<text text-anchor="start" x="1025.0781" y="-1316.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 94 nodes (cum &lt;= 0.11s)</text>
<text text-anchor="start" x="1025.0781" y="-1284.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 16 edges (freq &lt;= 0.02s)</text>
<text text-anchor="start" x="1025.0781" y="-1252.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 106 (cum &gt;= 0.12s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (20.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1851.0434,-1192 1592.9566,-1192 1592.9566,-1112 1851.0434,-1112 1851.0434,-1192"/>
<text text-anchor="middle" x="1722" y="-1168.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="1722" y="-1144.8" font-family="Times,serif" font-size="24.00" fill="#000000">2.96s(13.81%)</text>
<text text-anchor="middle" x="1722" y="-1120.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 20.48s(95.57%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).loadLoopWords.func1 (20.46s)">
<polygon fill="#f8f8f8" stroke="#000000" points="865.9839,-1057.5 674.0161,-1057.5 674.0161,-1016.5 865.9839,-1016.5 865.9839,-1057.5"/>
<text text-anchor="middle" x="770" y="-1044.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="770" y="-1033.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.33%)</text>
<text text-anchor="middle" x="770" y="-1022.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 20.46s(95.47%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge46" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge46"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.31s)">
<path fill="none" stroke="#000000" d="M1592.719,-1148.2282C1395.2584,-1141.5606 1028.018,-1125.3385 900.5518,-1094 871.5898,-1086.8795 840.9437,-1073.8188 816.6271,-1061.9945"/>
<polygon fill="#000000" stroke="#000000" points="818.1484,-1058.8423 807.6341,-1057.5383 815.0403,-1065.1145 818.1484,-1058.8423"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.31s)">
<text text-anchor="middle" x="917.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (19.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1950.5547,-1056 1793.4453,-1056 1793.4453,-1018 1950.5547,-1018 1950.5547,-1056"/>
<text text-anchor="middle" x="1872" y="-1044" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="1872" y="-1034" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.093%)</text>
<text text-anchor="middle" x="1872" y="-1024" font-family="Times,serif" font-size="10.00" fill="#000000">of 19.23s(89.73%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N4 -->
<g id="edge62" class="edge">
<title>N1&#45;&gt;N4</title>
<g id="a_edge62"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.19s)">
<path fill="none" stroke="#000000" d="M1754.0199,-1111.7047C1764.0215,-1100.6067 1775.5892,-1089.1243 1787.5518,-1080 1796.86,-1072.9002 1807.5181,-1066.4251 1818.0564,-1060.776"/>
<polygon fill="#000000" stroke="#000000" points="1819.9699,-1063.7271 1827.2497,-1056.0293 1816.7584,-1057.5072 1819.9699,-1063.7271"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.19s)">
<text text-anchor="middle" x="1804.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="main.NilWord.func1 (3.01s)">
<polygon fill="#f8f8f8" stroke="#000000" points="990.2664,-1057.5 883.7336,-1057.5 883.7336,-1016.5 990.2664,-1016.5 990.2664,-1057.5"/>
<text text-anchor="middle" x="937" y="-1044.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="937" y="-1033.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.23%)</text>
<text text-anchor="middle" x="937" y="-1022.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 3.01s(14.05%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N8 -->
<g id="edge21" class="edge">
<title>N1&#45;&gt;N8</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.79s)">
<path fill="none" stroke="#000000" d="M1592.7712,-1147.1576C1467.5121,-1140.7441 1272.6233,-1126.2104 1106.5518,-1094 1068.9768,-1086.7121 1028.2821,-1073.2297 996.1811,-1061.2066"/>
<polygon fill="#000000" stroke="#000000" points="997.0987,-1057.8112 986.5075,-1057.5306 994.6121,-1064.3546 997.0987,-1057.8112"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.79s)">
<text text-anchor="middle" x="1123.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.79s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="main.(*CodeQuotation).cloneCode (2.59s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2749.7784,-1060.5 2554.2216,-1060.5 2554.2216,-1013.5 2749.7784,-1013.5 2749.7784,-1060.5"/>
<text text-anchor="middle" x="2652" y="-1046.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="2652" y="-1033.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.26s(1.21%)</text>
<text text-anchor="middle" x="2652" y="-1020.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 2.59s(12.09%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N9 -->
<g id="edge5" class="edge">
<title>N1&#45;&gt;N9</title>
<g id="a_edge5"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (2.59s)">
<path fill="none" stroke="#000000" d="M1851.0646,-1113.552C1854.0633,-1112.9948 1857.0447,-1112.4757 1860,-1112 2072.9622,-1077.7175 2130.3284,-1115.0785 2345,-1094 2431.439,-1085.5126 2455.0347,-1079.7768 2544.0961,-1062.1427"/>
<polygon fill="#000000" stroke="#000000" points="2544.9663,-1065.5385 2554.0985,-1060.167 2543.6098,-1058.6712 2544.9663,-1065.5385"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (2.59s)">
<text text-anchor="middle" x="2468.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.59s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="runtime.mapaccess2_faststr (2.01s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3069.9331,-962 2854.0669,-962 2854.0669,-900 3069.9331,-900 3069.9331,-962"/>
<text text-anchor="middle" x="2962" y="-943.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="2962" y="-925.6" font-family="Times,serif" font-size="18.00" fill="#000000">1.13s(5.27%)</text>
<text text-anchor="middle" x="2962" y="-907.6" font-family="Times,serif" font-size="18.00" fill="#000000">of 2.01s(9.38%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N11 -->
<g id="edge9" class="edge">
<title>N1&#45;&gt;N11</title>
<g id="a_edge9"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.78s)">
<path fill="none" stroke="#000000" d="M1851.0548,-1113.49C1854.0564,-1112.9514 1857.0411,-1112.453 1860,-1112 1978.1964,-1093.9046 2847.3827,-1143.3699 2935,-1062 2959.1709,-1039.5526 2964.8306,-1001.6804 2965.0803,-972.4139"/>
<polygon fill="#000000" stroke="#000000" points="2968.5758,-972.0211 2964.9517,-962.0654 2961.5763,-972.1081 2968.5758,-972.0211"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.78s)">
<text text-anchor="middle" x="2976.7241" y="-1032.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.78s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="runtime.convT2I (1.86s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1010.4766,-656 913.5234,-656 913.5234,-612 1010.4766,-612 1010.4766,-656"/>
<text text-anchor="middle" x="962" y="-642.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="962" y="-630.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.15s(0.7%)</text>
<text text-anchor="middle" x="962" y="-618.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.86s(8.68%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N12 -->
<g id="edge14" class="edge">
<title>N1&#45;&gt;N12</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.28s)">
<path fill="none" stroke="#000000" d="M1592.8132,-1128.4533C1535.3058,-1117.9483 1466.7596,-1105.395 1405,-1094 1328.5345,-1079.8917 1299.1899,-1102.8034 1233,-1062 1209.2402,-1047.353 1219.3631,-1025.6198 1195,-1012 1159.5252,-992.1684 1052.8944,-1001.7581 1013,-994 963.4394,-984.3622 938.42,-998.9378 904,-962 877.0184,-933.0447 885,-914.578 885,-875 885,-875 885,-875 885,-729.5 885,-703.2238 902.884,-680.0936 921.4142,-663.1799"/>
<polygon fill="#000000" stroke="#000000" points="924.071,-665.5096 929.3451,-656.3207 919.4919,-660.215 924.071,-665.5096"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.28s)">
<text text-anchor="middle" x="901.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.28s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="main.(*machine).executeMathWord (1.69s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1445.8832,-1060.5 1242.1168,-1060.5 1242.1168,-1013.5 1445.8832,-1013.5 1445.8832,-1060.5"/>
<text text-anchor="middle" x="1344" y="-1046.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="1344" y="-1033.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.21s(0.98%)</text>
<text text-anchor="middle" x="1344" y="-1020.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.69s(7.89%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N13 -->
<g id="edge10" class="edge">
<title>N1&#45;&gt;N13</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.69s)">
<path fill="none" stroke="#000000" d="M1592.8359,-1136.1746C1542.2788,-1127.3645 1484.5394,-1113.9922 1434.5518,-1094 1416.9617,-1086.965 1399.0157,-1076.489 1383.7889,-1066.4302"/>
<polygon fill="#000000" stroke="#000000" points="1385.4031,-1063.2963 1375.1611,-1060.5851 1381.477,-1069.0915 1385.4031,-1063.2963"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.69s)">
<text text-anchor="middle" x="1451.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.69s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.tryParseInt (1.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2063.6471,-1059 1968.3529,-1059 1968.3529,-1015 2063.6471,-1015 2063.6471,-1059"/>
<text text-anchor="middle" x="2016" y="-1045.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="2016" y="-1033.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.17s(0.79%)</text>
<text text-anchor="middle" x="2016" y="-1021.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.45s(6.77%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N14 -->
<g id="edge11" class="edge">
<title>N1&#45;&gt;N14</title>
<g id="a_edge11"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (1.45s)">
<path fill="none" stroke="#000000" d="M1835.2878,-1111.9637C1851.3507,-1106.0617 1867.6258,-1099.9599 1883,-1094 1914.8547,-1081.6512 1924.4918,-1077.3392 1958.794,-1062.5033"/>
<polygon fill="#000000" stroke="#000000" points="1960.2833,-1065.6726 1968.0749,-1058.4934 1957.5069,-1059.2468 1960.2833,-1065.6726"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (1.45s)">
<text text-anchor="middle" x="1934.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.45s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.tryParseFloat (1.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1775.4844,-1059 1668.5156,-1059 1668.5156,-1015 1775.4844,-1015 1775.4844,-1059"/>
<text text-anchor="middle" x="1722" y="-1045.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="1722" y="-1033.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.18s(0.84%)</text>
<text text-anchor="middle" x="1722" y="-1021.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.41s(6.58%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N15 -->
<g id="edge13" class="edge">
<title>N1&#45;&gt;N15</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (1.41s)">
<path fill="none" stroke="#000000" d="M1722,-1111.7786C1722,-1097.8771 1722,-1082.4903 1722,-1069.3061"/>
<polygon fill="#000000" stroke="#000000" points="1725.5001,-1069.2754 1722,-1059.2754 1718.5001,-1069.2754 1725.5001,-1069.2754"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (1.41s)">
<text text-anchor="middle" x="1738.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.41s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.growslice (1.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1650.9736,-1062 1533.0264,-1062 1533.0264,-1012 1650.9736,-1012 1650.9736,-1062"/>
<text text-anchor="middle" x="1592" y="-1046.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="1592" y="-1032.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.30s(1.40%)</text>
<text text-anchor="middle" x="1592" y="-1018.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.13s(5.27%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N16 -->
<g id="edge15" class="edge">
<title>N1&#45;&gt;N16</title>
<g id="a_edge15"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.13s)">
<path fill="none" stroke="#000000" d="M1676.5323,-1111.7786C1660.6952,-1097.7688 1643.1527,-1082.2505 1628.1721,-1068.9984"/>
<polygon fill="#000000" stroke="#000000" points="1630.4034,-1066.2993 1620.5944,-1062.295 1625.7654,-1071.5423 1630.4034,-1066.2993"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.13s)">
<text text-anchor="middle" x="1670.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.13s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.memeqbody (1.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2507.9675,-848.5 2342.0325,-848.5 2342.0325,-804.5 2507.9675,-804.5 2507.9675,-848.5"/>
<text text-anchor="middle" x="2425" y="-830.1" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2425" y="-812.1" font-family="Times,serif" font-size="18.00" fill="#000000">1.11s(5.18%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N17 -->
<g id="edge17" class="edge">
<title>N1&#45;&gt;N17</title>
<g id="a_edge17"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.94s)">
<path fill="none" stroke="#000000" d="M1851.0892,-1113.6965C1854.0805,-1113.0959 1857.0537,-1112.5288 1860,-1112 1913.9508,-1102.3173 2060.1642,-1124.0586 2106,-1094 2140.4118,-1071.4331 2115.2523,-1035.5484 2149,-1012 2199.3633,-976.8576 2228.0404,-1014.3014 2286,-994 2292.4923,-991.726 2334.0818,-966.8096 2339,-962 2370.2769,-931.4143 2395.5378,-887.3772 2410.3973,-857.8934"/>
<polygon fill="#000000" stroke="#000000" points="2413.5646,-859.3841 2414.8507,-848.8676 2407.2871,-856.2867 2413.5646,-859.3841"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.94s)">
<text text-anchor="middle" x="2326.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.94s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.deferproc (0.82s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3616.983,-1060.5 3507.017,-1060.5 3507.017,-1013.5 3616.983,-1013.5 3616.983,-1060.5"/>
<text text-anchor="middle" x="3562" y="-1046.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="3562" y="-1033.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.21s(0.98%)</text>
<text text-anchor="middle" x="3562" y="-1020.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.82s(3.83%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N21 -->
<g id="edge18" class="edge">
<title>N1&#45;&gt;N21</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.82s)">
<path fill="none" stroke="#000000" d="M1851.049,-1113.4512C1854.0524,-1112.9243 1857.039,-1112.4388 1860,-1112 2023.6695,-1087.7481 3184.5768,-1112.4628 3349,-1094 3413.2856,-1086.7815 3431.5209,-1081.9459 3497.415,-1062.0292"/>
<polygon fill="#000000" stroke="#000000" points="3498.4813,-1065.3633 3507.0389,-1059.1169 3496.4538,-1058.6633 3498.4813,-1065.3633"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.82s)">
<text text-anchor="middle" x="3450.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.82s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.deferreturn (0.68s)">
<polygon fill="#f8f8f8" stroke="#000000" points="655.7248,-1062 530.2752,-1062 530.2752,-1012 655.7248,-1012 655.7248,-1062"/>
<text text-anchor="middle" x="593" y="-1046.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="593" y="-1032.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.32s(1.49%)</text>
<text text-anchor="middle" x="593" y="-1018.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.68s(3.17%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N29 -->
<g id="edge30" class="edge">
<title>N1&#45;&gt;N29</title>
<g id="a_edge30"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.68s)">
<path fill="none" stroke="#000000" d="M1592.619,-1149.1767C1417.3849,-1144.0959 1095.1563,-1130.302 822.5518,-1094 754.7676,-1084.9734 735.5438,-1081.2002 665.4337,-1061.9971"/>
<polygon fill="#000000" stroke="#000000" points="666.2435,-1058.59 655.6736,-1059.3154 664.3889,-1065.3399 666.2435,-1058.59"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.68s)">
<text text-anchor="middle" x="839.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.68s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="main.(*CodeQuotation).nextWord (0.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2376.0752,-1056 2157.9248,-1056 2157.9248,-1018 2376.0752,-1018 2376.0752,-1056"/>
<text text-anchor="middle" x="2267" y="-1040" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2267" y="-1025" font-family="Times,serif" font-size="15.00" fill="#000000">0.52s(2.43%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N32 -->
<g id="edge35" class="edge">
<title>N1&#45;&gt;N32</title>
<g id="a_edge35"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.52s)">
<path fill="none" stroke="#000000" d="M1851.0823,-1113.6574C1854.0756,-1113.0685 1857.0512,-1112.5144 1860,-1112 1984.5939,-1090.2649 2021.4134,-1125.1219 2144,-1094 2172.4963,-1086.7654 2202.4694,-1073.0192 2225.693,-1060.8388"/>
<polygon fill="#000000" stroke="#000000" points="2227.4005,-1063.8947 2234.5653,-1056.0898 2224.0971,-1057.7232 2227.4005,-1063.8947"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.52s)">
<text text-anchor="middle" x="2198.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.52s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="main.wordIsWhitespace (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2535.9819,-1060.5 2394.0181,-1060.5 2394.0181,-1013.5 2535.9819,-1013.5 2535.9819,-1060.5"/>
<text text-anchor="middle" x="2465" y="-1046.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="2465" y="-1033.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.20s(0.93%)</text>
<text text-anchor="middle" x="2465" y="-1020.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.43s(2.01%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N37 -->
<g id="edge39" class="edge">
<title>N1&#45;&gt;N37</title>
<g id="a_edge39"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.43s)">
<path fill="none" stroke="#000000" d="M1851.0732,-1113.6043C1854.0693,-1113.0314 1857.0479,-1112.4949 1860,-1112 2017.557,-1085.5847 2060.398,-1113.167 2219,-1094 2290.5339,-1085.3552 2310.5225,-1080.7337 2384.2542,-1062.1052"/>
<polygon fill="#000000" stroke="#000000" points="2385.1808,-1065.4812 2394.0178,-1059.6367 2383.465,-1058.6947 2385.1808,-1065.4812"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.43s)">
<text text-anchor="middle" x="2324.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3376.641,-1056 3199.359,-1056 3199.359,-1018 3376.641,-1018 3376.641,-1056"/>
<text text-anchor="middle" x="3288" y="-1044" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="3288" y="-1034" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.093%)</text>
<text text-anchor="middle" x="3288" y="-1024" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.37s(1.73%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N39 -->
<g id="edge41" class="edge">
<title>N1&#45;&gt;N39</title>
<g id="a_edge41"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.37s)">
<path fill="none" stroke="#000000" d="M1851.0508,-1113.4632C1854.0536,-1112.9327 1857.0397,-1112.4432 1860,-1112 2122.439,-1072.7122 2790.644,-1126.5792 3054,-1094 3109.477,-1087.1371 3170.8277,-1071.897 3216.7875,-1058.901"/>
<polygon fill="#000000" stroke="#000000" points="3217.9955,-1062.1959 3226.6474,-1056.0807 3216.0704,-1055.4658 3217.9955,-1062.1959"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.37s)">
<text text-anchor="middle" x="3148.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="main.(*machine).hasPrefixWord (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2926.1941,-1057.5 2767.8059,-1057.5 2767.8059,-1016.5 2926.1941,-1016.5 2926.1941,-1057.5"/>
<text text-anchor="middle" x="2847" y="-1044.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="2847" y="-1033.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.23%)</text>
<text text-anchor="middle" x="2847" y="-1022.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.36s(1.68%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N41 -->
<g id="edge42" class="edge">
<title>N1&#45;&gt;N41</title>
<g id="a_edge42"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.36s)">
<path fill="none" stroke="#000000" d="M1851.0592,-1113.5178C1854.0595,-1112.9709 1857.0427,-1112.4632 1860,-1112 1998.1507,-1090.3616 2349.5404,-1104.2391 2489,-1094 2609.5155,-1085.1517 2640.5065,-1085.6972 2759,-1062 2762.1927,-1061.3615 2765.4383,-1060.665 2768.7079,-1059.9238"/>
<polygon fill="#000000" stroke="#000000" points="2769.6418,-1063.2993 2778.56,-1057.5795 2768.0214,-1056.4895 2769.6418,-1063.2993"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.36s)">
<text text-anchor="middle" x="2668.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.ifaceeq (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2547.1256,-753 2446.8744,-753 2446.8744,-706 2547.1256,-706 2547.1256,-753"/>
<text text-anchor="middle" x="2497" y="-738.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="2497" y="-725.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.23s(1.07%)</text>
<text text-anchor="middle" x="2497" y="-712.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.24s(1.12%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N55 -->
<g id="edge63" class="edge">
<title>N1&#45;&gt;N55</title>
<g id="a_edge63"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.19s)">
<path fill="none" stroke="#000000" d="M1851.1845,-1114.1525C1854.1471,-1113.4148 1857.0887,-1112.6961 1860,-1112 1901.7954,-1102.0069 1913.1197,-1103.631 1955,-1094 2007.9564,-1081.8218 2026.1206,-1089.4774 2073,-1062 2099.8431,-1046.2664 2094.4514,-1026.4628 2122,-1012 2163.5337,-990.1952 2182.3496,-1011.1795 2226,-994 2250.2034,-984.4743 2258.827,-982.371 2275,-962 2321.772,-903.0877 2281.7469,-858.0581 2333,-803 2340.7986,-794.6225 2393.5365,-771.7015 2437.1353,-753.6612"/>
<polygon fill="#000000" stroke="#000000" points="2438.6509,-756.8223 2446.5635,-749.7766 2435.9842,-750.3501 2438.6509,-756.8223"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.19s)">
<text text-anchor="middle" x="2316.7241" y="-926.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="main.(*machine).execute.func1 (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3180.5942,-1059 3013.4058,-1059 3013.4058,-1015 3180.5942,-1015 3180.5942,-1059"/>
<text text-anchor="middle" x="3097" y="-1045.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="3097" y="-1033.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.13s(0.61%)</text>
<text text-anchor="middle" x="3097" y="-1021.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.15s(0.7%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N69 -->
<g id="edge77" class="edge">
<title>N1&#45;&gt;N69</title>
<g id="a_edge77"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.15s)">
<path fill="none" stroke="#000000" d="M1851.0514,-1113.4675C1854.0541,-1112.9357 1857.0399,-1112.4447 1860,-1112 1982.6397,-1093.5745 2855.1985,-1122.0536 2976,-1094 3002.2241,-1087.91 3029.5127,-1075.6453 3051.5229,-1064.0478"/>
<polygon fill="#000000" stroke="#000000" points="3053.4784,-1066.9696 3060.6142,-1059.1383 3050.1522,-1060.8104 3053.4784,-1066.9696"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.15s)">
<text text-anchor="middle" x="3033.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1185.641,-1056 1008.359,-1056 1008.359,-1018 1185.641,-1018 1185.641,-1056"/>
<text text-anchor="middle" x="1097" y="-1044" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="1097" y="-1034" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.093%)</text>
<text text-anchor="middle" x="1097" y="-1024" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.14s(0.65%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N74 -->
<g id="edge83" class="edge">
<title>N1&#45;&gt;N74</title>
<g id="a_edge83"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.14s)">
<path fill="none" stroke="#000000" d="M1592.7988,-1147.0712C1453.2777,-1140.2447 1240.9875,-1125.0586 1166.5518,-1094 1149.7282,-1086.9803 1133.7819,-1074.5058 1121.4127,-1063.013"/>
<polygon fill="#000000" stroke="#000000" points="1123.821,-1060.473 1114.1975,-1056.0414 1118.957,-1065.5071 1123.821,-1060.473"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.14s)">
<text text-anchor="middle" x="1183.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.eqstring (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3489.4844,-1055 3394.5156,-1055 3394.5156,-1019 3489.4844,-1019 3489.4844,-1055"/>
<text text-anchor="middle" x="3442" y="-1039.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="3442" y="-1027.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.12s(0.56%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N80 -->
<g id="edge91" class="edge">
<title>N1&#45;&gt;N80</title>
<g id="a_edge91"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.11s)">
<path fill="none" stroke="#000000" d="M1851.05,-1113.4579C1854.0531,-1112.929 1857.0394,-1112.4412 1860,-1112 2003.8694,-1090.5598 3024.008,-1105.6359 3169,-1094 3266.175,-1086.2015 3292.3944,-1089.2357 3386,-1062 3389.3209,-1061.0337 3392.7007,-1059.9102 3396.071,-1058.6847"/>
<polygon fill="#000000" stroke="#000000" points="3397.4453,-1061.9055 3405.4871,-1055.0077 3394.899,-1055.3851 3397.4453,-1061.9055"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.11s)">
<text text-anchor="middle" x="3328.4678" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge1" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge1"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (20.15s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M843.6511,-1057.5263C890.9708,-1069.9478 953.956,-1085.0648 1010.5518,-1094 1207.7927,-1125.1401 1438.5955,-1140.0577 1582.5687,-1146.8375"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1582.5909,-1151.2182 1592.7831,-1147.3117 1582.9968,-1142.4776 1582.5909,-1151.2182"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (20.15s)">
<text text-anchor="middle" x="1031.2241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 20.15s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.newobject (4.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1980.6373,-560.5 1875.3627,-560.5 1875.3627,-516.5 1980.6373,-516.5 1980.6373,-560.5"/>
<text text-anchor="middle" x="1928" y="-546.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="1928" y="-534.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.18s(0.84%)</text>
<text text-anchor="middle" x="1928" y="-522.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 4.70s(21.93%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge71" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge71"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.16s)">
<path fill="none" stroke="#000000" d="M689.423,-1016.4806C681.2079,-1014.7898 672.9597,-1013.2526 665,-1012 542.7442,-992.7603 114,-1054.7604 114,-931 114,-931 114,-931 114,-634 114,-524.4519 494.7034,-587.4186 604,-580 913.613,-558.9848 991.8301,-571.8209 1302,-562 1508.0801,-555.4749 1752.2438,-545.7263 1865.0671,-541.1071"/>
<polygon fill="#000000" stroke="#000000" points="1865.3963,-544.5966 1875.2445,-540.6897 1865.1094,-537.6025 1865.3963,-544.5966"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.16s)">
<text text-anchor="middle" x="130.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.assertI2T (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="696.8917,-654.5 603.1083,-654.5 603.1083,-613.5 696.8917,-613.5 696.8917,-654.5"/>
<text text-anchor="middle" x="650" y="-641.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="650" y="-630.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.08s(0.37%)</text>
<text text-anchor="middle" x="650" y="-619.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.25s(1.17%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N53 -->
<g id="edge107" class="edge">
<title>N2&#45;&gt;N53</title>
<g id="a_edge107"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.05s)">
<path fill="none" stroke="#000000" d="M691.4869,-1016.4928C682.6003,-1014.7131 673.6368,-1013.1537 665,-1012 633.8717,-1007.8418 121.8501,-1016.5573 100,-994 77.7987,-971.0801 42.1385,-999.0367 133,-900 200.6861,-826.2239 473.9238,-707.0576 593.4992,-657.1498"/>
<polygon fill="#000000" stroke="#000000" points="594.9816,-660.3239 602.8687,-653.2497 592.2915,-653.8614 594.9816,-660.3239"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.05s)">
<text text-anchor="middle" x="292.7241" y="-822.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="runtime.goexit (20.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1762.7699,-1360 1681.2301,-1360 1681.2301,-1324 1762.7699,-1324 1762.7699,-1360"/>
<text text-anchor="middle" x="1722" y="-1343.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="1722" y="-1335.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 20.09s(93.75%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N1 -->
<g id="edge2" class="edge">
<title>N3&#45;&gt;N1</title>
<g id="a_edge2"><a xlink:title="runtime.goexit ... main.(*machine).execute (19.82s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M1722,-1323.782C1722,-1296.0982 1722,-1242.4317 1722,-1202.4151"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1726.3751,-1202.3013 1722,-1192.3014 1717.6251,-1202.3014 1726.3751,-1202.3013"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (19.82s)">
<text text-anchor="middle" x="1742.2241" y="-1212.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 19.82s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.gcDrain (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1942.7699,-1170 1869.2301,-1170 1869.2301,-1134 1942.7699,-1134 1942.7699,-1170"/>
<text text-anchor="middle" x="1906" y="-1153.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcDrain</text>
<text text-anchor="middle" x="1906" y="-1145.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.20s(0.93%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N60 -->
<g id="edge74" class="edge">
<title>N3&#45;&gt;N60</title>
<g id="a_edge74"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.16s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1739.6427,-1323.782C1772.6145,-1289.735 1843.6448,-1216.3885 1881.3378,-1177.4664"/>
<polygon fill="#000000" stroke="#000000" points="1883.9682,-1179.7813 1888.4107,-1170.1628 1878.9397,-1174.9116 1883.9682,-1179.7813"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.16s)">
<text text-anchor="middle" x="1863.7241" y="-1212.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (19.04s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1858.9345,-1056.2468C1850.2545,-1068.0917 1838.0795,-1083.049 1825,-1094 1819.9254,-1098.2487 1814.4948,-1102.3475 1808.8784,-1106.2666"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1806.3931,-1102.6655 1800.5365,-1111.8765 1811.2761,-1109.9264 1806.3931,-1102.6655"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (19.04s)">
<text text-anchor="middle" x="1859.2241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 19.04s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N6 -->
<g id="edge85" class="edge">
<title>N4&#45;&gt;N6</title>
<g id="a_edge85"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.13s)">
<path fill="none" stroke="#000000" d="M1934.4799,-1017.9964C1942.686,-1015.8098 1951.0161,-1013.7432 1959,-1012 2011.2593,-1000.5895 2027.1684,-1010.6548 2078,-994 2107.0933,-984.4677 2120.202,-986.1644 2139,-962 2193.1326,-892.4137 2123.3367,-825.6065 2192.5518,-771 2221.657,-748.0377 2250.7858,-781.9047 2274,-753 2381.516,-619.1288 2254.8484,-766.857 2039,-656 2000.032,-635.9865 1967.3141,-596.6897 1947.7137,-569.0689"/>
<polygon fill="#000000" stroke="#000000" points="1950.3878,-566.7824 1941.8196,-560.5506 1944.6315,-570.7655 1950.3878,-566.7824"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.13s)">
<text text-anchor="middle" x="2208.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.mallocgc (5.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2016.5845,-465 1839.4155,-465 1839.4155,-388 2016.5845,-388 2016.5845,-465"/>
<text text-anchor="middle" x="1928" y="-442.6" font-family="Times,serif" font-size="23.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="1928" y="-419.6" font-family="Times,serif" font-size="23.00" fill="#000000">2.40s(11.20%)</text>
<text text-anchor="middle" x="1928" y="-396.6" font-family="Times,serif" font-size="23.00" fill="#000000">of 5.44s(25.38%)</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.heapBitsSetType (1.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2027.2062,-338 1828.7938,-338 1828.7938,-294 2027.2062,-294 2027.2062,-338"/>
<text text-anchor="middle" x="1928" y="-319.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1928" y="-301.6" font-family="Times,serif" font-size="18.00" fill="#000000">1.08s(5.04%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N18 -->
<g id="edge16" class="edge">
<title>N5&#45;&gt;N18</title>
<g id="a_edge16"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (1.08s)">
<path fill="none" stroke="#000000" d="M1928,-387.8525C1928,-374.952 1928,-360.7203 1928,-348.3497"/>
<polygon fill="#000000" stroke="#000000" points="1931.5001,-348.0378 1928,-338.0378 1924.5001,-348.0378 1931.5001,-348.0378"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (1.08s)">
<text text-anchor="middle" x="1944.7241" y="-358.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.08s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.(*mcache).nextFree (0.80s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2254.9531,-334 2137.0469,-334 2137.0469,-298 2254.9531,-298 2254.9531,-334"/>
<text text-anchor="middle" x="2196" y="-322.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="2196" y="-313.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.047%)</text>
<text text-anchor="middle" x="2196" y="-304.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.80s(3.73%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N22 -->
<g id="edge20" class="edge">
<title>N5&#45;&gt;N22</title>
<g id="a_edge20"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.80s)">
<path fill="none" stroke="#000000" d="M2016.8679,-389.8586C2058.5488,-372.673 2106.826,-352.7676 2142.7526,-337.9546"/>
<polygon fill="#000000" stroke="#000000" points="2144.1638,-341.1587 2152.0746,-334.111 2141.4955,-334.6872 2144.1638,-341.1587"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.80s)">
<text text-anchor="middle" x="2109.7241" y="-358.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.80s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.memclr (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1682.8039,-334 1577.1961,-334 1577.1961,-298 1682.8039,-298 1682.8039,-334"/>
<text text-anchor="middle" x="1630" y="-318.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="1630" y="-304.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.37s(1.73%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N40 -->
<g id="edge108" class="edge">
<title>N5&#45;&gt;N40</title>
<g id="a_edge108"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.05s)">
<path fill="none" stroke="#000000" d="M1839.397,-393.6455C1790.5889,-375.5472 1731.3728,-353.5896 1688.3832,-337.6488"/>
<polygon fill="#000000" stroke="#000000" points="1689.5123,-334.3346 1678.9192,-334.1395 1687.0785,-340.898 1689.5123,-334.3346"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.05s)">
<text text-anchor="middle" x="1787.7241" y="-358.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.stkbucket (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1810.5084,-334 1701.4916,-334 1701.4916,-298 1810.5084,-298 1810.5084,-334"/>
<text text-anchor="middle" x="1756" y="-318.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="1756" y="-305.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.24s(1.12%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N56 -->
<g id="edge56" class="edge">
<title>N5&#45;&gt;N56</title>
<g id="a_edge56"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.24s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1867.8427,-387.8525C1842.8105,-371.7707 1814.5579,-353.6201 1792.7115,-339.585"/>
<polygon fill="#000000" stroke="#000000" points="1794.3768,-336.4948 1784.0716,-334.0343 1790.5932,-342.3842 1794.3768,-336.4948"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.24s)">
<text text-anchor="middle" x="1853.7241" y="-358.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N5 -->
<g id="edge4" class="edge">
<title>N6&#45;&gt;N5</title>
<g id="a_edge4"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (4.52s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M1928,-516.3724C1928,-504.6762 1928,-489.8222 1928,-475.5755"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1931.5001,-475.3627 1928,-465.3627 1924.5001,-475.3628 1931.5001,-475.3627"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (4.52s)">
<text text-anchor="middle" x="1944.7241" y="-485.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.52s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.systemstack (3.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2261.2005,-244 2130.7995,-244 2130.7995,-194 2261.2005,-194 2261.2005,-244"/>
<text text-anchor="middle" x="2196" y="-228.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2196" y="-214.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.38s(1.77%)</text>
<text text-anchor="middle" x="2196" y="-200.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 3.07s(14.33%)</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.mach_semaphore_signal (0.92s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2250.6837,-141.5 2009.3163,-141.5 2009.3163,-99.5 2250.6837,-99.5 2250.6837,-141.5"/>
<text text-anchor="middle" x="2130" y="-123.9" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2130" y="-106.9" font-family="Times,serif" font-size="17.00" fill="#000000">0.92s(4.29%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N20 -->
<g id="edge19" class="edge">
<title>N7&#45;&gt;N20</title>
<g id="a_edge19"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.81s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2179.1746,-193.8894C2170.1924,-180.4842 2159.0862,-163.9089 2149.7025,-149.9046"/>
<polygon fill="#000000" stroke="#000000" points="2152.591,-147.9276 2144.1169,-141.5684 2146.7758,-151.8242 2152.591,-147.9276"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.81s)">
<text text-anchor="middle" x="2182.7241" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.81s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.deferproc.func1 (0.54s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2411.3314,-144 2268.6686,-144 2268.6686,-97 2411.3314,-97 2411.3314,-144"/>
<text text-anchor="middle" x="2340" y="-129.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2340" y="-116.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.21s(0.98%)</text>
<text text-anchor="middle" x="2340" y="-103.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.54s(2.52%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N31 -->
<g id="edge34" class="edge">
<title>N7&#45;&gt;N31</title>
<g id="a_edge34"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.54s)">
<path fill="none" stroke="#000000" d="M2232.7099,-193.8894C2252.2501,-180.5233 2276.3976,-164.0058 2296.833,-150.0274"/>
<polygon fill="#000000" stroke="#000000" points="2299.0617,-152.7434 2305.3395,-144.2088 2295.1096,-146.9658 2299.0617,-152.7434"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.54s)">
<text text-anchor="middle" x="2292.7241" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.(*mcentral).cacheSpan (0.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2570.9989,-139.5 2429.0011,-139.5 2429.0011,-101.5 2570.9989,-101.5 2570.9989,-139.5"/>
<text text-anchor="middle" x="2500" y="-127.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="2500" y="-117.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.093%)</text>
<text text-anchor="middle" x="2500" y="-107.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.52s(2.43%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N33 -->
<g id="edge37" class="edge">
<title>N7&#45;&gt;N33</title>
<g id="a_edge37"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).cacheSpan (0.52s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2261.2156,-197.8693C2311.451,-181.5924 2380.7055,-159.153 2431.6985,-142.6306"/>
<polygon fill="#000000" stroke="#000000" points="2432.8861,-145.925 2441.3203,-139.513 2430.7284,-139.2658 2432.8861,-145.925"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).cacheSpan (0.52s)">
<text text-anchor="middle" x="2382.7241" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.52s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.deferreturn.func1 (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1840.6153,-141 1711.3847,-141 1711.3847,-100 1840.6153,-100 1840.6153,-141"/>
<text text-anchor="middle" x="1776" y="-128.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="1776" y="-117.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.23%)</text>
<text text-anchor="middle" x="1776" y="-106.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.27s(1.26%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N49 -->
<g id="edge51" class="edge">
<title>N7&#45;&gt;N49</title>
<g id="a_edge51"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.27s)">
<path fill="none" stroke="#000000" d="M2130.6275,-206.8677C2060.527,-193.3942 1946.1801,-170.0761 1849,-144 1848.783,-143.9418 1848.5657,-143.8833 1848.3481,-143.8246"/>
<polygon fill="#000000" stroke="#000000" points="1848.9742,-140.3652 1838.4005,-141.0345 1847.0837,-147.1051 1848.9742,-140.3652"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.27s)">
<text text-anchor="middle" x="1989.7241" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.(*mheap).alloc_m (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1991.7943,-141 1858.2057,-141 1858.2057,-100 1991.7943,-100 1991.7943,-141"/>
<text text-anchor="middle" x="1925" y="-128.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="1925" y="-117.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.23%)</text>
<text text-anchor="middle" x="1925" y="-106.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.25s(1.17%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N52 -->
<g id="edge54" class="edge">
<title>N7&#45;&gt;N52</title>
<g id="a_edge54"><a xlink:title="runtime.systemstack ... runtime.(*mheap).alloc_m (0.25s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2130.7439,-195.2814C2088.3725,-179.8808 2033.3346,-159.8762 1990.8463,-144.4331"/>
<polygon fill="#000000" stroke="#000000" points="1992.0264,-141.138 1981.4323,-141.0114 1989.6352,-147.7169 1992.0264,-141.138"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mheap).alloc_m (0.25s)">
<text text-anchor="middle" x="2093.7241" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.semasleep.func1 (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2684.9727,-138.5 2589.0273,-138.5 2589.0273,-102.5 2684.9727,-102.5 2684.9727,-138.5"/>
<text text-anchor="middle" x="2637" y="-122.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep.func1</text>
<text text-anchor="middle" x="2637" y="-114.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(0.7%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N72 -->
<g id="edge82" class="edge">
<title>N7&#45;&gt;N72</title>
<g id="a_edge82"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.15s)">
<path fill="none" stroke="#000000" d="M2261.5677,-207.8145C2354.9328,-191.6099 2521.3722,-161.6209 2580,-144 2582.1239,-143.3617 2584.2773,-142.6727 2586.4416,-141.9456"/>
<polygon fill="#000000" stroke="#000000" points="2587.7033,-145.2115 2595.9426,-138.5508 2585.348,-138.6197 2587.7033,-145.2115"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.15s)">
<text text-anchor="middle" x="2514.7241" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (2.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1293.4419,-950 1094.5581,-950 1094.5581,-912 1293.4419,-912 1293.4419,-950"/>
<text text-anchor="middle" x="1194" y="-938" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="1194" y="-928" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.093%)</text>
<text text-anchor="middle" x="1194" y="-918" font-family="Times,serif" font-size="10.00" fill="#000000">of 2.36s(11.01%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N10 -->
<g id="edge6" class="edge">
<title>N8&#45;&gt;N10</title>
<g id="a_edge6"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.36s)">
<path fill="none" stroke="#000000" d="M986.5374,-1016.3746C990.7289,-1014.828 994.9227,-1013.3477 999,-1012 1029.0917,-1002.0535 1038.3321,-1005.1473 1068,-994 1096.8271,-983.1686 1127.7786,-967.7513 1151.7909,-954.8795"/>
<polygon fill="#000000" stroke="#000000" points="1153.5113,-957.9281 1160.6351,-950.0858 1150.1757,-951.7739 1153.5113,-957.9281"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.36s)">
<text text-anchor="middle" x="1117.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.36s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="749.641,-950 572.359,-950 572.359,-912 749.641,-912 749.641,-950"/>
<text text-anchor="middle" x="661" y="-938" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="661" y="-928" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="661" y="-918" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.20s(0.93%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N59 -->
<g id="edge61" class="edge">
<title>N8&#45;&gt;N59</title>
<g id="a_edge61"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.20s)">
<path fill="none" stroke="#000000" d="M889.6931,-1016.4797C884.7882,-1014.7891 879.8309,-1013.2522 875,-1012 812.374,-995.7667 789.3582,-1020.9693 730.5518,-994 712.354,-985.6543 695.601,-970.8048 683.0988,-957.6182"/>
<polygon fill="#000000" stroke="#000000" points="685.5744,-955.1386 676.25,-950.108 680.4021,-959.8554 685.5744,-955.1386"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.20s)">
<text text-anchor="middle" x="747.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="main.(*machine).loadBooleanWords.func2 (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="553.9228,-951.5 348.0772,-951.5 348.0772,-910.5 553.9228,-910.5 553.9228,-951.5"/>
<text text-anchor="middle" x="451" y="-938.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadBooleanWords.func2</text>
<text text-anchor="middle" x="451" y="-927.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.33%)</text>
<text text-anchor="middle" x="451" y="-916.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.16s(0.75%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N66 -->
<g id="edge72" class="edge">
<title>N8&#45;&gt;N66</title>
<g id="a_edge72"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.16s)">
<path fill="none" stroke="#000000" d="M890.0807,-1016.4158C885.0554,-1014.7142 879.9654,-1013.1928 875,-1012 786.7365,-990.7963 760.8067,-1010.5407 671.5518,-994 620.3328,-984.5081 563.8716,-968.2673 520.8986,-954.6529"/>
<polygon fill="#000000" stroke="#000000" points="521.7018,-951.2353 511.1109,-951.5237 519.5701,-957.9028 521.7018,-951.2353"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.16s)">
<text text-anchor="middle" x="688.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="main.(*machine).loadBooleanWords.func3 (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="330.2023,-950 141.7977,-950 141.7977,-912 330.2023,-912 330.2023,-950"/>
<text text-anchor="middle" x="236" y="-938" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadBooleanWords.func3</text>
<text text-anchor="middle" x="236" y="-928" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.19%)</text>
<text text-anchor="middle" x="236" y="-918" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.15s(0.7%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N70 -->
<g id="edge79" class="edge">
<title>N8&#45;&gt;N70</title>
<g id="a_edge79"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func3 (0.15s)">
<path fill="none" stroke="#000000" d="M890.8004,-1016.4988C885.5468,-1014.7311 880.2084,-1013.1727 875,-1012 744.0623,-982.5186 707.1284,-1007.0809 573.5518,-994 468.8417,-983.7459 441.8116,-984.3406 339,-962 327.3809,-959.4752 315.1699,-956.2886 303.3802,-952.9257"/>
<polygon fill="#000000" stroke="#000000" points="304.1783,-949.5127 293.5982,-950.07 302.2166,-956.2322 304.1783,-949.5127"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func3 (0.15s)">
<text text-anchor="middle" x="590.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N6 -->
<g id="edge7" class="edge">
<title>N9&#45;&gt;N6</title>
<g id="a_edge7"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (2.32s)">
<path fill="none" stroke="#000000" d="M2643.1155,-1013.3789C2635.9298,-992.1411 2627,-959.9287 2627,-931 2627,-931 2627,-931 2627,-634 2627,-570.1218 2162.8254,-546.9345 1990.9841,-540.539"/>
<polygon fill="#000000" stroke="#000000" points="1990.9463,-537.0354 1980.8251,-540.1679 1990.6907,-544.0308 1990.9463,-537.0354"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (2.32s)">
<text text-anchor="middle" x="2643.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.32s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N1 -->
<g id="edge8" class="edge">
<title>N10&#45;&gt;N1</title>
<g id="a_edge8"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.22s)">
<path fill="none" stroke="#000000" d="M1256.2575,-950.0148C1271.1677,-954.2505 1287.0891,-958.5136 1302,-962 1345.5469,-972.1819 1359.1047,-964.3545 1401,-980 1427.1346,-989.7598 1434.4707,-993.1103 1455,-1012 1475.0653,-1030.4628 1469.0408,-1045.2437 1490.5518,-1062 1517.8705,-1083.2803 1550.8307,-1100.0668 1583.203,-1113.0845"/>
<polygon fill="#000000" stroke="#000000" points="1582.1787,-1116.4422 1592.7665,-1116.8301 1584.7315,-1109.9243 1582.1787,-1116.4422"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.22s)">
<text text-anchor="middle" x="1507.7241" y="-1032.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.22s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N6 -->
<g id="edge97" class="edge">
<title>N10&#45;&gt;N6</title>
<g id="a_edge97"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.08s)">
<path fill="none" stroke="#000000" d="M1205.4227,-911.8645C1232.205,-868.6317 1303.4183,-762.7699 1390.5518,-706 1543.5001,-606.3498 1759.3636,-562.9457 1864.9159,-546.7592"/>
<polygon fill="#000000" stroke="#000000" points="1865.7179,-550.1781 1875.0872,-545.2317 1864.6782,-543.2557 1865.7179,-550.1781"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.08s)">
<text text-anchor="middle" x="1407.7241" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N53 -->
<g id="edge116" class="edge">
<title>N10&#45;&gt;N53</title>
<g id="a_edge116"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1160.0275,-911.905C1136.5574,-897.3625 1105.9198,-875.5312 1085,-850 1029.8213,-782.6579 1071.5233,-722.1666 999,-674 987.0215,-666.0444 803.2196,-648.0962 707.3048,-639.2001"/>
<polygon fill="#000000" stroke="#000000" points="707.4625,-635.6998 697.1828,-638.2646 706.8182,-642.6701 707.4625,-635.6998"/>
</a>
</g>
<g id="a_edge116&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="1071.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N17 -->
<g id="edge87" class="edge">
<title>N11&#45;&gt;N17</title>
<g id="a_edge87"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.13s)">
<path fill="none" stroke="#000000" d="M2854.029,-902.0315C2850.9903,-901.3323 2847.9761,-900.6534 2845,-900 2733.2001,-875.4538 2603.2277,-853.7448 2517.824,-840.401"/>
<polygon fill="#000000" stroke="#000000" points="2518.3124,-836.9349 2507.8931,-838.8556 2517.236,-843.8517 2518.3124,-836.9349"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.13s)">
<text text-anchor="middle" x="2769.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.aeshashbody (0.62s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3037.5242,-846.5 2886.4758,-846.5 2886.4758,-806.5 3037.5242,-806.5 3037.5242,-846.5"/>
<text text-anchor="middle" x="2962" y="-829.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="2962" y="-813.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.62s(2.89%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N30 -->
<g id="edge31" class="edge">
<title>N11&#45;&gt;N30</title>
<g id="a_edge31"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.61s)">
<path fill="none" stroke="#000000" d="M2962,-899.9295C2962,-886.3523 2962,-870.4783 2962,-856.97"/>
<polygon fill="#000000" stroke="#000000" points="2965.5001,-856.7328 2962,-846.7328 2958.5001,-856.7329 2965.5001,-856.7328"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.61s)">
<text text-anchor="middle" x="2978.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.61s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N6 -->
<g id="edge12" class="edge">
<title>N12&#45;&gt;N6</title>
<g id="a_edge12"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.42s)">
<path fill="none" stroke="#000000" d="M1010.5661,-629.1987C1171.1982,-613.3184 1685.2984,-562.4938 1865.1518,-544.7133"/>
<polygon fill="#000000" stroke="#000000" points="1865.6361,-548.1825 1875.2432,-543.7156 1864.9473,-541.2165 1865.6361,-548.1825"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.42s)">
<text text-anchor="middle" x="1519.7241" y="-582.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.42s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.typedmemmove (0.51s)">
<polygon fill="#f8f8f8" stroke="#000000" points="721.9426,-562 578.0574,-562 578.0574,-515 721.9426,-515 721.9426,-562"/>
<text text-anchor="middle" x="650" y="-547.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="650" y="-534.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.21s(0.98%)</text>
<text text-anchor="middle" x="650" y="-521.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.51s(2.38%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N34 -->
<g id="edge49" class="edge">
<title>N12&#45;&gt;N34</title>
<g id="a_edge49"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.29s)">
<path fill="none" stroke="#000000" d="M913.25,-619.0781C864.7268,-604.2257 789.3717,-581.1602 731.6965,-563.5065"/>
<polygon fill="#000000" stroke="#000000" points="732.4594,-560.0797 721.8729,-560.4995 730.4105,-566.7732 732.4594,-560.0797"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.29s)">
<text text-anchor="middle" x="841.7241" y="-582.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N12 -->
<g id="edge104" class="edge">
<title>N13&#45;&gt;N12</title>
<g id="a_edge104"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.06s)">
<path fill="none" stroke="#000000" d="M1444.2195,-1013.4813C1446.5001,-1012.9794 1448.7628,-1012.485 1451,-1012 1561.7398,-987.9956 1629.1617,-1049.6286 1701,-962 1718.4699,-940.6901 1708.8425,-926.416 1701,-900 1671.3898,-800.2637 1654.6578,-766.4744 1570,-706 1530.3024,-677.6425 1512.9299,-683.098 1465,-674 1381.3316,-658.1181 1134.6091,-643.2874 1020.7718,-637.0723"/>
<polygon fill="#000000" stroke="#000000" points="1020.6827,-633.5624 1010.5078,-636.5156 1020.3035,-640.5521 1020.6827,-633.5624"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.06s)">
<text text-anchor="middle" x="1701.7241" y="-822.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N17 -->
<g id="edge111" class="edge">
<title>N13&#45;&gt;N17</title>
<g id="a_edge111"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.04s)">
<path fill="none" stroke="#000000" d="M1441.8366,-1013.4558C1444.9203,-1012.9332 1447.9804,-1012.4456 1451,-1012 1513.3407,-1002.7997 1675.2262,-1016.7301 1734,-994 1796.3917,-969.8707 1789.2813,-924.4405 1851.5518,-900 1902.2551,-880.0995 2041.9001,-888.3297 2096,-882 2176.1698,-872.6201 2266.5417,-857.0076 2332.2558,-844.7268"/>
<polygon fill="#000000" stroke="#000000" points="2332.9946,-848.1493 2342.1764,-842.8631 2331.7021,-841.2697 2332.9946,-848.1493"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.04s)">
<text text-anchor="middle" x="1868.7241" y="-926.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="main.(*machine).executeSubtract (0.76s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1076.8233,-951.5 913.1767,-951.5 913.1767,-910.5 1076.8233,-910.5 1076.8233,-951.5"/>
<text text-anchor="middle" x="995" y="-938.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="995" y="-927.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.28%)</text>
<text text-anchor="middle" x="995" y="-916.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.76s(3.55%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N23 -->
<g id="edge23" class="edge">
<title>N13&#45;&gt;N23</title>
<g id="a_edge23"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.76s)">
<path fill="none" stroke="#000000" d="M1242.2811,-1014.3473C1237.4626,-1013.5043 1232.684,-1012.7155 1228,-1012 1184.4459,-1005.3465 1067.5506,-1017.9229 1030.5518,-994 1018.7349,-986.3594 1010.4516,-973.3385 1004.8724,-961.1106"/>
<polygon fill="#000000" stroke="#000000" points="1007.9995,-959.5118 1000.9619,-951.5921 1001.5247,-962.1719 1007.9995,-959.5118"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.76s)">
<text text-anchor="middle" x="1047.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.76s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="main.(*machine).executeLessThan (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1691.9365,-950 1536.0635,-950 1536.0635,-912 1691.9365,-912 1691.9365,-950"/>
<text text-anchor="middle" x="1614" y="-938" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeLessThan</text>
<text text-anchor="middle" x="1614" y="-928" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.19%)</text>
<text text-anchor="middle" x="1614" y="-918" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.31s(1.45%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N46 -->
<g id="edge47" class="edge">
<title>N13&#45;&gt;N46</title>
<g id="a_edge47"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeLessThan (0.31s)">
<path fill="none" stroke="#000000" d="M1417.266,-1013.426C1434.9675,-1007.3918 1453.7511,-1000.7045 1471,-994 1502.3274,-981.8232 1536.8251,-966.6771 1564.0873,-954.2876"/>
<polygon fill="#000000" stroke="#000000" points="1565.7689,-957.3674 1573.4114,-950.0296 1562.8611,-950.9999 1565.7689,-957.3674"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeLessThan (0.31s)">
<text text-anchor="middle" x="1519.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.assertI2I (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1528.3356,-847 1437.6644,-847 1437.6644,-806 1528.3356,-806 1528.3356,-847"/>
<text text-anchor="middle" x="1483" y="-834.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="1483" y="-823.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.23%)</text>
<text text-anchor="middle" x="1483" y="-812.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.30s(1.40%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N48 -->
<g id="edge110" class="edge">
<title>N13&#45;&gt;N48</title>
<g id="a_edge110"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.assertI2I (0.04s)">
<path fill="none" stroke="#000000" d="M1397.7099,-1013.4941C1419.6797,-1001.231 1443.3333,-984.1116 1458,-962 1478.8444,-930.5749 1483.4972,-886.4717 1483.9956,-857.2205"/>
<polygon fill="#000000" stroke="#000000" points="1487.4956,-857.1729 1484.0135,-847.1667 1480.4956,-857.1604 1487.4956,-857.1729"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.assertI2I (0.04s)">
<text text-anchor="middle" x="1497.7241" y="-926.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="main.(*machine).executeMultiply (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1449.4588,-949 1310.5412,-949 1310.5412,-913 1449.4588,-913 1449.4588,-949"/>
<text text-anchor="middle" x="1380" y="-937.3" font-family="Times,serif" font-size="9.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="1380" y="-928.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.047%)</text>
<text text-anchor="middle" x="1380" y="-919.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.20s(0.93%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N58 -->
<g id="edge60" class="edge">
<title>N13&#45;&gt;N58</title>
<g id="a_edge60"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.20s)">
<path fill="none" stroke="#000000" d="M1351.9896,-1013.4752C1357.4446,-997.413 1364.6983,-976.0551 1370.4572,-959.0983"/>
<polygon fill="#000000" stroke="#000000" points="1373.9185,-959.7901 1373.8203,-949.1957 1367.2904,-957.5389 1373.9185,-959.7901"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.20s)">
<text text-anchor="middle" x="1380.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="strings.ContainsRune (1.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2130.1691,-956 1993.8309,-956 1993.8309,-906 2130.1691,-906 2130.1691,-956"/>
<text text-anchor="middle" x="2062" y="-940.8" font-family="Times,serif" font-size="14.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="2062" y="-926.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.32s(1.49%)</text>
<text text-anchor="middle" x="2062" y="-912.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.07s(4.99%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N19 -->
<g id="edge32" class="edge">
<title>N14&#45;&gt;N19</title>
<g id="a_edge32"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.55s)">
<path fill="none" stroke="#000000" d="M2025.6431,-1014.7789C2031.8535,-1000.4679 2040.0523,-981.5751 2047.092,-965.3533"/>
<polygon fill="#000000" stroke="#000000" points="2050.3088,-966.7325 2051.0791,-956.1657 2043.8874,-963.9458 2050.3088,-966.7325"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.55s)">
<text text-anchor="middle" x="2057.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.55s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="strconv.Atoi (0.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2266.2124,-950 2185.7876,-950 2185.7876,-912 2266.2124,-912 2266.2124,-950"/>
<text text-anchor="middle" x="2226" y="-938" font-family="Times,serif" font-size="10.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="2226" y="-928" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="2226" y="-918" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.73s(3.41%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N25 -->
<g id="edge26" class="edge">
<title>N14&#45;&gt;N25</title>
<g id="a_edge26"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.73s)">
<path fill="none" stroke="#000000" d="M2063.7381,-1016.6832C2068.5132,-1014.9739 2073.3238,-1013.3763 2078,-1012 2118.8061,-999.9898 2135.2065,-1015.3452 2172,-994 2186.7813,-985.4249 2199.4588,-971.2694 2208.8083,-958.5466"/>
<polygon fill="#000000" stroke="#000000" points="2211.8825,-960.2573 2214.7344,-950.0535 2206.1418,-956.2517 2211.8825,-960.2573"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.73s)">
<text text-anchor="middle" x="2205.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.73s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N19 -->
<g id="edge36" class="edge">
<title>N15&#45;&gt;N19</title>
<g id="a_edge36"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.52s)">
<path fill="none" stroke="#000000" d="M1774.1209,-1014.9301C1777.4359,-1013.8548 1780.7473,-1012.865 1784,-1012 1840.7953,-996.8963 1858.3712,-1009.7164 1915,-994 1945.1553,-985.6309 1977.2523,-972.419 2003.7358,-960.2511"/>
<polygon fill="#000000" stroke="#000000" points="2005.2713,-963.397 2012.8568,-956.0003 2002.3143,-957.0522 2005.2713,-963.397"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.52s)">
<text text-anchor="middle" x="1973.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.52s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="strconv.ParseFloat (0.71s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1976.1554,-949 1893.8446,-949 1893.8446,-913 1976.1554,-913 1976.1554,-949"/>
<text text-anchor="middle" x="1935" y="-937.3" font-family="Times,serif" font-size="9.00" fill="#000000">strconv.ParseFloat</text>
<text text-anchor="middle" x="1935" y="-928.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.047%)</text>
<text text-anchor="middle" x="1935" y="-919.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.71s(3.31%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N26 -->
<g id="edge27" class="edge">
<title>N15&#45;&gt;N26</title>
<g id="a_edge27"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (0.71s)">
<path fill="none" stroke="#000000" d="M1775.2617,-1014.9791C1778.2036,-1013.9333 1781.1301,-1012.9324 1784,-1012 1815.3707,-1001.808 1826.4305,-1008.6166 1856,-994 1875.6379,-984.2927 1894.9148,-969.0654 1909.5101,-956.0131"/>
<polygon fill="#000000" stroke="#000000" points="1912.1114,-958.3762 1917.1096,-949.0344 1907.3767,-953.2203 1912.1114,-958.3762"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (0.71s)">
<text text-anchor="middle" x="1894.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.71s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N5 -->
<g id="edge24" class="edge">
<title>N16&#45;&gt;N5</title>
<g id="a_edge24"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.76s)">
<path fill="none" stroke="#000000" d="M1650.7501,-1014.6124C1653.8613,-1013.6744 1656.9578,-1012.7957 1660,-1012 1708.7757,-999.2422 1732.8954,-1025.8223 1772,-994 1795.2401,-975.0877 1796,-960.9629 1796,-931 1796,-931 1796,-931 1796,-778 1796,-745.7196 1783.1728,-729.2638 1805.5518,-706 1838.2087,-672.0519 1864.543,-700.3537 1910,-688 1948.9533,-677.4137 1972.029,-689.1928 1995,-656 2030.6838,-604.4373 2011.1443,-574.0336 1990,-515 1984.8109,-500.5123 1976.5813,-486.2223 1967.7925,-473.4909"/>
<polygon fill="#000000" stroke="#000000" points="1970.6352,-471.449 1961.9626,-465.3632 1964.9471,-475.529 1970.6352,-471.449"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.76s)">
<text text-anchor="middle" x="1822.7241" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.76s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.memmove (0.47s)">
<polygon fill="#f8f8f8" stroke="#000000" points="589.7234,-42.5 460.2766,-42.5 460.2766,-4.5 589.7234,-4.5 589.7234,-42.5"/>
<text text-anchor="middle" x="525" y="-26.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="525" y="-11.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.47s(2.19%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N35 -->
<g id="edge102" class="edge">
<title>N16&#45;&gt;N35</title>
<g id="a_edge102"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.07s)">
<path fill="none" stroke="#000000" d="M1650.8328,-1015.7961C1664.2723,-1009.7217 1678.0921,-1002.4217 1690,-994 1705.9165,-982.7433 1712.6694,-980.0641 1720,-962 1746.5746,-896.5144 1750.2386,-867.7854 1722,-803 1663.8204,-669.5237 1610.3678,-648.7204 1482,-580 1298.9091,-481.9842 573,-570.6761 573,-363 573,-363 573,-363 573,-120.5 573,-95.0338 559.5456,-69.3438 546.8832,-50.8052"/>
<polygon fill="#000000" stroke="#000000" points="549.6505,-48.6581 540.9833,-42.5646 543.9589,-52.733 549.6505,-48.6581"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.07s)">
<text text-anchor="middle" x="1452.7241" y="-534.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="strings.IndexRune (0.75s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2117.4609,-850 2006.5391,-850 2006.5391,-803 2117.4609,-803 2117.4609,-850"/>
<text text-anchor="middle" x="2062" y="-835.6" font-family="Times,serif" font-size="13.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="2062" y="-822.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.27s(1.26%)</text>
<text text-anchor="middle" x="2062" y="-809.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.75s(3.50%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N24 -->
<g id="edge25" class="edge">
<title>N19&#45;&gt;N24</title>
<g id="a_edge25"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.75s)">
<path fill="none" stroke="#000000" d="M2062,-905.9696C2062,-892.3649 2062,-875.3443 2062,-860.5489"/>
<polygon fill="#000000" stroke="#000000" points="2065.5001,-860.2494 2062,-850.2494 2058.5001,-860.2495 2065.5001,-860.2494"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.75s)">
<text text-anchor="middle" x="2078.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.75s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N7 -->
<g id="edge33" class="edge">
<title>N21&#45;&gt;N7</title>
<g id="a_edge33"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.54s)">
<path fill="none" stroke="#000000" d="M3521.9868,-1013.339C3496.024,-994.6641 3467,-965.9675 3467,-931 3467,-931 3467,-931 3467,-316 3467,-255.6758 2544.7235,-227.7385 2271.4337,-220.7843"/>
<polygon fill="#000000" stroke="#000000" points="2271.3018,-217.28 2261.2166,-220.5264 2271.1251,-224.2777 2271.3018,-217.28"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.54s)">
<text text-anchor="middle" x="3483.7241" y="-629.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N7 -->
<g id="edge22" class="edge">
<title>N22&#45;&gt;N7</title>
<g id="a_edge22"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.77s)">
<path fill="none" stroke="#000000" d="M2196,-297.755C2196,-285.5665 2196,-269.1335 2196,-254.4317"/>
<polygon fill="#000000" stroke="#000000" points="2199.5001,-254.1179 2196,-244.1179 2192.5001,-254.1179 2199.5001,-254.1179"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.77s)">
<text text-anchor="middle" x="2212.7241" y="-264.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.77s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="main.(*Integer).Add (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1011.1926,-845.5 912.8074,-845.5 912.8074,-807.5 1011.1926,-807.5 1011.1926,-845.5"/>
<text text-anchor="middle" x="962" y="-833.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="962" y="-823.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.093%)</text>
<text text-anchor="middle" x="962" y="-813.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.34s(1.59%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N42 -->
<g id="edge43" class="edge">
<title>N23&#45;&gt;N42</title>
<g id="a_edge43"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.34s)">
<path fill="none" stroke="#000000" d="M977.5552,-910.42C971.5998,-902.1345 965.6615,-892.1453 962.5518,-882 960.0021,-873.6818 959.1823,-864.3274 959.1893,-855.7025"/>
<polygon fill="#000000" stroke="#000000" points="962.6886,-855.7807 959.5472,-845.6623 955.6931,-855.5313 962.6886,-855.7807"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.34s)">
<text text-anchor="middle" x="979.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N48 -->
<g id="edge92" class="edge">
<title>N23&#45;&gt;N48</title>
<g id="a_edge92"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.11s)">
<path fill="none" stroke="#000000" d="M1051.4085,-910.3655C1062.7711,-906.6116 1074.6967,-902.9549 1086,-900 1206.2308,-868.5693 1350.3379,-845.4212 1427.5868,-834.1582"/>
<polygon fill="#000000" stroke="#000000" points="1428.1831,-837.6084 1437.5792,-832.7133 1427.1812,-830.6805 1428.1831,-837.6084"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.11s)">
<text text-anchor="middle" x="1243.4678" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="main.(*machine).popValue (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="857.2848,-844.5 700.7152,-844.5 700.7152,-808.5 857.2848,-808.5 857.2848,-844.5"/>
<text text-anchor="middle" x="779" y="-829.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="779" y="-816.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.26s(1.21%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N51 -->
<g id="edge112" class="edge">
<title>N23&#45;&gt;N51</title>
<g id="a_edge112"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M912.9962,-916.0911C885.1154,-908.6501 854.6794,-897.753 829.5518,-882 817.4402,-874.407 806.4276,-863.1328 797.7954,-852.7255"/>
<polygon fill="#000000" stroke="#000000" points="800.357,-850.3222 791.4073,-844.6517 794.8674,-854.6656 800.357,-850.3222"/>
</a>
</g>
<g id="a_edge112&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="846.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="main.(*Integer).Negate (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1193.9575,-844.5 1094.0425,-844.5 1094.0425,-808.5 1193.9575,-808.5 1193.9575,-844.5"/>
<text text-anchor="middle" x="1144" y="-832.8" font-family="Times,serif" font-size="9.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="1144" y="-823.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.047%)</text>
<text text-anchor="middle" x="1144" y="-814.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.16s(0.75%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N65 -->
<g id="edge70" class="edge">
<title>N23&#45;&gt;N65</title>
<g id="a_edge70"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.16s)">
<path fill="none" stroke="#000000" d="M1024.4376,-910.3542C1048.9731,-893.1464 1083.9536,-868.613 1109.7424,-850.5263"/>
<polygon fill="#000000" stroke="#000000" points="1111.9299,-853.2672 1118.1074,-844.6596 1107.9105,-847.5361 1111.9299,-853.2672"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.16s)">
<text text-anchor="middle" x="1099.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.indexbytebody (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2265.2522,-747.5 2118.7478,-747.5 2118.7478,-711.5 2265.2522,-711.5 2265.2522,-747.5"/>
<text text-anchor="middle" x="2192" y="-732.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.indexbytebody</text>
<text text-anchor="middle" x="2192" y="-718.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.31s(1.45%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N47 -->
<g id="edge48" class="edge">
<title>N24&#45;&gt;N47</title>
<g id="a_edge48"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.31s)">
<path fill="none" stroke="#000000" d="M2086.7173,-802.7748C2097.8918,-792.5277 2111.4965,-780.693 2124.5518,-771 2133.0008,-764.7269 2142.4268,-758.4952 2151.4903,-752.841"/>
<polygon fill="#000000" stroke="#000000" points="2153.3251,-755.8215 2160.0253,-747.6142 2149.6694,-749.8519 2153.3251,-755.8215"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.31s)">
<text text-anchor="middle" x="2140.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="strings.IndexByte (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2100.4902,-747.5 1999.5098,-747.5 1999.5098,-711.5 2100.4902,-711.5 2100.4902,-747.5"/>
<text text-anchor="middle" x="2050" y="-731.9" font-family="Times,serif" font-size="12.00" fill="#000000">strings.IndexByte</text>
<text text-anchor="middle" x="2050" y="-719.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.17s(0.79%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N64 -->
<g id="edge69" class="edge">
<title>N24&#45;&gt;N64</title>
<g id="a_edge69"><a xlink:title="strings.IndexRune &#45;&gt; strings.IndexByte (0.17s)">
<path fill="none" stroke="#000000" d="M2059.0337,-802.5225C2057.3634,-789.0211 2055.2675,-772.079 2053.5151,-757.9136"/>
<polygon fill="#000000" stroke="#000000" points="2056.956,-757.22 2052.2547,-747.7254 2050.009,-758.0795 2056.956,-757.22"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; strings.IndexByte (0.17s)">
<text text-anchor="middle" x="2073.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="strconv.ParseInt (0.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2286.1256,-850 2185.8744,-850 2185.8744,-803 2286.1256,-803 2286.1256,-850"/>
<text text-anchor="middle" x="2236" y="-835.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="2236" y="-822.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.21s(0.98%)</text>
<text text-anchor="middle" x="2236" y="-809.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.70s(3.27%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N27 -->
<g id="edge28" class="edge">
<title>N25&#45;&gt;N27</title>
<g id="a_edge28"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.70s)">
<path fill="none" stroke="#000000" d="M2227.8342,-911.8331C2229.207,-897.4873 2231.1206,-877.4892 2232.7504,-860.4584"/>
<polygon fill="#000000" stroke="#000000" points="2236.2525,-860.6028 2233.7211,-850.3148 2229.2843,-859.9359 2236.2525,-860.6028"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.70s)">
<text text-anchor="middle" x="2247.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.70s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="strconv.atof64 (0.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1981.6549,-848.5 1888.3451,-848.5 1888.3451,-804.5 1981.6549,-804.5 1981.6549,-848.5"/>
<text text-anchor="middle" x="1935" y="-834.9" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="1935" y="-822.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.14s(0.65%)</text>
<text text-anchor="middle" x="1935" y="-810.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.70s(3.27%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N28 -->
<g id="edge29" class="edge">
<title>N26&#45;&gt;N28</title>
<g id="a_edge29"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (0.70s)">
<path fill="none" stroke="#000000" d="M1935,-912.7975C1935,-898.076 1935,-876.9677 1935,-859.3124"/>
<polygon fill="#000000" stroke="#000000" points="1938.5001,-858.8537 1935,-848.8538 1931.5001,-858.8538 1938.5001,-858.8537"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (0.70s)">
<text text-anchor="middle" x="1951.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.70s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="strconv.ParseUint (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2428.9458,-753 2321.0542,-753 2321.0542,-706 2428.9458,-706 2428.9458,-753"/>
<text text-anchor="middle" x="2375" y="-738.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="2375" y="-725.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.19s(0.89%)</text>
<text text-anchor="middle" x="2375" y="-712.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.44s(2.05%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N36 -->
<g id="edge38" class="edge">
<title>N27&#45;&gt;N36</title>
<g id="a_edge38"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.44s)">
<path fill="none" stroke="#000000" d="M2230.1239,-802.7491C2228.8918,-792.0137 2229.6519,-779.7939 2236.5518,-771 2256.5002,-745.5757 2276.0466,-762.2857 2307,-753 2308.4207,-752.5738 2309.8559,-752.1366 2311.3013,-751.6903"/>
<polygon fill="#000000" stroke="#000000" points="2312.4663,-754.9927 2320.9404,-748.6333 2310.3502,-748.3202 2312.4663,-754.9927"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.44s)">
<text text-anchor="middle" x="2252.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N55 -->
<g id="edge109" class="edge">
<title>N27&#45;&gt;N55</title>
<g id="a_edge109"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.05s)">
<path fill="none" stroke="#000000" d="M2253.8386,-802.7951C2263.8847,-791.24 2277.4368,-778.2934 2292.5518,-771 2348.4663,-744.0198 2372.608,-766.8206 2436.9581,-752.8359"/>
<polygon fill="#000000" stroke="#000000" points="2437.84,-756.2238 2446.7527,-750.4954 2436.213,-749.4155 2437.84,-756.2238"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.05s)">
<text text-anchor="middle" x="2308.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N6 -->
<g id="edge57" class="edge">
<title>N28&#45;&gt;N6</title>
<g id="a_edge57"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.24s)">
<path fill="none" stroke="#000000" d="M1947.4854,-804.2239C1960.4544,-777.7601 1975.909,-733.7167 1953,-706 1929.6578,-677.7592 1895.4569,-716.5965 1872.5518,-688 1868.6619,-683.1436 1872.0456,-680.2016 1872.5518,-674 1875.9961,-631.8021 1869.0168,-617.8439 1888,-580 1890.0232,-575.9666 1892.5748,-572.0665 1895.4058,-568.3778"/>
<polygon fill="#000000" stroke="#000000" points="1898.1461,-570.5581 1901.9531,-560.6709 1892.8112,-566.026 1898.1461,-570.5581"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.24s)">
<text text-anchor="middle" x="1889.7241" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.duffzero (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1944.2542,-747.5 1847.7458,-747.5 1847.7458,-711.5 1944.2542,-711.5 1944.2542,-747.5"/>
<text text-anchor="middle" x="1896" y="-731.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="1896" y="-719.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.14s(0.65%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N75 -->
<g id="edge89" class="edge">
<title>N28&#45;&gt;N75</title>
<g id="a_edge89"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.13s)">
<path fill="none" stroke="#000000" d="M1926.1503,-804.4892C1920.4721,-790.3666 1913.056,-771.9213 1906.9999,-756.8587"/>
<polygon fill="#000000" stroke="#000000" points="1910.2263,-755.5008 1903.2485,-747.5283 1903.7316,-758.1121 1910.2263,-755.5008"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.13s)">
<text text-anchor="middle" x="1934.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N7 -->
<g id="edge50" class="edge">
<title>N29&#45;&gt;N7</title>
<g id="a_edge50"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.27s)">
<path fill="none" stroke="#000000" d="M530.2427,-1036.4205C398.7148,-1034.558 103.7241,-1026.7374 73,-994 14.8998,-932.0925 20.5784,-683.3766 66.5518,-612 181.6387,-433.3201 1755.0395,-263.6519 2120.5354,-226.5008"/>
<polygon fill="#000000" stroke="#000000" points="2121.1429,-229.9573 2130.7388,-225.4663 2120.4367,-222.993 2121.1429,-229.9573"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.27s)">
<text text-anchor="middle" x="83.7241" y="-629.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N35 -->
<g id="edge100" class="edge">
<title>N29&#45;&gt;N35</title>
<g id="a_edge100"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.08s)">
<path fill="none" stroke="#000000" d="M530.0755,-1034.479C397.9829,-1028.8203 100.523,-1014.0201 59,-994 24.4452,-977.3396 0,-969.3615 0,-931 0,-931 0,-931 0,-120.5 0,-75.2985 304.8267,-42.6624 449.9329,-29.6874"/>
<polygon fill="#000000" stroke="#000000" points="450.4459,-33.1558 460.0981,-28.7873 449.8284,-26.1831 450.4459,-33.1558"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.08s)">
<text text-anchor="middle" x="16.7241" y="-534.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N35 -->
<g id="edge99" class="edge">
<title>N31&#45;&gt;N35</title>
<g id="a_edge99"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.08s)">
<path fill="none" stroke="#000000" d="M2268.6666,-98.6387C2265.7515,-98.0335 2262.8546,-97.4828 2260,-97 2100.0961,-69.9576 2056.7695,-96.589 1895.5518,-79 1858.5577,-74.9639 1850.0273,-68.7189 1813,-65 1575.4205,-41.1384 838.5887,-28.2167 600.2228,-24.5806"/>
<polygon fill="#000000" stroke="#000000" points="599.9777,-21.0766 589.9258,-24.4246 599.8716,-28.0758 599.9777,-21.0766"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.08s)">
<text text-anchor="middle" x="1912.7241" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.newdefer (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2394.041,-47 2285.959,-47 2285.959,0 2394.041,0 2394.041,-47"/>
<text text-anchor="middle" x="2340" y="-32.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2340" y="-19.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.24s(1.12%)</text>
<text text-anchor="middle" x="2340" y="-6.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.25s(1.17%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N54 -->
<g id="edge53" class="edge">
<title>N31&#45;&gt;N54</title>
<g id="a_edge53"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.25s)">
<path fill="none" stroke="#000000" d="M2340,-96.5225C2340,-84.776 2340,-70.4252 2340,-57.5644"/>
<polygon fill="#000000" stroke="#000000" points="2343.5001,-57.2017 2340,-47.2017 2336.5001,-57.2018 2343.5001,-57.2017"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.25s)">
<text text-anchor="middle" x="2356.7241" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N35 -->
<g id="edge59" class="edge">
<title>N34&#45;&gt;N35</title>
<g id="a_edge59"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.22s)">
<path fill="none" stroke="#000000" d="M595.1732,-514.8804C561.5872,-496.3281 525,-466.8565 525,-426.5 525,-426.5 525,-426.5 525,-120.5 525,-97.8709 525,-72.2722 525,-53.0563"/>
<polygon fill="#000000" stroke="#000000" points="528.5001,-52.8242 525,-42.8242 521.5001,-52.8243 528.5001,-52.8242"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.22s)">
<text text-anchor="middle" x="541.7241" y="-264.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N6 -->
<g id="edge55" class="edge">
<title>N36&#45;&gt;N6</title>
<g id="a_edge55"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.25s)">
<path fill="none" stroke="#000000" d="M2320.7433,-710.712C2219.2932,-675.5041 2009.7257,-602.3759 1995,-594 1982.1108,-586.6687 1969.2542,-576.7984 1958.3007,-567.4147"/>
<polygon fill="#000000" stroke="#000000" points="1960.506,-564.693 1950.6879,-560.7111 1955.8799,-569.9466 1960.506,-564.693"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.25s)">
<text text-anchor="middle" x="2177.7241" y="-629.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="unicode.IsSpace (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2512.3052,-949 2417.6948,-949 2417.6948,-913 2512.3052,-913 2512.3052,-949"/>
<text text-anchor="middle" x="2465" y="-933.4" font-family="Times,serif" font-size="12.00" fill="#000000">unicode.IsSpace</text>
<text text-anchor="middle" x="2465" y="-921.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.16s(0.75%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N68 -->
<g id="edge73" class="edge">
<title>N37&#45;&gt;N68</title>
<g id="a_edge73"><a xlink:title="main.wordIsWhitespace &#45;&gt; unicode.IsSpace (0.16s)">
<path fill="none" stroke="#000000" d="M2465,-1013.4752C2465,-997.5645 2465,-976.4576 2465,-959.5793"/>
<polygon fill="#000000" stroke="#000000" points="2468.5001,-959.1956 2465,-949.1957 2461.5001,-959.1957 2468.5001,-959.1956"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; unicode.IsSpace (0.16s)">
<text text-anchor="middle" x="2481.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime._System (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2118.7699,-334 2045.2301,-334 2045.2301,-298 2118.7699,-298 2118.7699,-334"/>
<text text-anchor="middle" x="2082" y="-317.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="2082" y="-309.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.38s(1.77%)</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N7 -->
<g id="edge40" class="edge">
<title>N38&#45;&gt;N7</title>
<g id="a_edge40"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.38s)">
<path fill="none" stroke="#000000" d="M2103.1754,-297.9824C2118.7257,-284.751 2140.2582,-266.4294 2158.67,-250.7633"/>
<polygon fill="#000000" stroke="#000000" points="2160.9951,-253.3804 2166.3431,-244.2344 2156.4589,-248.0491 2160.9951,-253.3804"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.38s)">
<text text-anchor="middle" x="2158.7241" y="-264.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.mapassign1 (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3344.4844,-953 3231.5156,-953 3231.5156,-909 3344.4844,-909 3344.4844,-953"/>
<text text-anchor="middle" x="3288" y="-939.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="3288" y="-927.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.13s(0.61%)</text>
<text text-anchor="middle" x="3288" y="-915.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.34s(1.59%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N43 -->
<g id="edge44" class="edge">
<title>N39&#45;&gt;N43</title>
<g id="a_edge44"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.34s)">
<path fill="none" stroke="#000000" d="M3288,-1017.558C3288,-1002.5113 3288,-981.3346 3288,-963.6938"/>
<polygon fill="#000000" stroke="#000000" points="3291.5001,-963.2533 3288,-953.2534 3284.5001,-963.2534 3291.5001,-963.2533"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.34s)">
<text text-anchor="middle" x="3304.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N11 -->
<g id="edge66" class="edge">
<title>N41&#45;&gt;N11</title>
<g id="a_edge66"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.17s)">
<path fill="none" stroke="#000000" d="M2869.4462,-1016.3105C2883.9573,-1002.935 2903.285,-985.1199 2920.5243,-969.2298"/>
<polygon fill="#000000" stroke="#000000" points="2923.2924,-971.4383 2928.2732,-962.0873 2918.5481,-966.2913 2923.2924,-971.4383"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.17s)">
<text text-anchor="middle" x="2923.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="main.isPrefixChar (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2836.4941,-949 2733.5059,-949 2733.5059,-913 2836.4941,-913 2836.4941,-949"/>
<text text-anchor="middle" x="2785" y="-933.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.isPrefixChar</text>
<text text-anchor="middle" x="2785" y="-921.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.12s(0.56%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N79 -->
<g id="edge90" class="edge">
<title>N41&#45;&gt;N79</title>
<g id="a_edge90"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.12s)">
<path fill="none" stroke="#000000" d="M2834.8986,-1016.3105C2825.1755,-999.6872 2811.4415,-976.2064 2800.8428,-958.0861"/>
<polygon fill="#000000" stroke="#000000" points="2803.6941,-956.0285 2795.624,-949.1637 2797.6518,-959.5627 2803.6941,-956.0285"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.12s)">
<text text-anchor="middle" x="2837.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="main.Integer.Add (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1008.4839,-750 915.5161,-750 915.5161,-709 1008.4839,-709 1008.4839,-750"/>
<text text-anchor="middle" x="962" y="-737.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="962" y="-726.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.08s(0.37%)</text>
<text text-anchor="middle" x="962" y="-715.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.32s(1.49%)</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N44 -->
<g id="edge45" class="edge">
<title>N42&#45;&gt;N44</title>
<g id="a_edge45"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.32s)">
<path fill="none" stroke="#000000" d="M962,-807.3359C962,-793.9676 962,-775.8362 962,-760.4363"/>
<polygon fill="#000000" stroke="#000000" points="965.5001,-760.3033 962,-750.3034 958.5001,-760.3034 965.5001,-760.3033"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.32s)">
<text text-anchor="middle" x="978.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.newarray (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3190.301,-845.5 3103.699,-845.5 3103.699,-807.5 3190.301,-807.5 3190.301,-845.5"/>
<text text-anchor="middle" x="3147" y="-833.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="3147" y="-823.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.093%)</text>
<text text-anchor="middle" x="3147" y="-813.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(0.84%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N62 -->
<g id="edge65" class="edge">
<title>N43&#45;&gt;N62</title>
<g id="a_edge65"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.18s)">
<path fill="none" stroke="#000000" d="M3258.0975,-908.8382C3235.6345,-892.1901 3204.8302,-869.36 3181.3551,-851.9618"/>
<polygon fill="#000000" stroke="#000000" points="3183.1851,-848.9616 3173.067,-845.8192 3179.0171,-854.5855 3183.1851,-848.9616"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.18s)">
<text text-anchor="middle" x="3237.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N12 -->
<g id="edge78" class="edge">
<title>N44&#45;&gt;N12</title>
<g id="a_edge78"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.15s)">
<path fill="none" stroke="#000000" d="M962,-708.7779C962,-696.3629 962,-680.3131 962,-666.2675"/>
<polygon fill="#000000" stroke="#000000" points="965.5001,-666.0108 962,-656.0108 958.5001,-666.0108 965.5001,-666.0108"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.15s)">
<text text-anchor="middle" x="978.7241" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N53 -->
<g id="edge98" class="edge">
<title>N44&#45;&gt;N53</title>
<g id="a_edge98"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.08s)">
<path fill="none" stroke="#000000" d="M915.2904,-715.2027C859.5739,-698.1484 766.4786,-669.6529 706.692,-651.3528"/>
<polygon fill="#000000" stroke="#000000" points="707.6154,-647.9752 697.0289,-648.3951 705.5665,-654.6687 707.6154,-647.9752"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.08s)">
<text text-anchor="middle" x="841.7241" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.getitab (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1533.1256,-753 1432.8744,-753 1432.8744,-706 1533.1256,-706 1533.1256,-753"/>
<text text-anchor="middle" x="1483" y="-738.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="1483" y="-725.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.28s(1.31%)</text>
<text text-anchor="middle" x="1483" y="-712.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.32s(1.49%)</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N12 -->
<g id="edge103" class="edge">
<title>N46&#45;&gt;N12</title>
<g id="a_edge103"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.convT2I (0.06s)">
<path fill="none" stroke="#000000" d="M1610.5546,-911.6894C1601.3242,-862.2256 1574.5187,-732.9648 1542,-706 1502.3281,-673.1036 1160.3252,-647.0739 1020.8473,-637.7309"/>
<polygon fill="#000000" stroke="#000000" points="1020.9745,-634.2317 1010.7644,-637.061 1020.5103,-641.2163 1020.9745,-634.2317"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.convT2I (0.06s)">
<text text-anchor="middle" x="1596.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N48 -->
<g id="edge95" class="edge">
<title>N46&#45;&gt;N48</title>
<g id="a_edge95"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.assertI2I (0.08s)">
<path fill="none" stroke="#000000" d="M1573.7614,-911.8377C1558.7786,-903.7263 1542.1303,-893.4858 1528.5518,-882 1519.3707,-874.234 1510.6407,-864.4398 1503.3254,-855.2488"/>
<polygon fill="#000000" stroke="#000000" points="1505.8989,-852.8534 1497.0328,-847.0532 1500.3467,-857.1164 1505.8989,-852.8534"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.assertI2I (0.08s)">
<text text-anchor="middle" x="1545.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N45 -->
<g id="edge52" class="edge">
<title>N48&#45;&gt;N45</title>
<g id="a_edge52"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.25s)">
<path fill="none" stroke="#000000" d="M1483,-805.9288C1483,-793.6089 1483,-777.6419 1483,-763.4902"/>
<polygon fill="#000000" stroke="#000000" points="1486.5001,-763.1125 1483,-753.1126 1479.5001,-763.1126 1486.5001,-763.1125"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.25s)">
<text text-anchor="middle" x="1499.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.freedefer (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1829.0819,-47 1722.9181,-47 1722.9181,0 1829.0819,0 1829.0819,-47"/>
<text text-anchor="middle" x="1776" y="-32.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="1776" y="-19.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.21s(0.98%)</text>
<text text-anchor="middle" x="1776" y="-6.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.22s(1.03%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N57 -->
<g id="edge58" class="edge">
<title>N49&#45;&gt;N57</title>
<g id="a_edge58"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.22s)">
<path fill="none" stroke="#000000" d="M1776,-99.9288C1776,-87.6089 1776,-71.6419 1776,-57.4902"/>
<polygon fill="#000000" stroke="#000000" points="1779.5001,-57.1125 1776,-47.1126 1772.5001,-57.1126 1779.5001,-57.1125"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.22s)">
<text text-anchor="middle" x="1792.7241" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.schedule (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3712.7304,-1055 3635.2696,-1055 3635.2696,-1019 3712.7304,-1019 3712.7304,-1055"/>
<text text-anchor="middle" x="3674" y="-1043.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="3674" y="-1034.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.047%)</text>
<text text-anchor="middle" x="3674" y="-1025.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.27s(1.26%)</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.findrunnable (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3715.8209,-949 3632.1791,-949 3632.1791,-913 3715.8209,-913 3715.8209,-949"/>
<text text-anchor="middle" x="3674" y="-932.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="3674" y="-924.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(0.61%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N77 -->
<g id="edge88" class="edge">
<title>N50&#45;&gt;N77</title>
<g id="a_edge88"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.13s)">
<path fill="none" stroke="#000000" d="M3674,-1018.5362C3674,-1002.1966 3674,-978.1 3674,-959.3232"/>
<polygon fill="#000000" stroke="#000000" points="3677.5001,-959.2522 3674,-949.2522 3670.5001,-959.2522 3677.5001,-959.2522"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.13s)">
<text text-anchor="middle" x="3690.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.(*mheap).allocSpanLocked (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2036.1059,-45.5 1847.8941,-45.5 1847.8941,-1.5 2036.1059,-1.5 2036.1059,-45.5"/>
<text text-anchor="middle" x="1942" y="-31.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.(*mheap).allocSpanLocked</text>
<text text-anchor="middle" x="1942" y="-19.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.11s(0.51%)</text>
<text text-anchor="middle" x="1942" y="-7.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.19s(0.89%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N61 -->
<g id="edge64" class="edge">
<title>N52&#45;&gt;N61</title>
<g id="a_edge64"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.19s)">
<path fill="none" stroke="#000000" d="M1928.6053,-99.9288C1930.8483,-87.1302 1933.7812,-70.3953 1936.3306,-55.8488"/>
<polygon fill="#000000" stroke="#000000" points="1939.825,-56.185 1938.1039,-45.7309 1932.9301,-54.9766 1939.825,-56.185"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.19s)">
<text text-anchor="middle" x="1951.7241" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N34 -->
<g id="edge68" class="edge">
<title>N53&#45;&gt;N34</title>
<g id="a_edge68"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.17s)">
<path fill="none" stroke="#000000" d="M650,-613.2779C650,-601.3 650,-585.9389 650,-572.2584"/>
<polygon fill="#000000" stroke="#000000" points="653.5001,-572.2083 650,-562.2083 646.5001,-572.2084 653.5001,-572.2083"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.17s)">
<text text-anchor="middle" x="666.7241" y="-582.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N48 -->
<g id="edge101" class="edge">
<title>N58&#45;&gt;N48</title>
<g id="a_edge101"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.07s)">
<path fill="none" stroke="#000000" d="M1395.7068,-912.9491C1407.0477,-900.1306 1422.8848,-882.6638 1437.5518,-868 1442.1138,-863.4389 1447.0519,-858.721 1451.9349,-854.1738"/>
<polygon fill="#000000" stroke="#000000" points="1454.5093,-856.5613 1459.5008,-847.216 1449.7709,-851.4088 1454.5093,-856.5613"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.07s)">
<text text-anchor="middle" x="1454.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.makemap (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="575.7235,-847 480.2765,-847 480.2765,-806 575.7235,-806 575.7235,-847"/>
<text text-anchor="middle" x="528" y="-834.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="528" y="-823.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.33%)</text>
<text text-anchor="middle" x="528" y="-812.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.17s(0.79%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N63 -->
<g id="edge67" class="edge">
<title>N59&#45;&gt;N63</title>
<g id="a_edge67"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.17s)">
<path fill="none" stroke="#000000" d="M636.6058,-911.8331C615.8101,-895.4936 585.6821,-871.8216 562.431,-853.5529"/>
<polygon fill="#000000" stroke="#000000" points="564.5457,-850.7634 554.5201,-847.3373 560.221,-856.2676 564.5457,-850.7634"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.17s)">
<text text-anchor="middle" x="615.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N5 -->
<g id="edge75" class="edge">
<title>N62&#45;&gt;N5</title>
<g id="a_edge75"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.16s)">
<path fill="none" stroke="#000000" d="M3103.4563,-812.2833C3050.7597,-793.7321 2969,-760.0303 2969,-729.5 2969,-729.5 2969,-729.5 2969,-538.5 2969,-491.4139 2286.8465,-447.1679 2026.9431,-432.0188"/>
<polygon fill="#000000" stroke="#000000" points="2026.9412,-428.5128 2016.7551,-431.4272 2026.5354,-435.5011 2026.9412,-428.5128"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.16s)">
<text text-anchor="middle" x="2985.7241" y="-629.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N6 -->
<g id="edge94" class="edge">
<title>N63&#45;&gt;N6</title>
<g id="a_edge94"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.10s)">
<path fill="none" stroke="#000000" d="M524.8797,-805.7746C521.2442,-775.4785 517.8912,-717.9323 536.5518,-674 561.6202,-614.9817 584.5474,-598.3077 646,-580 715.8811,-559.1813 1229.1221,-564.3677 1302,-562 1508.0747,-555.3049 1752.241,-545.6381 1865.066,-541.0727"/>
<polygon fill="#000000" stroke="#000000" points="1865.3935,-544.5624 1875.2435,-540.6603 1865.11,-537.5682 1865.3935,-544.5624"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.10s)">
<text text-anchor="middle" x="553.7241" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N12 -->
<g id="edge76" class="edge">
<title>N65&#45;&gt;N12</title>
<g id="a_edge76"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.15s)">
<path fill="none" stroke="#000000" d="M1141.3461,-808.484C1135.7493,-776.8333 1119.8065,-711.0938 1080,-674 1063.6743,-658.7869 1041.3443,-649.3392 1020.5004,-643.4808"/>
<polygon fill="#000000" stroke="#000000" points="1021.2963,-640.0716 1010.7387,-640.9588 1019.5452,-646.849 1021.2963,-640.0716"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.15s)">
<text text-anchor="middle" x="1143.7241" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N12 -->
<g id="edge106" class="edge">
<title>N66&#45;&gt;N12</title>
<g id="a_edge106"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.05s)">
<path fill="none" stroke="#000000" d="M526.8818,-910.4253C565.9559,-897.3547 612.8469,-877.6207 649,-850 688.1688,-820.0753 742.4683,-700.548 784,-674 803.6211,-661.4578 859.4297,-650.1267 903.38,-642.7535"/>
<polygon fill="#000000" stroke="#000000" points="904.1124,-646.1801 913.4119,-641.1038 902.9765,-639.2729 904.1124,-646.1801"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.05s)">
<text text-anchor="middle" x="724.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N51 -->
<g id="edge113" class="edge">
<title>N66&#45;&gt;N51</title>
<g id="a_edge113"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M524.119,-910.4413C537.0551,-906.8956 550.4105,-903.2937 563,-900 595.3281,-891.5422 604.136,-892.066 636,-882 666.645,-872.3191 700.1754,-859.4321 727.0609,-848.513"/>
<polygon fill="#000000" stroke="#000000" points="728.7189,-851.6163 736.6477,-844.5888 726.0671,-845.138 728.7189,-851.6163"/>
</a>
</g>
<g id="a_edge113&#45;label"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="692.7241" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.mcall (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3639.7699,-1360 3566.2301,-1360 3566.2301,-1324 3639.7699,-1324 3639.7699,-1360"/>
<text text-anchor="middle" x="3603" y="-1343.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="3603" y="-1335.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.16s(0.75%)</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.park_m (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3637.7699,-1170 3568.2301,-1170 3568.2301,-1134 3637.7699,-1134 3637.7699,-1170"/>
<text text-anchor="middle" x="3603" y="-1153.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.park_m</text>
<text text-anchor="middle" x="3603" y="-1145.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(0.7%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N71 -->
<g id="edge80" class="edge">
<title>N67&#45;&gt;N71</title>
<g id="a_edge80"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.15s)">
<path fill="none" stroke="#000000" d="M3603,-1323.782C3603,-1290.5153 3603,-1219.7296 3603,-1180.1957"/>
<polygon fill="#000000" stroke="#000000" points="3606.5001,-1180.1628 3603,-1170.1628 3599.5001,-1180.1629 3606.5001,-1180.1628"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.mcall &#45;&gt; runtime.park_m (0.15s)">
<text text-anchor="middle" x="3619.7241" y="-1212.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N12 -->
<g id="edge96" class="edge">
<title>N70&#45;&gt;N12</title>
<g id="a_edge96"><a xlink:title="main.(*machine).loadBooleanWords.func3 &#45;&gt; runtime.convT2I (0.08s)">
<path fill="none" stroke="#000000" d="M266.8624,-911.9935C346.2764,-863.9968 565.4654,-737.2354 765,-674 810.6007,-659.5485 863.8456,-649.1052 903.4763,-642.5209"/>
<polygon fill="#000000" stroke="#000000" points="904.1944,-645.9501 913.5022,-640.889 903.0698,-639.0411 904.1944,-645.9501"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="main.(*machine).loadBooleanWords.func3 &#45;&gt; runtime.convT2I (0.08s)">
<text text-anchor="middle" x="541.7241" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N50 -->
<g id="edge84" class="edge">
<title>N71&#45;&gt;N50</title>
<g id="a_edge84"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.14s)">
<path fill="none" stroke="#000000" d="M3613.4158,-1133.7974C3621.88,-1119.1484 3634.2299,-1098.0938 3645.5518,-1080 3648.8369,-1074.75 3652.4242,-1069.1969 3655.9105,-1063.8881"/>
<polygon fill="#000000" stroke="#000000" points="3659.0072,-1065.5508 3661.611,-1055.2809 3653.1711,-1061.6856 3659.0072,-1065.5508"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.park_m &#45;&gt; runtime.schedule (0.14s)">
<text text-anchor="middle" x="3661.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.semasleep1 (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2676.7582,-41.5 2597.2418,-41.5 2597.2418,-5.5 2676.7582,-5.5 2676.7582,-41.5"/>
<text text-anchor="middle" x="2637" y="-25.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="2637" y="-17.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(0.7%)</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N73 -->
<g id="edge81" class="edge">
<title>N72&#45;&gt;N73</title>
<g id="a_edge81"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.15s)">
<path fill="none" stroke="#000000" d="M2637,-102.255C2637,-88.0291 2637,-68.021 2637,-51.7321"/>
<polygon fill="#000000" stroke="#000000" points="2640.5001,-51.6631 2637,-41.6631 2633.5001,-51.6632 2640.5001,-51.6631"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.15s)">
<text text-anchor="middle" x="2653.7241" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N11 -->
<g id="edge105" class="edge">
<title>N74&#45;&gt;N11</title>
<g id="a_edge105"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.06s)">
<path fill="none" stroke="#000000" d="M1185.9496,-1018.4677C1201.5663,-1015.8393 1217.7109,-1013.5179 1233,-1012 1727.08,-962.9488 1855.8423,-1042.2623 2350,-994 2384.8587,-990.5955 2392.7421,-983.8744 2427.5518,-980 2608.8727,-959.8184 2659.6348,-988.888 2844.0943,-961.9872"/>
<polygon fill="#000000" stroke="#000000" points="2844.7524,-965.4278 2854.1256,-960.4888 2843.7182,-958.5046 2844.7524,-965.4278"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.06s)">
<text text-anchor="middle" x="2443.7241" y="-982.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N51 -->
<g id="edge114" class="edge">
<title>N74&#45;&gt;N51</title>
<g id="a_edge114"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M1024.054,-1017.9428C1015.6215,-1015.873 1007.1328,-1013.8493 999,-1012 925.7527,-995.3445 890.3157,-1015.4653 837.5518,-962 807.9237,-931.9781 792.19,-884.5484 784.7317,-854.5057"/>
<polygon fill="#000000" stroke="#000000" points="788.1148,-853.6017 782.4295,-844.6614 781.2987,-855.1957 788.1148,-853.6017"/>
</a>
</g>
<g id="a_edge114&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="854.7241" y="-926.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N53 -->
<g id="edge115" class="edge">
<title>N74&#45;&gt;N53</title>
<g id="a_edge115"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1026.8433,-1017.9804C1017.5205,-1015.7832 1008.0568,-1013.7183 999,-1012 936.0656,-1000.0599 917.0507,-1013.3939 856,-994 827.1962,-984.8499 817.8779,-982.8504 796,-962 772.7704,-939.8614 782.5383,-921.81 759,-900 740.7101,-883.053 678.5316,-864.9174 658.5518,-850 626.9151,-826.3793 612.4608,-821.7383 598,-785 581.5479,-743.2028 606.7445,-693.8337 627.4645,-663.2157"/>
<polygon fill="#000000" stroke="#000000" points="630.5457,-664.9181 633.4253,-654.722 624.8159,-660.8969 630.5457,-664.9181"/>
</a>
</g>
<g id="a_edge115&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="675.7241" y="-822.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.stopm (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3710.7699,-844.5 3637.2301,-844.5 3637.2301,-808.5 3710.7699,-808.5 3710.7699,-844.5"/>
<text text-anchor="middle" x="3674" y="-828.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="3674" y="-820.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(0.65%)</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N76 -->
<g id="edge93" class="edge">
<title>N77&#45;&gt;N76</title>
<g id="a_edge93"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.11s)">
<path fill="none" stroke="#000000" d="M3674,-912.7975C3674,-896.8617 3674,-873.442 3674,-855.0195"/>
<polygon fill="#000000" stroke="#000000" points="3677.5001,-854.8445 3674,-844.8445 3670.5001,-854.8446 3677.5001,-854.8445"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.11s)">
<text text-anchor="middle" x="3690.4678" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.goschedImpl (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3740.2073,-1170 3655.7927,-1170 3655.7927,-1134 3740.2073,-1134 3740.2073,-1170"/>
<text text-anchor="middle" x="3698" y="-1153.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="3698" y="-1145.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(0.61%)</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N50 -->
<g id="edge86" class="edge">
<title>N78&#45;&gt;N50</title>
<g id="a_edge86"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.13s)">
<path fill="none" stroke="#000000" d="M3694.1971,-1133.7779C3690.3351,-1115.2726 3684.3034,-1086.3704 3679.8361,-1064.9646"/>
<polygon fill="#000000" stroke="#000000" points="3683.2543,-1064.2109 3677.7851,-1055.1368 3676.4019,-1065.641 3683.2543,-1064.2109"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.13s)">
<text text-anchor="middle" x="3701.7241" y="-1082.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion4.svg.

























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1653)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1653 3694.0214,-1653 3694.0214,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="452.5312,-1425 452.5312,-1641 1114.5312,-1641 1114.5312,-1425 452.5312,-1425"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="1106.375,-1633 460.6874,-1633 460.6874,-1433 1106.375,-1433 1106.375,-1633"/>
<text text-anchor="start" x="468.6093" y="-1603.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="468.6093" y="-1571.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="468.6093" y="-1539.4" font-family="Times,serif" font-size="32.00" fill="#000000">19.16s of 20.78s total (92.20%)</text>
<text text-anchor="start" x="468.6093" y="-1507.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 89 nodes (cum &lt;= 0.10s)</text>
<text text-anchor="start" x="468.6093" y="-1475.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 19 edges (freq &lt;= 0.02s)</text>
<text text-anchor="start" x="468.6093" y="-1443.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 103 (cum &gt;= 0.12s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (19.89s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1294.5746,-1383 1036.4878,-1383 1036.4878,-1303 1294.5746,-1303 1294.5746,-1383"/>
<text text-anchor="middle" x="1165.5312" y="-1359.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="1165.5312" y="-1335.8" font-family="Times,serif" font-size="24.00" fill="#000000">2.78s(13.38%)</text>
<text text-anchor="middle" x="1165.5312" y="-1311.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 19.89s(95.72%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).loadLoopWords.func1 (19.87s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1261.5151,-1247 1069.5473,-1247 1069.5473,-1206 1261.5151,-1206 1261.5151,-1247"/>
<text text-anchor="middle" x="1165.5312" y="-1234.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="1165.5312" y="-1223.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.09s(0.43%)</text>
<text text-anchor="middle" x="1165.5312" y="-1212.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 19.87s(95.62%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge48" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge48"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.33s)">
<path fill="none" stroke="#000000" d="M1198.4441,-1302.8489C1201.7447,-1297.1327 1204.5893,-1291.1112 1206.5312,-1285 1209.959,-1274.2125 1205.7318,-1263.6815 1198.872,-1254.5951"/>
<polygon fill="#000000" stroke="#000000" points="1201.4895,-1252.2712 1192.2923,-1247.0119 1196.2023,-1256.8588 1201.4895,-1252.2712"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.33s)">
<text text-anchor="middle" x="1225.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (18.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="830.1914,-1247 658.871,-1247 658.871,-1206 830.1914,-1206 830.1914,-1247"/>
<text text-anchor="middle" x="744.5312" y="-1234.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="744.5312" y="-1223.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.29%)</text>
<text text-anchor="middle" x="744.5312" y="-1212.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 18.34s(88.26%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N4 -->
<g id="edge58" class="edge">
<title>N1&#45;&gt;N4</title>
<g id="a_edge58"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.26s)">
<path fill="none" stroke="#000000" d="M1036.1807,-1307.5975C976.0587,-1291.0915 903.6198,-1271.1317 838.5312,-1253 834.7349,-1251.9425 830.8531,-1250.8585 826.9327,-1249.7617"/>
<polygon fill="#000000" stroke="#000000" points="827.708,-1246.3442 817.1345,-1247.0164 825.8194,-1253.0846 827.708,-1246.3442"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.26s)">
<text text-anchor="middle" x="963.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="main.NilWord.func1 (3.01s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1551.547,-1245.5 1453.5154,-1245.5 1453.5154,-1207.5 1551.547,-1207.5 1551.547,-1245.5"/>
<text text-anchor="middle" x="1502.5312" y="-1233.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="1502.5312" y="-1223.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.096%)</text>
<text text-anchor="middle" x="1502.5312" y="-1213.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 3.01s(14.49%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N7 -->
<g id="edge19" class="edge">
<title>N1&#45;&gt;N7</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.89s)">
<path fill="none" stroke="#000000" d="M1294.666,-1304.9309C1297.6436,-1304.2598 1300.6017,-1303.6148 1303.5312,-1303 1363.2029,-1290.4774 1384.3666,-1310.9693 1439.5312,-1285 1455.2615,-1277.5948 1469.7202,-1264.8167 1480.8078,-1253.0884"/>
<polygon fill="#000000" stroke="#000000" points="1483.4703,-1255.3625 1487.5865,-1245.5999 1478.2807,-1250.6647 1483.4703,-1255.3625"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.89s)">
<text text-anchor="middle" x="1477.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.89s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.mapaccess2_faststr (1.98s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3084.5439,-1150 2858.5185,-1150 2858.5185,-1085 3084.5439,-1085 3084.5439,-1150"/>
<text text-anchor="middle" x="2971.5312" y="-1130.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="2971.5312" y="-1111.8" font-family="Times,serif" font-size="19.00" fill="#000000">1.19s(5.73%)</text>
<text text-anchor="middle" x="2971.5312" y="-1092.8" font-family="Times,serif" font-size="19.00" fill="#000000">of 1.98s(9.53%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N10 -->
<g id="edge7" class="edge">
<title>N1&#45;&gt;N10</title>
<g id="a_edge7"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.78s)">
<path fill="none" stroke="#000000" d="M1294.5807,-1304.4548C1297.5839,-1303.9268 1300.5704,-1303.4401 1303.5312,-1303 1455.9806,-1280.3414 2536.7755,-1295.6493 2690.5312,-1285 2804.0405,-1277.1382 2861.2568,-1330.5342 2944.5312,-1253 2969.4219,-1229.825 2975.0236,-1190.7573 2975.0674,-1160.5097"/>
<polygon fill="#000000" stroke="#000000" points="2978.5614,-1160.1514 2974.8736,-1150.2191 2971.5626,-1160.2832 2978.5614,-1160.1514"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.78s)">
<text text-anchor="middle" x="2987.2553" y="-1222.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.78s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="runtime.convT2I (1.83s)">
<polygon fill="#f8f8f8" stroke="#000000" points="650.2562,-835 546.8062,-835 546.8062,-788 650.2562,-788 650.2562,-835"/>
<text text-anchor="middle" x="598.5312" y="-820.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="598.5312" y="-807.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.24s(1.15%)</text>
<text text-anchor="middle" x="598.5312" y="-794.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.83s(8.81%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N11 -->
<g id="edge11" class="edge">
<title>N1&#45;&gt;N11</title>
<g id="a_edge11"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.35s)">
<path fill="none" stroke="#000000" d="M1036.4102,-1336.2867C740.2808,-1320.0341 37.5312,-1276.2263 37.5312,-1226.5 37.5312,-1226.5 37.5312,-1226.5 37.5312,-910 37.5312,-833.2598 435.0836,-849.3392 536.492,-834.5121"/>
<polygon fill="#000000" stroke="#000000" points="537.3812,-837.9089 546.6116,-832.7078 536.1524,-831.0176 537.3812,-837.9089"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.35s)">
<text text-anchor="middle" x="54.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.35s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.(*machine).executeMathWord (1.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1051.4144,-1250 847.648,-1250 847.648,-1203 1051.4144,-1203 1051.4144,-1250"/>
<text text-anchor="middle" x="949.5312" y="-1235.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="949.5312" y="-1222.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.20s(0.96%)</text>
<text text-anchor="middle" x="949.5312" y="-1209.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.70s(8.18%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N12 -->
<g id="edge8" class="edge">
<title>N1&#45;&gt;N12</title>
<g id="a_edge8"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.70s)">
<path fill="none" stroke="#000000" d="M1091.1963,-1302.9073C1061.8129,-1287.0593 1028.7356,-1269.219 1001.937,-1254.7652"/>
<polygon fill="#000000" stroke="#000000" points="1003.5669,-1251.6676 993.1039,-1250.001 1000.2439,-1257.8287 1003.5669,-1251.6676"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.70s)">
<text text-anchor="middle" x="1074.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.70s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="runtime.growslice (1.47s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1397.5048,-1251.5 1279.5576,-1251.5 1279.5576,-1201.5 1397.5048,-1201.5 1397.5048,-1251.5"/>
<text text-anchor="middle" x="1338.5312" y="-1236.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="1338.5312" y="-1222.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.31s(1.49%)</text>
<text text-anchor="middle" x="1338.5312" y="-1208.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.47s(7.07%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N13 -->
<g id="edge9" class="edge">
<title>N1&#45;&gt;N13</title>
<g id="a_edge9"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.47s)">
<path fill="none" stroke="#000000" d="M1225.068,-1302.9073C1247.3171,-1287.9245 1272.2107,-1271.1609 1292.9992,-1257.1617"/>
<polygon fill="#000000" stroke="#000000" points="1295.0007,-1260.0335 1301.3403,-1251.5447 1291.0907,-1254.2273 1295.0007,-1260.0335"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.47s)">
<text text-anchor="middle" x="1283.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.47s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.(*CodeQuotation).cloneCode (1.46s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1820.4804,-1248.5 1638.582,-1248.5 1638.582,-1204.5 1820.4804,-1204.5 1820.4804,-1248.5"/>
<text text-anchor="middle" x="1729.5312" y="-1234.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="1729.5312" y="-1222.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.14s(0.67%)</text>
<text text-anchor="middle" x="1729.5312" y="-1210.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.46s(7.03%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N14 -->
<g id="edge10" class="edge">
<title>N1&#45;&gt;N14</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.46s)">
<path fill="none" stroke="#000000" d="M1294.6114,-1304.6455C1297.6054,-1304.0602 1300.5816,-1303.51 1303.5312,-1303 1434.2767,-1280.3915 1472.7919,-1317.1204 1601.5312,-1285 1629.3658,-1278.0553 1658.5937,-1265.1749 1682.0816,-1253.2646"/>
<polygon fill="#000000" stroke="#000000" points="1683.843,-1256.294 1691.1151,-1248.589 1680.6253,-1250.0774 1683.843,-1256.294"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.46s)">
<text text-anchor="middle" x="1658.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.46s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.tryParseInt (1.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2058.1783,-1248.5 1962.8841,-1248.5 1962.8841,-1204.5 2058.1783,-1204.5 2058.1783,-1248.5"/>
<text text-anchor="middle" x="2010.5312" y="-1234.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="2010.5312" y="-1222.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.16s(0.77%)</text>
<text text-anchor="middle" x="2010.5312" y="-1210.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.33s(6.40%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N15 -->
<g id="edge12" class="edge">
<title>N1&#45;&gt;N15</title>
<g id="a_edge12"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (1.33s)">
<path fill="none" stroke="#000000" d="M1294.5952,-1304.5481C1297.594,-1303.992 1300.5757,-1303.4743 1303.5312,-1303 1522.2109,-1267.9056 1581.6945,-1311.9121 1801.5312,-1285 1870.056,-1276.6113 1888.0286,-1274.8044 1953.5312,-1253 1954.3919,-1252.7135 1955.2568,-1252.4176 1956.1248,-1252.1134"/>
<polygon fill="#000000" stroke="#000000" points="1957.3711,-1255.384 1965.4859,-1248.5723 1954.8944,-1248.8368 1957.3711,-1255.384"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (1.33s)">
<text text-anchor="middle" x="1907.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.33s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="main.tryParseFloat (1.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1945.0156,-1248.5 1838.0468,-1248.5 1838.0468,-1204.5 1945.0156,-1204.5 1945.0156,-1248.5"/>
<text text-anchor="middle" x="1891.5312" y="-1234.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="1891.5312" y="-1222.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.16s(0.77%)</text>
<text text-anchor="middle" x="1891.5312" y="-1210.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.29s(6.21%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N16 -->
<g id="edge15" class="edge">
<title>N1&#45;&gt;N16</title>
<g id="a_edge15"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (1.29s)">
<path fill="none" stroke="#000000" d="M1294.603,-1304.5957C1297.5995,-1304.0254 1300.5785,-1303.4918 1303.5312,-1303 1468.1224,-1275.5859 1513.0462,-1306.3653 1678.5312,-1285 1746.5681,-1276.2159 1764.1242,-1273.6905 1829.5312,-1253 1830.5915,-1252.6646 1831.6584,-1252.3176 1832.7301,-1251.9603"/>
<polygon fill="#000000" stroke="#000000" points="1834.2015,-1255.1519 1842.4503,-1248.503 1831.8556,-1248.5566 1834.2015,-1255.1519"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (1.29s)">
<text text-anchor="middle" x="1781.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.29s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.memeqbody (1s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2547.4987,-1032 2381.5637,-1032 2381.5637,-988 2547.4987,-988 2547.4987,-1032"/>
<text text-anchor="middle" x="2464.5312" y="-1013.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2464.5312" y="-995.6" font-family="Times,serif" font-size="18.00" fill="#000000">1s(4.81%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N18 -->
<g id="edge21" class="edge">
<title>N1&#45;&gt;N18</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.84s)">
<path fill="none" stroke="#000000" d="M1294.5844,-1304.4789C1297.5865,-1303.9437 1300.5717,-1303.4489 1303.5312,-1303 1512.0724,-1271.366 2043.5176,-1313.3451 2252.5312,-1285 2309.3581,-1277.2935 2335.136,-1291.6178 2377.5312,-1253 2393.6918,-1238.2793 2435.765,-1104.8103 2454.8572,-1042.1786"/>
<polygon fill="#000000" stroke="#000000" points="2458.2669,-1042.9953 2457.8236,-1032.4097 2451.5689,-1040.9613 2458.2669,-1042.9953"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.84s)">
<text text-anchor="middle" x="2430.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.84s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.deferreturn (0.97s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2248.0576,-1253 2115.0048,-1253 2115.0048,-1200 2248.0576,-1200 2248.0576,-1253"/>
<text text-anchor="middle" x="2181.5312" y="-1237" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="2181.5312" y="-1222" font-family="Times,serif" font-size="15.00" fill="#000000">0.46s(2.21%)</text>
<text text-anchor="middle" x="2181.5312" y="-1207" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.97s(4.67%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N20 -->
<g id="edge18" class="edge">
<title>N1&#45;&gt;N20</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.97s)">
<path fill="none" stroke="#000000" d="M1294.5866,-1304.4935C1297.588,-1303.9539 1300.5725,-1303.4543 1303.5312,-1303 1391.0833,-1289.5571 2016.5628,-1313.2026 2100.5312,-1285 2116.7361,-1279.5572 2132.4679,-1269.636 2145.6895,-1259.4908"/>
<polygon fill="#000000" stroke="#000000" points="2147.9542,-1262.1613 2153.5793,-1253.183 2143.583,-1256.6939 2147.9542,-1262.1613"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.97s)">
<text text-anchor="middle" x="2143.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.97s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.deferproc (0.84s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2368.8226,-1248.5 2266.2398,-1248.5 2266.2398,-1204.5 2368.8226,-1204.5 2368.8226,-1248.5"/>
<text text-anchor="middle" x="2317.5312" y="-1234.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="2317.5312" y="-1222.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.16s(0.77%)</text>
<text text-anchor="middle" x="2317.5312" y="-1210.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.84s(4.04%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N21 -->
<g id="edge20" class="edge">
<title>N1&#45;&gt;N21</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.84s)">
<path fill="none" stroke="#000000" d="M1294.5856,-1304.4868C1297.5873,-1303.9492 1300.5722,-1303.4518 1303.5312,-1303 1492.4939,-1274.1462 1975.282,-1318.1916 2163.5312,-1285 2197.9462,-1278.932 2234.5918,-1265.3296 2263.4986,-1252.7673"/>
<polygon fill="#000000" stroke="#000000" points="2265.2672,-1255.8118 2272.9907,-1248.5594 2262.4302,-1249.4125 2265.2672,-1255.8118"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.84s)">
<text text-anchor="middle" x="2232.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.84s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="main.(*CodeQuotation).nextWord (0.75s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3268.0498,-1247.5 3023.0126,-1247.5 3023.0126,-1205.5 3268.0498,-1205.5 3268.0498,-1247.5"/>
<text text-anchor="middle" x="3145.5312" y="-1229.9" font-family="Times,serif" font-size="17.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="3145.5312" y="-1212.9" font-family="Times,serif" font-size="17.00" fill="#000000">0.75s(3.61%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N23 -->
<g id="edge22" class="edge">
<title>N1&#45;&gt;N23</title>
<g id="a_edge22"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.75s)">
<path fill="none" stroke="#000000" d="M1294.5794,-1304.4456C1297.583,-1303.9203 1300.5699,-1303.4367 1303.5312,-1303 1488.4311,-1275.7332 2801.6718,-1318.5734 2985.5312,-1285 3021.8928,-1278.3602 3060.8837,-1264.2615 3091.271,-1251.5688"/>
<polygon fill="#000000" stroke="#000000" points="3092.9873,-1254.6424 3100.8204,-1247.5085 3090.2482,-1248.2005 3092.9873,-1254.6424"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.75s)">
<text text-anchor="middle" x="3051.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.75s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1113.1722,-929 935.8902,-929 935.8902,-891 1113.1722,-891 1113.1722,-929"/>
<text text-anchor="middle" x="1024.5312" y="-917" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="1024.5312" y="-907" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="1024.5312" y="-897" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.41s(1.97%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N38 -->
<g id="edge41" class="edge">
<title>N1&#45;&gt;N38</title>
<g id="a_edge41"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.41s)">
<path fill="none" stroke="#000000" d="M1291.1866,-1302.9902C1345.6827,-1284.3857 1398.9077,-1263.9847 1406.5312,-1253 1419.9615,-1233.6482 1422.2768,-1217.5197 1406.5312,-1200 1389.073,-1180.5749 956.5411,-1169.4251 939.083,-1150 882.7919,-1087.3667 957.5011,-985.1407 999.4855,-936.8629"/>
<polygon fill="#000000" stroke="#000000" points="1002.1571,-939.1253 1006.1649,-929.3177 996.9158,-934.4854 1002.1571,-939.1253"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.41s)">
<text text-anchor="middle" x="956.2553" y="-1113.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="main.(*machine).hasPrefixWord (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2723.7253,-1247 2565.3371,-1247 2565.3371,-1206 2723.7253,-1206 2723.7253,-1247"/>
<text text-anchor="middle" x="2644.5312" y="-1234.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="2644.5312" y="-1223.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.09s(0.43%)</text>
<text text-anchor="middle" x="2644.5312" y="-1212.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.39s(1.88%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N40 -->
<g id="edge43" class="edge">
<title>N1&#45;&gt;N40</title>
<g id="a_edge43"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.39s)">
<path fill="none" stroke="#000000" d="M1294.5822,-1304.4645C1297.585,-1303.9336 1300.5709,-1303.4436 1303.5312,-1303 1560.4703,-1264.4932 2216.5394,-1329.3697 2472.5312,-1285 2512.1309,-1278.1364 2554.9222,-1263.6122 2587.9173,-1250.7539"/>
<polygon fill="#000000" stroke="#000000" points="2589.38,-1253.9391 2597.3894,-1247.0037 2586.8032,-1247.4306 2589.38,-1253.9391"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.39s)">
<text text-anchor="middle" x="2542.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="main.wordIsWhitespace (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2546.632,-1247 2424.4305,-1247 2424.4305,-1206 2546.632,-1206 2546.632,-1247"/>
<text text-anchor="middle" x="2485.5312" y="-1234.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="2485.5312" y="-1223.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.08s(0.38%)</text>
<text text-anchor="middle" x="2485.5312" y="-1212.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.32s(1.54%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N49 -->
<g id="edge50" class="edge">
<title>N1&#45;&gt;N49</title>
<g id="a_edge50"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.32s)">
<path fill="none" stroke="#000000" d="M1294.5827,-1304.468C1297.5853,-1303.936 1300.5711,-1303.4449 1303.5312,-1303 1364.3561,-1293.8575 2352.5307,-1305.474 2410.5312,-1285 2428.6248,-1278.613 2445.7445,-1265.9722 2459.0469,-1254.0703"/>
<polygon fill="#000000" stroke="#000000" points="2461.488,-1256.5797 2466.4165,-1247.201 2456.715,-1251.4592 2461.488,-1256.5797"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.32s)">
<text text-anchor="middle" x="2452.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.ifaceeq (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2218.6568,-1033.5 2118.4056,-1033.5 2118.4056,-986.5 2218.6568,-986.5 2218.6568,-1033.5"/>
<text text-anchor="middle" x="2168.5312" y="-1019.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="2168.5312" y="-1006.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.18s(0.87%)</text>
<text text-anchor="middle" x="2168.5312" y="-993.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.20s(0.96%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N62 -->
<g id="edge82" class="edge">
<title>N1&#45;&gt;N62</title>
<g id="a_edge82"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.13s)">
<path fill="none" stroke="#000000" d="M1294.5905,-1304.5187C1297.5908,-1303.9715 1300.574,-1303.4635 1303.5312,-1303 1577.6331,-1260.0356 1652.3091,-1320.0793 1927.5312,-1285 1990.8459,-1276.93 2017.8893,-1293.1193 2067.5312,-1253 2101.5408,-1225.5142 2141.1618,-1103.2627 2158.9861,-1043.3373"/>
<polygon fill="#000000" stroke="#000000" points="2162.388,-1044.1747 2161.8554,-1033.5932 2155.6731,-1042.1973 2162.388,-1044.1747"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.13s)">
<text text-anchor="middle" x="2132.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.eqstring (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3387.0985,-1244.5 3285.9639,-1244.5 3285.9639,-1208.5 3387.0985,-1208.5 3387.0985,-1244.5"/>
<text text-anchor="middle" x="3336.5312" y="-1229.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="3336.5312" y="-1216.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.18s(0.87%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N64 -->
<g id="edge69" class="edge">
<title>N1&#45;&gt;N64</title>
<g id="a_edge69"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.18s)">
<path fill="none" stroke="#000000" d="M1294.5791,-1304.4435C1297.5828,-1303.9189 1300.5698,-1303.4359 1303.5312,-1303 1497.8914,-1274.3898 2875.739,-1301.1195 3071.5312,-1285 3163.8724,-1277.3976 3188.697,-1279.3283 3277.5312,-1253 3281.888,-1251.7087 3286.3418,-1250.1635 3290.753,-1248.4768"/>
<polygon fill="#000000" stroke="#000000" points="3292.341,-1251.6096 3300.2876,-1244.6023 3289.7056,-1245.1246 3292.341,-1251.6096"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.18s)">
<text text-anchor="middle" x="3220.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2935.336,-1247 2741.7264,-1247 2741.7264,-1206 2935.336,-1206 2935.336,-1247"/>
<text text-anchor="middle" x="2838.5312" y="-1234.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2838.5312" y="-1223.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.08s(0.38%)</text>
<text text-anchor="middle" x="2838.5312" y="-1212.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.16s(0.77%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N68 -->
<g id="edge73" class="edge">
<title>N1&#45;&gt;N68</title>
<g id="a_edge73"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.16s)">
<path fill="none" stroke="#000000" d="M1294.5815,-1304.4601C1297.5845,-1303.9305 1300.5707,-1303.442 1303.5312,-1303 1580.2701,-1261.6816 2284.1277,-1312.9833 2562.5312,-1285 2627.3367,-1278.4862 2699.285,-1262.9556 2753.4708,-1249.5329"/>
<polygon fill="#000000" stroke="#000000" points="2754.5251,-1252.8771 2763.376,-1247.0538 2752.8255,-1246.0866 2754.5251,-1252.8771"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.16s)">
<text text-anchor="middle" x="2670.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge1" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge1"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (19.54s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1165.5312,-1247.0158C1165.5312,-1259.675 1165.5312,-1276.5082 1165.5312,-1292.5399"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1161.1563,-1292.9073 1165.5312,-1302.9073 1169.9063,-1292.9074 1161.1563,-1292.9073"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (19.54s)">
<text text-anchor="middle" x="1185.7553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 19.54s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.newobject (3.83s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1198.1377,-738 1084.9247,-738 1084.9247,-691 1198.1377,-691 1198.1377,-738"/>
<text text-anchor="middle" x="1141.5312" y="-723.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="1141.5312" y="-710.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.19s(0.91%)</text>
<text text-anchor="middle" x="1141.5312" y="-697.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 3.83s(18.43%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge70" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge70"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.18s)">
<path fill="none" stroke="#000000" d="M1090.7169,-1205.9876C1080.6252,-1203.7003 1070.3635,-1201.617 1060.5312,-1200 1035.4559,-1195.8761 851.5882,-1198.8109 832.5312,-1182 759.357,-1117.4503 798.0119,-1064.0697 788.083,-967 787.4498,-960.8101 783.803,-957.5165 788.083,-953 813.6809,-925.9874 1095.7964,-960.8879 1122.5312,-935 1172.396,-886.7149 1161.3464,-796.775 1150.5219,-748.0133"/>
<polygon fill="#000000" stroke="#000000" points="1153.9264,-747.2008 1148.2375,-738.2629 1147.1109,-748.7977 1153.9264,-747.2008"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.18s)">
<text text-anchor="middle" x="805.2553" y="-955.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.assertI2T (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="762.4229,-832 668.6395,-832 668.6395,-791 762.4229,-791 762.4229,-832"/>
<text text-anchor="middle" x="715.5312" y="-819.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="715.5312" y="-808.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.08s(0.38%)</text>
<text text-anchor="middle" x="715.5312" y="-797.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.25s(1.20%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N54 -->
<g id="edge112" class="edge">
<title>N2&#45;&gt;N54</title>
<g id="a_edge112"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1091.0194,-1205.9478C1080.8331,-1203.6516 1070.4653,-1201.5766 1060.5312,-1200 1031.2742,-1195.3568 817.4263,-1200.7975 794.5312,-1182 756.2848,-1150.5985 746.3075,-1015.5105 736.5312,-967 727.8898,-924.1207 721.827,-873.8564 718.5077,-842.3401"/>
<polygon fill="#000000" stroke="#000000" points="721.951,-841.6075 717.4483,-832.0171 714.9875,-842.3222 721.951,-841.6075"/>
</a>
</g>
<g id="a_edge112&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="764.2553" y="-1005.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="runtime.goexit (19.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1206.3011,-1551 1124.7613,-1551 1124.7613,-1515 1206.3011,-1515 1206.3011,-1551"/>
<text text-anchor="middle" x="1165.5312" y="-1534.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="1165.5312" y="-1526.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 19.63s(94.47%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N1 -->
<g id="edge2" class="edge">
<title>N3&#45;&gt;N1</title>
<g id="a_edge2"><a xlink:title="runtime.goexit ... main.(*machine).execute (19.34s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M1165.5312,-1514.782C1165.5312,-1487.0982 1165.5312,-1433.4317 1165.5312,-1393.4151"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1169.9063,-1393.3013 1165.5312,-1383.3014 1161.1563,-1393.3014 1169.9063,-1393.3013"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (19.34s)">
<text text-anchor="middle" x="1185.7553" y="-1403.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 19.34s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.gcDrain (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1386.3011,-1361 1312.7613,-1361 1312.7613,-1325 1386.3011,-1325 1386.3011,-1361"/>
<text text-anchor="middle" x="1349.5312" y="-1344.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcDrain</text>
<text text-anchor="middle" x="1349.5312" y="-1336.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.18s(0.87%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N65 -->
<g id="edge75" class="edge">
<title>N3&#45;&gt;N65</title>
<g id="a_edge75"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.16s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1183.1739,-1514.782C1216.1457,-1480.735 1287.176,-1407.3885 1324.869,-1368.4664"/>
<polygon fill="#000000" stroke="#000000" points="1327.4994,-1370.7813 1331.9419,-1361.1628 1322.4709,-1365.9116 1327.4994,-1370.7813"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.16s)">
<text text-anchor="middle" x="1306.2553" y="-1403.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (18.08s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M760.9122,-1247.1394C772.41,-1260.1385 788.9292,-1276.092 807.083,-1285 845.219,-1303.7133 942.5458,-1318.7981 1026.1717,-1328.8884"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1025.85,-1333.2559 1036.2972,-1330.0941 1026.8847,-1324.5673 1025.85,-1333.2559"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (18.08s)">
<text text-anchor="middle" x="827.7553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 18.08s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N6 -->
<g id="edge74" class="edge">
<title>N4&#45;&gt;N6</title>
<g id="a_edge74"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.16s)">
<path fill="none" stroke="#000000" d="M658.8799,-1223.8236C525.6548,-1218.9544 275.1917,-1206.7775 189.5312,-1182 160.1217,-1173.4932 149.8651,-1171.9579 128.5312,-1150 123.8997,-1145.2331 25.632,-941.3056 23.5312,-935 11.8678,-899.9922 -13.4258,-881.065 10.5312,-853 93.0783,-756.2982 951.2231,-784.9575 1010.5312,-770 1024.0221,-766.5976 1025.8461,-761.7156 1038.5312,-756 1050.3669,-750.6672 1063.1023,-745.2685 1075.4454,-740.2077"/>
<polygon fill="#000000" stroke="#000000" points="1076.8407,-743.4187 1084.7863,-736.4102 1074.2044,-736.9341 1076.8407,-743.4187"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.16s)">
<text text-anchor="middle" x="55.2553" y="-955.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.assertI2T2 (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="528.4236,-832 428.6388,-832 428.6388,-791 528.4236,-791 528.4236,-832"/>
<text text-anchor="middle" x="478.5312" y="-819.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T2</text>
<text text-anchor="middle" x="478.5312" y="-808.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.09s(0.43%)</text>
<text text-anchor="middle" x="478.5312" y="-797.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.14s(0.67%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N71 -->
<g id="edge110" class="edge">
<title>N4&#45;&gt;N71</title>
<g id="a_edge110"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.assertI2T2 (0.03s)">
<path fill="none" stroke="#000000" d="M658.9277,-1223.3025C488.306,-1216.5588 120.3594,-1200.0103 99.5312,-1182 55.1531,-1143.626 101.259,-1103.579 71.5312,-1053 65.3962,-1042.5618 57.5032,-1045.2652 51.083,-1035 26.6373,-995.9147 29.7096,-980.6846 23.5312,-935 18.6469,-898.8843 -1.0407,-879.9151 23.5312,-853 26.8311,-849.3854 295.712,-826.659 418.5331,-816.4524"/>
<polygon fill="#000000" stroke="#000000" points="418.8599,-819.9374 428.536,-815.6219 418.2807,-812.9614 418.8599,-819.9374"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.assertI2T2 (0.03s)">
<text text-anchor="middle" x="68.2553" y="-1005.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.mallocgc (4.98s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1230.1157,-641 1052.9467,-641 1052.9467,-564 1230.1157,-564 1230.1157,-641"/>
<text text-anchor="middle" x="1141.5312" y="-618.6" font-family="Times,serif" font-size="23.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="1141.5312" y="-595.6" font-family="Times,serif" font-size="23.00" fill="#000000">2.19s(10.54%)</text>
<text text-anchor="middle" x="1141.5312" y="-572.6" font-family="Times,serif" font-size="23.00" fill="#000000">of 4.98s(23.97%)</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.heapBitsSetType (1.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1245.8601,-514 1037.2023,-514 1037.2023,-468 1245.8601,-468 1245.8601,-514"/>
<text text-anchor="middle" x="1141.5312" y="-494.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1141.5312" y="-475.8" font-family="Times,serif" font-size="19.00" fill="#000000">1.25s(6.02%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N17 -->
<g id="edge16" class="edge">
<title>N5&#45;&gt;N17</title>
<g id="a_edge16"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (1.25s)">
<path fill="none" stroke="#000000" d="M1141.5312,-563.8156C1141.5312,-550.9726 1141.5312,-536.7924 1141.5312,-524.3841"/>
<polygon fill="#000000" stroke="#000000" points="1145.0313,-524.0141 1141.5312,-514.0141 1138.0313,-524.0142 1145.0313,-524.0141"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (1.25s)">
<text text-anchor="middle" x="1158.2553" y="-534.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.25s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.(*mcache).nextFree (0.58s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1661.4843,-509 1543.5781,-509 1543.5781,-473 1661.4843,-473 1661.4843,-509"/>
<text text-anchor="middle" x="1602.5312" y="-497.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="1602.5312" y="-488.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.048%)</text>
<text text-anchor="middle" x="1602.5312" y="-479.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.58s(2.79%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N31 -->
<g id="edge32" class="edge">
<title>N5&#45;&gt;N31</title>
<g id="a_edge32"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.58s)">
<path fill="none" stroke="#000000" d="M1230.1438,-581.0677C1318.5566,-559.6837 1452.5514,-527.2749 1533.3979,-507.721"/>
<polygon fill="#000000" stroke="#000000" points="1534.575,-511.0373 1543.4719,-505.2844 1532.9293,-504.2334 1534.575,-511.0373"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.58s)">
<text text-anchor="middle" x="1443.2553" y="-534.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.memclr (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1369.3351,-509 1263.7273,-509 1263.7273,-473 1369.3351,-473 1369.3351,-509"/>
<text text-anchor="middle" x="1316.5312" y="-493.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="1316.5312" y="-479.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.35s(1.68%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N46 -->
<g id="edge104" class="edge">
<title>N5&#45;&gt;N46</title>
<g id="a_edge104"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.05s)">
<path fill="none" stroke="#000000" d="M1202.2466,-563.8156C1228.0431,-547.3796 1257.2771,-528.7534 1279.7201,-514.4539"/>
<polygon fill="#000000" stroke="#000000" points="1281.7217,-517.3287 1288.2747,-509.0034 1277.9603,-511.4251 1281.7217,-517.3287"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.05s)">
<text text-anchor="middle" x="1267.2553" y="-534.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.mProf_Malloc (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1018.7674,-509 920.295,-509 920.295,-473 1018.7674,-473 1018.7674,-509"/>
<text text-anchor="middle" x="969.5312" y="-497.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.mProf_Malloc</text>
<text text-anchor="middle" x="969.5312" y="-488.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.048%)</text>
<text text-anchor="middle" x="969.5312" y="-479.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.26s(1.25%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N53 -->
<g id="edge59" class="edge">
<title>N5&#45;&gt;N53</title>
<g id="a_edge59"><a xlink:title="runtime.mallocgc ... runtime.mProf_Malloc (0.26s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1081.8567,-563.8156C1056.5024,-547.3796 1027.7696,-528.7534 1005.7113,-514.4539"/>
<polygon fill="#000000" stroke="#000000" points="1007.5983,-511.5062 997.3033,-509.0034 1003.7906,-517.38 1007.5983,-511.5062"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.mallocgc ... runtime.mProf_Malloc (0.26s)">
<text text-anchor="middle" x="1067.2553" y="-534.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N5 -->
<g id="edge4" class="edge">
<title>N6&#45;&gt;N5</title>
<g id="a_edge4"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.64s)">
<path fill="none" stroke="#000000" d="M1141.5312,-690.7477C1141.5312,-679.2858 1141.5312,-665.0899 1141.5312,-651.4594"/>
<polygon fill="#000000" stroke="#000000" points="1145.0313,-651.2008 1141.5312,-641.2009 1138.0313,-651.2009 1145.0313,-651.2008"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.64s)">
<text text-anchor="middle" x="1158.2553" y="-661.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.64s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (2.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1704.9609,-1139.5 1470.1015,-1139.5 1470.1015,-1095.5 1704.9609,-1095.5 1704.9609,-1139.5"/>
<text text-anchor="middle" x="1587.5312" y="-1125.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="1587.5312" y="-1113.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.11s(0.53%)</text>
<text text-anchor="middle" x="1587.5312" y="-1101.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 2.45s(11.79%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N9 -->
<g id="edge5" class="edge">
<title>N7&#45;&gt;N9</title>
<g id="a_edge5"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.45s)">
<path fill="none" stroke="#000000" d="M1513.5307,-1207.4618C1520.6071,-1195.7218 1530.2847,-1180.561 1540.083,-1168 1545.5607,-1160.9777 1551.8383,-1153.7937 1557.995,-1147.1288"/>
<polygon fill="#000000" stroke="#000000" points="1560.7961,-1149.26 1565.1117,-1139.584 1555.704,-1144.4568 1560.7961,-1149.26"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.45s)">
<text text-anchor="middle" x="1556.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.45s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1452.1722,-1136.5 1274.8902,-1136.5 1274.8902,-1098.5 1452.1722,-1098.5 1452.1722,-1136.5"/>
<text text-anchor="middle" x="1363.5312" y="-1124.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="1363.5312" y="-1114.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.096%)</text>
<text text-anchor="middle" x="1363.5312" y="-1104.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.23s(1.11%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N58 -->
<g id="edge63" class="edge">
<title>N7&#45;&gt;N58</title>
<g id="a_edge63"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.23s)">
<path fill="none" stroke="#000000" d="M1478.0008,-1207.2639C1455.1735,-1189.3634 1421.0036,-1162.5683 1395.9383,-1142.9127"/>
<polygon fill="#000000" stroke="#000000" points="1397.8453,-1139.9604 1387.8164,-1136.5438 1393.5258,-1145.4687 1397.8453,-1139.9604"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.23s)">
<text text-anchor="middle" x="1461.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="main.(*machine).loadBooleanWords.func2 (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1187.454,-1138 981.6084,-1138 981.6084,-1097 1187.454,-1097 1187.454,-1138"/>
<text text-anchor="middle" x="1084.5312" y="-1125.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadBooleanWords.func2</text>
<text text-anchor="middle" x="1084.5312" y="-1114.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.34%)</text>
<text text-anchor="middle" x="1084.5312" y="-1103.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.17s(0.82%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N66 -->
<g id="edge71" class="edge">
<title>N7&#45;&gt;N66</title>
<g id="a_edge71"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.17s)">
<path fill="none" stroke="#000000" d="M1460.242,-1207.4159C1453.3981,-1204.7046 1446.3271,-1202.1217 1439.5312,-1200 1336.3559,-1167.7877 1306.5454,-1175.5885 1201.5312,-1150 1189.9299,-1147.1731 1177.7348,-1144.0062 1165.7765,-1140.7881"/>
<polygon fill="#000000" stroke="#000000" points="1166.3733,-1137.3234 1155.8055,-1138.0792 1164.538,-1144.0786 1166.3733,-1137.3234"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.17s)">
<text text-anchor="middle" x="1387.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.systemstack (2.81s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2349.7317,-418 2219.3307,-418 2219.3307,-368 2349.7317,-368 2349.7317,-418"/>
<text text-anchor="middle" x="2284.5312" y="-402.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2284.5312" y="-388.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.32s(1.54%)</text>
<text text-anchor="middle" x="2284.5312" y="-374.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 2.81s(13.52%)</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.mach_semaphore_signal (0.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2196.2149,-317 1954.8475,-317 1954.8475,-275 2196.2149,-275 2196.2149,-317"/>
<text text-anchor="middle" x="2075.5312" y="-299.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2075.5312" y="-282.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.77s(3.71%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N22 -->
<g id="edge26" class="edge">
<title>N8&#45;&gt;N22</title>
<g id="a_edge26"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.67s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2230.4367,-367.8939C2199.6363,-353.599 2161.1537,-335.7387 2130.2503,-321.396"/>
<polygon fill="#000000" stroke="#000000" points="2131.464,-318.1007 2120.9198,-317.0655 2128.5171,-324.4502 2131.464,-318.1007"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.67s)">
<text text-anchor="middle" x="2202.2553" y="-338.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.67s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.deferproc.func1 (0.61s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2504.645,-318 2372.4174,-318 2372.4174,-274 2504.645,-274 2504.645,-318"/>
<text text-anchor="middle" x="2438.5312" y="-304.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2438.5312" y="-292.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.13s(0.63%)</text>
<text text-anchor="middle" x="2438.5312" y="-280.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.61s(2.94%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N30 -->
<g id="edge31" class="edge">
<title>N8&#45;&gt;N30</title>
<g id="a_edge31"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.61s)">
<path fill="none" stroke="#000000" d="M2324.5909,-367.7676C2346.1482,-354.1893 2372.768,-337.4223 2394.8553,-323.5102"/>
<polygon fill="#000000" stroke="#000000" points="2396.793,-326.4262 2403.389,-318.135 2393.0622,-320.5032 2396.793,-326.4262"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.61s)">
<text text-anchor="middle" x="2387.2553" y="-338.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.61s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.deferreturn.func1 (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2354.4746,-318 2214.5878,-318 2214.5878,-274 2354.4746,-274 2354.4746,-318"/>
<text text-anchor="middle" x="2284.5312" y="-304.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="2284.5312" y="-292.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.12s(0.58%)</text>
<text text-anchor="middle" x="2284.5312" y="-280.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.44s(2.12%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N34 -->
<g id="edge37" class="edge">
<title>N8&#45;&gt;N34</title>
<g id="a_edge37"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.44s)">
<path fill="none" stroke="#000000" d="M2284.5312,-367.7676C2284.5312,-355.7514 2284.5312,-341.238 2284.5312,-328.4158"/>
<polygon fill="#000000" stroke="#000000" points="2288.0313,-328.135 2284.5312,-318.135 2281.0313,-328.1351 2288.0313,-328.135"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.44s)">
<text text-anchor="middle" x="2301.2553" y="-338.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2663.7264,-314 2523.336,-314 2523.336,-278 2663.7264,-278 2663.7264,-314"/>
<text text-anchor="middle" x="2593.5312" y="-302.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="2593.5312" y="-293.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.048%)</text>
<text text-anchor="middle" x="2593.5312" y="-284.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.43s(2.07%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N35 -->
<g id="edge38" class="edge">
<title>N8&#45;&gt;N35</title>
<g id="a_edge38"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.43s)">
<path fill="none" stroke="#000000" d="M2350.0622,-372.4288C2401.9052,-356.1544 2474.0224,-333.5157 2526.3017,-317.1044"/>
<polygon fill="#000000" stroke="#000000" points="2527.6591,-320.3468 2536.1518,-314.0123 2525.5625,-313.6681 2527.6591,-320.3468"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.43s)">
<text text-anchor="middle" x="2474.2553" y="-338.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.semasleep.func1 (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1936.5039,-314 1840.5585,-314 1840.5585,-278 1936.5039,-278 1936.5039,-314"/>
<text text-anchor="middle" x="1888.5312" y="-297.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep.func1</text>
<text text-anchor="middle" x="1888.5312" y="-289.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(0.58%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N78 -->
<g id="edge90" class="edge">
<title>N8&#45;&gt;N78</title>
<g id="a_edge90"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.12s)">
<path fill="none" stroke="#000000" d="M2219.1099,-381.5583C2150.2808,-368.8182 2039.1619,-346.2509 1945.5312,-318 1944.7886,-317.7759 1944.0419,-317.5467 1943.292,-317.3128"/>
<polygon fill="#000000" stroke="#000000" points="1944.0218,-313.8677 1933.4285,-314.0479 1941.822,-320.5131 1944.0218,-313.8677"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.12s)">
<text text-anchor="middle" x="2081.2553" y="-338.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N1 -->
<g id="edge6" class="edge">
<title>N9&#45;&gt;N1</title>
<g id="a_edge6"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.12s)">
<path fill="none" stroke="#000000" d="M1588.7498,-1139.5656C1589.1978,-1168.514 1585.8933,-1219.5512 1560.5312,-1253 1541.5565,-1278.0247 1527.7023,-1276.2834 1497.5312,-1285 1417.3468,-1308.1657 1390.5435,-1288.4152 1304.5601,-1302.9871"/>
<polygon fill="#000000" stroke="#000000" points="1303.8561,-1299.5575 1294.6348,-1304.7747 1305.0969,-1306.4467 1303.8561,-1299.5575"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.12s)">
<text text-anchor="middle" x="1599.2553" y="-1222.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.12s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N6 -->
<g id="edge68" class="edge">
<title>N9&#45;&gt;N6</title>
<g id="a_edge68"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.19s)">
<path fill="none" stroke="#000000" d="M1560.3965,-1095.3481C1539.277,-1075.4662 1513.5312,-1044.2129 1513.5312,-1010 1513.5312,-1010 1513.5312,-1010 1513.5312,-811.5 1513.5312,-749.1867 1315.6178,-726.1697 1208.5073,-718.2757"/>
<polygon fill="#000000" stroke="#000000" points="1208.6584,-714.7777 1198.4349,-717.5582 1208.1609,-721.76 1208.6584,-714.7777"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.19s)">
<text text-anchor="middle" x="1530.2553" y="-905.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N18 -->
<g id="edge83" class="edge">
<title>N10&#45;&gt;N18</title>
<g id="a_edge83"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.13s)">
<path fill="none" stroke="#000000" d="M2858.3816,-1093.5087C2767.7059,-1074.2826 2642.0465,-1047.6388 2557.2527,-1029.6599"/>
<polygon fill="#000000" stroke="#000000" points="2557.8862,-1026.2165 2547.3777,-1027.5661 2556.4342,-1033.0642 2557.8862,-1026.2165"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.13s)">
<text text-anchor="middle" x="2749.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.aeshashbody (0.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3047.0554,-1030 2896.007,-1030 2896.007,-990 3047.0554,-990 3047.0554,-1030"/>
<text text-anchor="middle" x="2971.5312" y="-1013.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="2971.5312" y="-997.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.63s(3.03%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N27 -->
<g id="edge28" class="edge">
<title>N10&#45;&gt;N27</title>
<g id="a_edge28"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.62s)">
<path fill="none" stroke="#000000" d="M2971.5312,-1084.9547C2971.5312,-1070.7723 2971.5312,-1054.2442 2971.5312,-1040.3229"/>
<polygon fill="#000000" stroke="#000000" points="2975.0313,-1040.2673 2971.5312,-1030.2673 2968.0313,-1040.2673 2975.0313,-1040.2673"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.62s)">
<text text-anchor="middle" x="2988.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.62s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N6 -->
<g id="edge14" class="edge">
<title>N11&#45;&gt;N6</title>
<g id="a_edge14"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.30s)">
<path fill="none" stroke="#000000" d="M650.4408,-790.2451C653.4883,-789.3913 656.5328,-788.6315 659.5312,-788 824.545,-753.244 876.0444,-815.1173 1038.5312,-770 1059.1982,-764.2614 1080.34,-753.8144 1098.0486,-743.5194"/>
<polygon fill="#000000" stroke="#000000" points="1100.1932,-746.3149 1106.9755,-738.1754 1096.5976,-740.3088 1100.1932,-746.3149"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.30s)">
<text text-anchor="middle" x="1091.2553" y="-758.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.30s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.typedmemmove (0.55s)">
<polygon fill="#f8f8f8" stroke="#000000" points="764.4738,-738 620.5886,-738 620.5886,-691 764.4738,-691 764.4738,-738"/>
<text text-anchor="middle" x="692.5312" y="-723.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="692.5312" y="-710.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.21s(1.01%)</text>
<text text-anchor="middle" x="692.5312" y="-697.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.55s(2.65%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N32 -->
<g id="edge53" class="edge">
<title>N11&#45;&gt;N32</title>
<g id="a_edge53"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.29s)">
<path fill="none" stroke="#000000" d="M621.7672,-787.5225C634.061,-774.8363 649.2985,-759.1124 662.4817,-745.5086"/>
<polygon fill="#000000" stroke="#000000" points="665.1168,-747.8187 669.5625,-738.2017 660.0899,-742.9473 665.1168,-747.8187"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.29s)">
<text text-anchor="middle" x="668.2553" y="-758.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N11 -->
<g id="edge100" class="edge">
<title>N12&#45;&gt;N11</title>
<g id="a_edge100"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.05s)">
<path fill="none" stroke="#000000" d="M857.9642,-1202.9636C851.7518,-1201.8237 845.5657,-1200.8164 839.5312,-1200 595.8432,-1167.032 529.6464,-1218.9554 286.5312,-1182 233.6573,-1173.9628 207.5242,-1188.6233 170.5312,-1150 119.159,-1096.3638 121.8862,-1055.8749 144.083,-985 160.2551,-933.3621 168.8439,-915.5132 213.5312,-885 331.1577,-804.6828 392.8924,-865.5024 536.5501,-834.847"/>
<polygon fill="#000000" stroke="#000000" points="537.5979,-838.1987 546.584,-832.5862 536.0592,-831.3699 537.5979,-838.1987"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.05s)">
<text text-anchor="middle" x="161.2553" y="-1005.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N18 -->
<g id="edge109" class="edge">
<title>N12&#45;&gt;N18</title>
<g id="a_edge109"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.03s)">
<path fill="none" stroke="#000000" d="M1045.0504,-1202.9644C1050.2752,-1201.9058 1055.4607,-1200.9085 1060.5312,-1200 1093.3603,-1194.1181 1184.707,-1204.2734 1209.5312,-1182 1242.4751,-1152.4411 1197.6993,-1112.871 1232.083,-1085 1251.5391,-1069.2291 2108.5995,-1069.3819 2133.5312,-1067 2214.5555,-1059.2591 2305.6287,-1043.0136 2371.7039,-1029.8392"/>
<polygon fill="#000000" stroke="#000000" points="2372.5624,-1033.2367 2381.6774,-1027.8361 2371.1839,-1026.3738 2372.5624,-1033.2367"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.03s)">
<text text-anchor="middle" x="1249.2553" y="-1113.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="main.(*machine).executeSubtract (0.74s)">
<polygon fill="#f8f8f8" stroke="#000000" points="742.3545,-1138 578.7079,-1138 578.7079,-1097 742.3545,-1097 742.3545,-1138"/>
<text text-anchor="middle" x="660.5312" y="-1125.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="660.5312" y="-1114.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.34%)</text>
<text text-anchor="middle" x="660.5312" y="-1103.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.74s(3.56%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N25 -->
<g id="edge24" class="edge">
<title>N12&#45;&gt;N25</title>
<g id="a_edge24"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.74s)">
<path fill="none" stroke="#000000" d="M853.9441,-1202.9681C849.0781,-1201.9283 844.2528,-1200.932 839.5312,-1200 788.1531,-1189.8586 769.6056,-1206.0458 723.083,-1182 706.6728,-1173.5182 692.0597,-1159.0815 681.0926,-1146.0141"/>
<polygon fill="#000000" stroke="#000000" points="683.7429,-1143.7246 674.7517,-1138.1203 678.2855,-1148.1084 683.7429,-1143.7246"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.74s)">
<text text-anchor="middle" x="740.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.74s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.assertI2I (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="421.1705,-1032 323.8919,-1032 323.8919,-988 421.1705,-988 421.1705,-1032"/>
<text text-anchor="middle" x="372.5312" y="-1018.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="372.5312" y="-1006.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.48%)</text>
<text text-anchor="middle" x="372.5312" y="-994.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.37s(1.78%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N41 -->
<g id="edge108" class="edge">
<title>N12&#45;&gt;N41</title>
<g id="a_edge108"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.assertI2I (0.03s)">
<path fill="none" stroke="#000000" d="M856.4164,-1202.9984C850.721,-1201.8935 845.0599,-1200.8806 839.5312,-1200 735.0522,-1183.3599 435.9302,-1229.4615 366.083,-1150 340.2819,-1120.6475 349.3949,-1073.0169 359.7674,-1041.5985"/>
<polygon fill="#000000" stroke="#000000" points="363.1232,-1042.6059 363.1368,-1032.011 356.5191,-1040.2849 363.1232,-1042.6059"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.assertI2I (0.03s)">
<text text-anchor="middle" x="383.2553" y="-1113.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="main.(*machine).executeLessThan (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="321.4741,-1135.5 179.5883,-1135.5 179.5883,-1099.5 321.4741,-1099.5 321.4741,-1135.5"/>
<text text-anchor="middle" x="250.5312" y="-1123.8" font-family="Times,serif" font-size="9.00" fill="#000000">main.(*machine).executeLessThan</text>
<text text-anchor="middle" x="250.5312" y="-1114.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.048%)</text>
<text text-anchor="middle" x="250.5312" y="-1105.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.35s(1.68%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N45 -->
<g id="edge46" class="edge">
<title>N12&#45;&gt;N45</title>
<g id="a_edge46"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeLessThan (0.35s)">
<path fill="none" stroke="#000000" d="M857.9628,-1202.9737C851.7508,-1201.8313 845.5651,-1200.8208 839.5312,-1200 781.2067,-1192.0665 363.5953,-1206.5176 310.083,-1182 292.5272,-1173.9565 277.7615,-1158.0751 267.3246,-1144.0846"/>
<polygon fill="#000000" stroke="#000000" points="270.0305,-1141.8492 261.3993,-1135.7049 264.315,-1145.8907 270.0305,-1141.8492"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeLessThan (0.35s)">
<text text-anchor="middle" x="327.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="main.(*machine).executeMultiply (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="560.5957,-1136.5 408.4667,-1136.5 408.4667,-1098.5 560.5957,-1098.5 560.5957,-1136.5"/>
<text text-anchor="middle" x="484.5312" y="-1124.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="484.5312" y="-1114.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.19%)</text>
<text text-anchor="middle" x="484.5312" y="-1104.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.23s(1.11%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N57 -->
<g id="edge62" class="edge">
<title>N12&#45;&gt;N57</title>
<g id="a_edge62"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.23s)">
<path fill="none" stroke="#000000" d="M855.4926,-1202.975C850.1069,-1201.8992 844.7586,-1200.8968 839.5312,-1200 763.1451,-1186.8952 741.8545,-1198.2865 666.083,-1182 621.8851,-1172.5 612.111,-1165.1876 569.5312,-1150 560.8981,-1146.9207 551.8125,-1143.568 542.9229,-1140.2238"/>
<polygon fill="#000000" stroke="#000000" points="543.9757,-1136.88 533.3843,-1136.6118 541.4967,-1143.4264 543.9757,-1136.88"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.23s)">
<text text-anchor="middle" x="683.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N5 -->
<g id="edge17" class="edge">
<title>N13&#45;&gt;N5</title>
<g id="a_edge17"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (1.10s)">
<path fill="none" stroke="#000000" d="M1279.5052,-1202.3714C1276.4939,-1201.4955 1273.4912,-1200.6966 1270.5312,-1200 1185.1486,-1179.9064 884.5312,-1205.2151 884.5312,-1117.5 884.5312,-1117.5 884.5312,-1117.5 884.5312,-714.5 884.5312,-678.459 970.5447,-646.6343 1043.051,-626.2097"/>
<polygon fill="#000000" stroke="#000000" points="1044.0245,-629.5719 1052.7265,-623.5282 1042.155,-622.8262 1044.0245,-629.5719"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (1.10s)">
<text text-anchor="middle" x="901.2553" y="-905.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.10s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.memmove (0.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="865.2546,-218 735.8078,-218 735.8078,-180 865.2546,-180 865.2546,-218"/>
<text text-anchor="middle" x="800.5312" y="-202" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="800.5312" y="-187" font-family="Times,serif" font-size="15.00" fill="#000000">0.48s(2.31%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N33 -->
<g id="edge99" class="edge">
<title>N13&#45;&gt;N33</title>
<g id="a_edge99"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.06s)">
<path fill="none" stroke="#000000" d="M1279.535,-1202.2392C1276.5158,-1201.3983 1273.5033,-1200.643 1270.5312,-1200 1126.9674,-1168.943 1082.0069,-1221.4936 940.5312,-1182 911.4219,-1173.874 899.9166,-1173.1859 880.5312,-1150 781.3733,-1031.4022 800.5312,-966.0889 800.5312,-811.5 800.5312,-811.5 800.5312,-811.5 800.5312,-296 800.5312,-273.3709 800.5312,-247.7722 800.5312,-228.5563"/>
<polygon fill="#000000" stroke="#000000" points="804.0313,-228.3242 800.5312,-218.3242 797.0313,-228.3243 804.0313,-228.3242"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.06s)">
<text text-anchor="middle" x="817.2553" y="-710.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N6 -->
<g id="edge13" class="edge">
<title>N14&#45;&gt;N6</title>
<g id="a_edge13"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.32s)">
<path fill="none" stroke="#000000" d="M1729.5312,-1204.3886C1729.5312,-1158.7255 1729.5312,-1050.684 1729.5312,-960 1729.5312,-960 1729.5312,-960 1729.5312,-811.5 1729.5312,-759.1921 1362.6025,-728.9952 1208.4592,-718.6175"/>
<polygon fill="#000000" stroke="#000000" points="1208.3883,-715.1052 1198.178,-717.9335 1207.9236,-722.0897 1208.3883,-715.1052"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.32s)">
<text text-anchor="middle" x="1746.2553" y="-955.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.32s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="strings.ContainsRune (0.99s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1988.1173,-1141 1860.9451,-1141 1860.9451,-1094 1988.1173,-1094 1988.1173,-1141"/>
<text text-anchor="middle" x="1924.5312" y="-1126.6" font-family="Times,serif" font-size="13.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="1924.5312" y="-1113.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.24s(1.15%)</text>
<text text-anchor="middle" x="1924.5312" y="-1100.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.99s(4.76%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N19 -->
<g id="edge35" class="edge">
<title>N15&#45;&gt;N19</title>
<g id="a_edge35"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.49s)">
<path fill="none" stroke="#000000" d="M1993.1278,-1204.4422C1980.6428,-1188.6182 1963.6315,-1167.0573 1949.6731,-1149.3659"/>
<polygon fill="#000000" stroke="#000000" points="1952.0412,-1146.7167 1943.0993,-1141.0339 1946.5457,-1151.0526 1952.0412,-1146.7167"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.49s)">
<text text-anchor="middle" x="1991.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.49s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="strconv.ParseInt (0.68s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2106.6568,-1141 2006.4056,-1141 2006.4056,-1094 2106.6568,-1094 2106.6568,-1141"/>
<text text-anchor="middle" x="2056.5312" y="-1126.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="2056.5312" y="-1113.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.18s(0.87%)</text>
<text text-anchor="middle" x="2056.5312" y="-1100.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.68s(3.27%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N26 -->
<g id="edge25" class="edge">
<title>N15&#45;&gt;N26</title>
<g id="a_edge25"><a xlink:title="main.tryParseInt ... strconv.ParseInt (0.68s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2019.84,-1204.4422C2026.3966,-1188.906 2035.287,-1167.8395 2042.6744,-1150.3347"/>
<polygon fill="#000000" stroke="#000000" points="2045.9359,-1151.608 2046.5994,-1141.0339 2039.4866,-1148.8863 2045.9359,-1151.608"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="main.tryParseInt ... strconv.ParseInt (0.68s)">
<text text-anchor="middle" x="2051.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.68s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N19 -->
<g id="edge34" class="edge">
<title>N16&#45;&gt;N19</title>
<g id="a_edge34"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.50s)">
<path fill="none" stroke="#000000" d="M1897.5378,-1204.4946C1900.594,-1193.5023 1904.4275,-1180.0167 1908.083,-1168 1909.7601,-1162.4865 1911.5988,-1156.6551 1913.42,-1150.9897"/>
<polygon fill="#000000" stroke="#000000" points="1916.8798,-1151.6678 1916.641,-1141.0757 1910.2223,-1149.5048 1916.8798,-1151.6678"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.50s)">
<text text-anchor="middle" x="1924.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="strconv.ParseFloat (0.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1842.6866,-1135.5 1760.3758,-1135.5 1760.3758,-1099.5 1842.6866,-1099.5 1842.6866,-1135.5"/>
<text text-anchor="middle" x="1801.5312" y="-1123.8" font-family="Times,serif" font-size="9.00" fill="#000000">strconv.ParseFloat</text>
<text text-anchor="middle" x="1801.5312" y="-1114.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.048%)</text>
<text text-anchor="middle" x="1801.5312" y="-1105.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.63s(3.03%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N28 -->
<g id="edge27" class="edge">
<title>N16&#45;&gt;N28</title>
<g id="a_edge27"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (0.63s)">
<path fill="none" stroke="#000000" d="M1873.3184,-1204.4422C1858.7322,-1186.7768 1838.2426,-1161.9615 1822.8851,-1143.362"/>
<polygon fill="#000000" stroke="#000000" points="1825.5061,-1141.0391 1816.4402,-1135.5565 1820.1083,-1145.4961 1825.5061,-1141.0391"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strconv.ParseFloat (0.63s)">
<text text-anchor="middle" x="1871.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.63s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="strings.IndexRune (0.75s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1981.7971,-1035 1863.2653,-1035 1863.2653,-985 1981.7971,-985 1981.7971,-1035"/>
<text text-anchor="middle" x="1922.5312" y="-1019.8" font-family="Times,serif" font-size="14.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="1922.5312" y="-1005.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.30s(1.44%)</text>
<text text-anchor="middle" x="1922.5312" y="-991.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.75s(3.61%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N24 -->
<g id="edge23" class="edge">
<title>N19&#45;&gt;N24</title>
<g id="a_edge23"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.75s)">
<path fill="none" stroke="#000000" d="M1924.0923,-1093.9087C1923.8263,-1079.6113 1923.482,-1061.1048 1923.1844,-1045.1111"/>
<polygon fill="#000000" stroke="#000000" points="1926.6824,-1044.9665 1922.9969,-1035.0334 1919.6837,-1045.0968 1926.6824,-1044.9665"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.75s)">
<text text-anchor="middle" x="1940.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.75s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N8 -->
<g id="edge36" class="edge">
<title>N20&#45;&gt;N8</title>
<g id="a_edge36"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.44s)">
<path fill="none" stroke="#000000" d="M2240.3595,-1199.7288C2247.8039,-1194.6017 2254.8051,-1188.7023 2260.5312,-1182 2280.3994,-1158.7446 2284.5312,-1148.0869 2284.5312,-1117.5 2284.5312,-1117.5 2284.5312,-1117.5 2284.5312,-491 2284.5312,-470.2809 2284.5312,-447.0979 2284.5312,-428.4835"/>
<polygon fill="#000000" stroke="#000000" points="2288.0313,-428.3814 2284.5312,-418.3815 2281.0313,-428.3815 2288.0313,-428.3814"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.44s)">
<text text-anchor="middle" x="2301.2553" y="-807.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N33 -->
<g id="edge106" class="edge">
<title>N20&#45;&gt;N33</title>
<g id="a_edge106"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M2193.7349,-1199.9351C2212.6291,-1155.3331 2245.0491,-1062.6483 2227.5312,-985 2168.0735,-721.4535 2179.3376,-602.4495 1966.5312,-436 1793.7649,-300.8684 1105.2712,-226.8431 875.5643,-205.5324"/>
<polygon fill="#000000" stroke="#000000" points="875.5805,-202.0192 865.3016,-204.5871 874.9384,-208.9897 875.5805,-202.0192"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="2190.2553" y="-710.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N8 -->
<g id="edge30" class="edge">
<title>N21&#45;&gt;N8</title>
<g id="a_edge30"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.61s)">
<path fill="none" stroke="#000000" d="M2329.5187,-1204.2423C2339.9911,-1182.6962 2353.5312,-1148.7886 2353.5312,-1117.5 2353.5312,-1117.5 2353.5312,-1117.5 2353.5312,-491 2353.5312,-466.2791 2338.6706,-443.3969 2322.7424,-425.9708"/>
<polygon fill="#000000" stroke="#000000" points="2324.8613,-423.1263 2315.3985,-418.3612 2319.8244,-427.9873 2324.8613,-423.1263"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.61s)">
<text text-anchor="middle" x="2370.2553" y="-807.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.61s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.indexbytebody (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2056.7834,-928 1910.279,-928 1910.279,-892 2056.7834,-892 2056.7834,-928"/>
<text text-anchor="middle" x="1983.5312" y="-912.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.indexbytebody</text>
<text text-anchor="middle" x="1983.5312" y="-898.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.34s(1.64%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N47 -->
<g id="edge47" class="edge">
<title>N24&#45;&gt;N47</title>
<g id="a_edge47"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.34s)">
<path fill="none" stroke="#000000" d="M1937.9241,-984.7658C1946.8095,-970.1996 1957.9833,-951.8818 1967.047,-937.0233"/>
<polygon fill="#000000" stroke="#000000" points="1970.1587,-938.6431 1972.3783,-928.2834 1964.1827,-934.9977 1970.1587,-938.6431"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.34s)">
<text text-anchor="middle" x="1973.2553" y="-955.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N41 -->
<g id="edge79" class="edge">
<title>N25&#45;&gt;N41</title>
<g id="a_edge79"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.14s)">
<path fill="none" stroke="#000000" d="M602.9406,-1096.9439C537.5906,-1073.603 438.9171,-1038.3075 430.5312,-1035 430.4356,-1034.9623 430.3399,-1034.9245 430.2441,-1034.8867"/>
<polygon fill="#000000" stroke="#000000" points="431.757,-1031.7229 421.1737,-1031.2286 429.1387,-1038.2149 431.757,-1031.7229"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.14s)">
<text text-anchor="middle" x="534.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="main.(*Integer).Add (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="537.7238,-1029 439.3386,-1029 439.3386,-991 537.7238,-991 537.7238,-1029"/>
<text text-anchor="middle" x="488.5312" y="-1017" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="488.5312" y="-1007" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="488.5312" y="-997" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.27s(1.30%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N52 -->
<g id="edge54" class="edge">
<title>N25&#45;&gt;N52</title>
<g id="a_edge54"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.27s)">
<path fill="none" stroke="#000000" d="M627.3679,-1096.7729C598.8473,-1078.9476 557.6688,-1053.211 527.5649,-1034.3961"/>
<polygon fill="#000000" stroke="#000000" points="529.3316,-1031.3729 518.9966,-1029.0409 525.6216,-1037.3089 529.3316,-1031.3729"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.27s)">
<text text-anchor="middle" x="597.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="main.(*machine).popValue (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="711.816,-1028 555.2464,-1028 555.2464,-992 711.816,-992 711.816,-1028"/>
<text text-anchor="middle" x="633.5312" y="-1012.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="633.5312" y="-999.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.18s(0.87%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N63 -->
<g id="edge98" class="edge">
<title>N25&#45;&gt;N63</title>
<g id="a_edge98"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.06s)">
<path fill="none" stroke="#000000" d="M655.3253,-1096.7729C651.1298,-1080.0684 645.1893,-1056.4164 640.5697,-1038.0237"/>
<polygon fill="#000000" stroke="#000000" points="643.9229,-1037.0061 638.0923,-1028.1599 637.1338,-1038.7113 643.9229,-1037.0061"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.06s)">
<text text-anchor="middle" x="665.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="strconv.ParseUint (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2100.9043,-1032 2000.1581,-1032 2000.1581,-988 2100.9043,-988 2100.9043,-1032"/>
<text text-anchor="middle" x="2050.5312" y="-1018.4" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="2050.5312" y="-1006.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.16s(0.77%)</text>
<text text-anchor="middle" x="2050.5312" y="-994.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.43s(2.07%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N36 -->
<g id="edge39" class="edge">
<title>N26&#45;&gt;N36</title>
<g id="a_edge39"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.43s)">
<path fill="none" stroke="#000000" d="M2046.8212,-1093.8612C2042.8928,-1081.7677 2039.5916,-1066.7368 2041.083,-1053 2041.4658,-1049.4737 2042.0203,-1045.8129 2042.6717,-1042.1822"/>
<polygon fill="#000000" stroke="#000000" points="2046.1455,-1042.6623 2044.7018,-1032.1663 2039.285,-1041.2718 2046.1455,-1042.6623"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.43s)">
<text text-anchor="middle" x="2057.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N62 -->
<g id="edge96" class="edge">
<title>N26&#45;&gt;N62</title>
<g id="a_edge96"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.07s)">
<path fill="none" stroke="#000000" d="M2067.9084,-1093.832C2075.0155,-1080.7279 2085.0894,-1064.762 2097.083,-1053 2102.0137,-1048.1644 2107.5878,-1043.6379 2113.3941,-1039.4732"/>
<polygon fill="#000000" stroke="#000000" points="2115.6991,-1042.1395 2122.0195,-1033.6363 2111.776,-1036.3421 2115.6991,-1042.1395"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.07s)">
<text text-anchor="middle" x="2113.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="strconv.atof64 (0.62s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1845.2145,-1030.5 1757.8479,-1030.5 1757.8479,-989.5 1845.2145,-989.5 1845.2145,-1030.5"/>
<text text-anchor="middle" x="1801.5312" y="-1017.7" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="1801.5312" y="-1006.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.08s(0.38%)</text>
<text text-anchor="middle" x="1801.5312" y="-995.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.62s(2.98%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N29 -->
<g id="edge29" class="edge">
<title>N28&#45;&gt;N29</title>
<g id="a_edge29"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (0.62s)">
<path fill="none" stroke="#000000" d="M1801.5312,-1099.2641C1801.5312,-1083.2658 1801.5312,-1059.6699 1801.5312,-1040.7554"/>
<polygon fill="#000000" stroke="#000000" points="1805.0313,-1040.5304 1801.5312,-1030.5304 1798.0313,-1040.5305 1805.0313,-1040.5304"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="strconv.ParseFloat &#45;&gt; strconv.atof64 (0.62s)">
<text text-anchor="middle" x="1818.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.62s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N6 -->
<g id="edge57" class="edge">
<title>N29&#45;&gt;N6</title>
<g id="a_edge57"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.27s)">
<path fill="none" stroke="#000000" d="M1797.1145,-989.1475C1784.3538,-929.1096 1748.0536,-759.868 1743.5312,-756 1723.4547,-738.8285 1361.1692,-722.9487 1208.495,-716.9885"/>
<polygon fill="#000000" stroke="#000000" points="1208.4379,-713.4838 1198.3097,-716.5935 1208.1665,-720.4785 1208.4379,-713.4838"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.27s)">
<text text-anchor="middle" x="1786.2553" y="-855.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.duffzero (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1891.7854,-928 1795.277,-928 1795.277,-892 1891.7854,-892 1891.7854,-928"/>
<text text-anchor="middle" x="1843.5312" y="-912.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="1843.5312" y="-900.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.12s(0.58%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N75 -->
<g id="edge93" class="edge">
<title>N29&#45;&gt;N75</title>
<g id="a_edge93"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.09s)">
<path fill="none" stroke="#000000" d="M1810.2336,-989.2799C1816.5213,-974.3093 1825.08,-953.9314 1831.9457,-937.5845"/>
<polygon fill="#000000" stroke="#000000" points="1835.3209,-938.5867 1835.9663,-928.0116 1828.867,-935.8761 1835.3209,-938.5867"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.09s)">
<text text-anchor="middle" x="1841.2553" y="-955.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N33 -->
<g id="edge86" class="edge">
<title>N30&#45;&gt;N33</title>
<g id="a_edge86"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.12s)">
<path fill="none" stroke="#000000" d="M2372.0509,-275.7034C2369.1838,-275.0802 2366.3352,-274.5077 2363.5312,-274 2171.4688,-239.2232 2120.4155,-252.8402 1925.5312,-242 1530.4528,-220.0242 1056.6944,-205.9146 875.765,-200.973"/>
<polygon fill="#000000" stroke="#000000" points="875.6532,-197.4687 865.5618,-200.6955 875.4629,-204.4661 875.6532,-197.4687"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.12s)">
<text text-anchor="middle" x="2253.2553" y="-244.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.newdefer (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2496.1524,-217 2380.91,-217 2380.91,-181 2496.1524,-181 2496.1524,-217"/>
<text text-anchor="middle" x="2438.5312" y="-201.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2438.5312" y="-187.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.36s(1.73%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N44 -->
<g id="edge45" class="edge">
<title>N30&#45;&gt;N44</title>
<g id="a_edge45"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.36s)">
<path fill="none" stroke="#000000" d="M2438.5312,-273.9892C2438.5312,-260.1356 2438.5312,-242.1225 2438.5312,-227.223"/>
<polygon fill="#000000" stroke="#000000" points="2442.0313,-227.0282 2438.5312,-217.0283 2435.0313,-227.0283 2442.0313,-227.0282"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.36s)">
<text text-anchor="middle" x="2455.2553" y="-244.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N8 -->
<g id="edge33" class="edge">
<title>N31&#45;&gt;N8</title>
<g id="a_edge33"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.53s)">
<path fill="none" stroke="#000000" d="M1661.5645,-482.5172C1785.4726,-464.7122 2072.4884,-423.4695 2209.3341,-403.8054"/>
<polygon fill="#000000" stroke="#000000" points="2209.9203,-407.2573 2219.3208,-402.3704 2208.9246,-400.3284 2209.9203,-407.2573"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.53s)">
<text text-anchor="middle" x="2000.2553" y="-438.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.53s</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N33 -->
<g id="edge64" class="edge">
<title>N32&#45;&gt;N33</title>
<g id="a_edge64"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.23s)">
<path fill="none" stroke="#000000" d="M702.6878,-690.9569C711.3911,-668.6232 722.5312,-633.9027 722.5312,-602.5 722.5312,-602.5 722.5312,-602.5 722.5312,-296 722.5312,-267.1935 743.681,-242.0857 763.9542,-224.6355"/>
<polygon fill="#000000" stroke="#000000" points="766.4131,-227.1457 771.9298,-218.1004 761.9765,-221.7312 766.4131,-227.1457"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.23s)">
<text text-anchor="middle" x="739.2553" y="-438.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.freedefer (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2341.0809,-224 2227.9815,-224 2227.9815,-174 2341.0809,-174 2341.0809,-224"/>
<text text-anchor="middle" x="2284.5312" y="-208.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="2284.5312" y="-194.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.29s(1.40%)</text>
<text text-anchor="middle" x="2284.5312" y="-180.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.32s(1.54%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N51 -->
<g id="edge52" class="edge">
<title>N34&#45;&gt;N51</title>
<g id="a_edge52"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.32s)">
<path fill="none" stroke="#000000" d="M2284.5312,-273.9892C2284.5312,-262.257 2284.5312,-247.5417 2284.5312,-234.2608"/>
<polygon fill="#000000" stroke="#000000" points="2288.0313,-234.0015 2284.5312,-224.0016 2281.0313,-234.0016 2288.0313,-234.0015"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.32s)">
<text text-anchor="middle" x="2301.2553" y="-244.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.(*mcache).refill (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2650.214,-218 2536.8484,-218 2536.8484,-180 2650.214,-180 2650.214,-218"/>
<text text-anchor="middle" x="2593.5312" y="-206" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="2593.5312" y="-196" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.096%)</text>
<text text-anchor="middle" x="2593.5312" y="-186" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.42s(2.02%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N37 -->
<g id="edge40" class="edge">
<title>N35&#45;&gt;N37</title>
<g id="a_edge40"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.42s)">
<path fill="none" stroke="#000000" d="M2593.5312,-277.755C2593.5312,-263.7992 2593.5312,-244.2787 2593.5312,-228.1639"/>
<polygon fill="#000000" stroke="#000000" points="2597.0313,-228.1586 2593.5312,-218.1586 2590.0313,-228.1587 2597.0313,-228.1586"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 &#45;&gt; runtime.(*mcache).refill (0.42s)">
<text text-anchor="middle" x="2610.2553" y="-244.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N6 -->
<g id="edge56" class="edge">
<title>N36&#45;&gt;N6</title>
<g id="a_edge56"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.27s)">
<path fill="none" stroke="#000000" d="M2061.4285,-987.6394C2072.7212,-960.9232 2086.0777,-915.9594 2065.5312,-885 1983.9186,-762.0264 1903.1338,-790.0793 1759.5312,-756 1656.5407,-731.5586 1346.4678,-720.1662 1208.7257,-716.2074"/>
<polygon fill="#000000" stroke="#000000" points="1208.4129,-712.6973 1198.3179,-715.9131 1208.2149,-719.6945 1208.4129,-712.6973"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.27s)">
<text text-anchor="middle" x="2068.2553" y="-855.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.(*mcentral).cacheSpan (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2664.5301,-124 2522.5323,-124 2522.5323,-86 2664.5301,-86 2664.5301,-124"/>
<text text-anchor="middle" x="2593.5312" y="-112" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="2593.5312" y="-102" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.096%)</text>
<text text-anchor="middle" x="2593.5312" y="-92" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.40s(1.92%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N39 -->
<g id="edge42" class="edge">
<title>N37&#45;&gt;N39</title>
<g id="a_edge42"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.40s)">
<path fill="none" stroke="#000000" d="M2593.5312,-179.9777C2593.5312,-166.9407 2593.5312,-149.3883 2593.5312,-134.5438"/>
<polygon fill="#000000" stroke="#000000" points="2597.0313,-134.3166 2593.5312,-124.3166 2590.0313,-134.3167 2597.0313,-134.3166"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.40s)">
<text text-anchor="middle" x="2610.2553" y="-144.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.mapassign1 (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1028.9336,-832 924.1288,-832 924.1288,-791 1028.9336,-791 1028.9336,-832"/>
<text text-anchor="middle" x="976.5312" y="-819.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="976.5312" y="-808.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.34%)</text>
<text text-anchor="middle" x="976.5312" y="-797.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.36s(1.73%)</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N43 -->
<g id="edge44" class="edge">
<title>N38&#45;&gt;N43</title>
<g id="a_edge44"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.36s)">
<path fill="none" stroke="#000000" d="M1015.0479,-890.5396C1008.2602,-876.6106 998.991,-857.5895 991.2467,-841.6974"/>
<polygon fill="#000000" stroke="#000000" points="994.1846,-839.7364 986.6576,-832.2802 987.892,-842.8029 994.1846,-839.7364"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.36s)">
<text text-anchor="middle" x="1020.2553" y="-855.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.(*mcentral).grow (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2647.9975,-36 2539.0649,-36 2539.0649,0 2647.9975,0 2647.9975,-36"/>
<text text-anchor="middle" x="2593.5312" y="-24.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="2593.5312" y="-15.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.048%)</text>
<text text-anchor="middle" x="2593.5312" y="-6.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.33s(1.59%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N48 -->
<g id="edge49" class="edge">
<title>N39&#45;&gt;N48</title>
<g id="a_edge49"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.33s)">
<path fill="none" stroke="#000000" d="M2593.5312,-85.6919C2593.5312,-74.1154 2593.5312,-59.1873 2593.5312,-46.2967"/>
<polygon fill="#000000" stroke="#000000" points="2597.0313,-46.066 2593.5312,-36.0661 2590.0313,-46.0661 2597.0313,-46.066"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.33s)">
<text text-anchor="middle" x="2610.2553" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N10 -->
<g id="edge76" class="edge">
<title>N40&#45;&gt;N10</title>
<g id="a_edge76"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.15s)">
<path fill="none" stroke="#000000" d="M2706.0374,-1205.9979C2750.5372,-1191.1647 2811.82,-1170.7371 2864.2962,-1153.245"/>
<polygon fill="#000000" stroke="#000000" points="2865.6061,-1156.4978 2873.9861,-1150.015 2863.3924,-1149.857 2865.6061,-1156.4978"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.15s)">
<text text-anchor="middle" x="2834.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.stringiter2 (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2557.1802,-1135.5 2451.8822,-1135.5 2451.8822,-1099.5 2557.1802,-1099.5 2557.1802,-1135.5"/>
<text text-anchor="middle" x="2504.5312" y="-1119.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.stringiter2</text>
<text text-anchor="middle" x="2504.5312" y="-1107.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.17s(0.82%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N67 -->
<g id="edge111" class="edge">
<title>N40&#45;&gt;N67</title>
<g id="a_edge111"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.03s)">
<path fill="none" stroke="#000000" d="M2618.1983,-1205.9979C2594.8566,-1187.8248 2560.7295,-1161.2544 2535.9647,-1141.9732"/>
<polygon fill="#000000" stroke="#000000" points="2537.9949,-1139.1181 2527.9542,-1135.7365 2533.6945,-1144.6415 2537.9949,-1139.1181"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.03s)">
<text text-anchor="middle" x="2603.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="main.isPrefixChar (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2696.0253,-1135.5 2593.0371,-1135.5 2593.0371,-1099.5 2696.0253,-1099.5 2696.0253,-1135.5"/>
<text text-anchor="middle" x="2644.5312" y="-1119.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.isPrefixChar</text>
<text text-anchor="middle" x="2644.5312" y="-1107.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.12s(0.58%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N74 -->
<g id="edge85" class="edge">
<title>N40&#45;&gt;N74</title>
<g id="a_edge85"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.12s)">
<path fill="none" stroke="#000000" d="M2644.5312,-1205.9979C2644.5312,-1189.01 2644.5312,-1164.6844 2644.5312,-1145.8343"/>
<polygon fill="#000000" stroke="#000000" points="2648.0313,-1145.7364 2644.5312,-1135.7365 2641.0313,-1145.7365 2648.0313,-1145.7364"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.12s)">
<text text-anchor="middle" x="2661.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.getitab (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="425.6286,-935 319.4338,-935 319.4338,-885 425.6286,-885 425.6286,-935"/>
<text text-anchor="middle" x="372.5312" y="-919.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="372.5312" y="-905.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.32s(1.54%)</text>
<text text-anchor="middle" x="372.5312" y="-891.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.36s(1.73%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N42 -->
<g id="edge55" class="edge">
<title>N41&#45;&gt;N42</title>
<g id="a_edge55"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.27s)">
<path fill="none" stroke="#000000" d="M372.5312,-987.8068C372.5312,-975.4265 372.5312,-959.7114 372.5312,-945.6503"/>
<polygon fill="#000000" stroke="#000000" points="376.0313,-945.3028 372.5312,-935.3029 369.0313,-945.3029 376.0313,-945.3028"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.27s)">
<text text-anchor="middle" x="389.2553" y="-955.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N32 -->
<g id="edge107" class="edge">
<title>N43&#45;&gt;N32</title>
<g id="a_edge107"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.04s)">
<path fill="none" stroke="#000000" d="M924.1103,-793.5957C881.212,-778.9438 819.8783,-757.9953 771.1074,-741.3377"/>
<polygon fill="#000000" stroke="#000000" points="772.1245,-737.9866 761.53,-738.0665 769.8619,-744.6108 772.1245,-737.9866"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.04s)">
<text text-anchor="middle" x="869.2553" y="-758.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.newarray (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1043.8322,-733.5 957.2302,-733.5 957.2302,-695.5 1043.8322,-695.5 1043.8322,-733.5"/>
<text text-anchor="middle" x="1000.5312" y="-721.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="1000.5312" y="-711.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="1000.5312" y="-701.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.24s(1.15%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N56 -->
<g id="edge61" class="edge">
<title>N43&#45;&gt;N56</title>
<g id="a_edge61"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.24s)">
<path fill="none" stroke="#000000" d="M981.621,-790.9288C985.0196,-777.1926 989.5401,-758.9223 993.3091,-743.6895"/>
<polygon fill="#000000" stroke="#000000" points="996.7709,-744.27 995.7752,-733.722 989.9758,-742.5887 996.7709,-744.27"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.24s)">
<text text-anchor="middle" x="1007.2553" y="-758.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N11 -->
<g id="edge95" class="edge">
<title>N45&#45;&gt;N11</title>
<g id="a_edge95"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.convT2I (0.07s)">
<path fill="none" stroke="#000000" d="M230.4355,-1099.0878C205.0861,-1073.5173 167.0236,-1025.7926 186.5312,-985 258.2914,-834.9411 370.5872,-881.9287 536.8043,-834.9604"/>
<polygon fill="#000000" stroke="#000000" points="538.1848,-838.2035 546.8019,-832.0394 536.2216,-831.4844 538.1848,-838.2035"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.convT2I (0.07s)">
<text text-anchor="middle" x="221.2553" y="-955.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N41 -->
<g id="edge78" class="edge">
<title>N45&#45;&gt;N41</title>
<g id="a_edge78"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.assertI2I (0.14s)">
<path fill="none" stroke="#000000" d="M265.4705,-1099.2368C276.962,-1085.7276 293.6138,-1067.2747 310.083,-1053 316.0278,-1047.8473 322.6006,-1042.7568 329.184,-1037.9804"/>
<polygon fill="#000000" stroke="#000000" points="331.3349,-1040.7462 337.4822,-1032.1171 327.2955,-1035.0292 331.3349,-1040.7462"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.assertI2I (0.14s)">
<text text-anchor="middle" x="327.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="main.(*Integer).LessThan (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="305.4951,-1028 195.5673,-1028 195.5673,-992 305.4951,-992 305.4951,-1028"/>
<text text-anchor="middle" x="250.5312" y="-1016.3" font-family="Times,serif" font-size="9.00" fill="#000000">main.(*Integer).LessThan</text>
<text text-anchor="middle" x="250.5312" y="-1007.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.048%)</text>
<text text-anchor="middle" x="250.5312" y="-998.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.12s(0.58%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N73 -->
<g id="edge84" class="edge">
<title>N45&#45;&gt;N73</title>
<g id="a_edge84"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; main.(*Integer).LessThan (0.12s)">
<path fill="none" stroke="#000000" d="M250.5312,-1099.2641C250.5312,-1082.5849 250.5312,-1057.6475 250.5312,-1038.3666"/>
<polygon fill="#000000" stroke="#000000" points="254.0313,-1038.3253 250.5312,-1028.3254 247.0313,-1038.3254 254.0313,-1038.3253"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; main.(*Integer).LessThan (0.12s)">
<text text-anchor="middle" x="267.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N67 -->
<g id="edge80" class="edge">
<title>N49&#45;&gt;N67</title>
<g id="a_edge80"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.14s)">
<path fill="none" stroke="#000000" d="M2489.105,-1205.9979C2492.0662,-1189.01 2496.3064,-1164.6844 2499.5922,-1145.8343"/>
<polygon fill="#000000" stroke="#000000" points="2503.0831,-1146.189 2501.3524,-1135.7365 2496.1871,-1144.9869 2503.0831,-1146.189"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.14s)">
<text text-anchor="middle" x="2512.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime._System (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2256.3011,-509 2182.7613,-509 2182.7613,-473 2256.3011,-473 2256.3011,-509"/>
<text text-anchor="middle" x="2219.5312" y="-492.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="2219.5312" y="-484.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.32s(1.54%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N8 -->
<g id="edge51" class="edge">
<title>N50&#45;&gt;N8</title>
<g id="a_edge51"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.32s)">
<path fill="none" stroke="#000000" d="M2222.7978,-472.8745C2225.4143,-461.618 2229.87,-447.2107 2237.083,-436 2239.3838,-432.424 2242.0563,-428.9566 2244.9381,-425.6453"/>
<polygon fill="#000000" stroke="#000000" points="2247.631,-427.8918 2251.9657,-418.2243 2242.5483,-423.0786 2247.631,-427.8918"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.32s)">
<text text-anchor="middle" x="2253.2553" y="-438.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="main.Integer.Add (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="537.0151,-930.5 444.0473,-930.5 444.0473,-889.5 537.0151,-889.5 537.0151,-930.5"/>
<text text-anchor="middle" x="490.5312" y="-917.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="490.5312" y="-906.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.24%)</text>
<text text-anchor="middle" x="490.5312" y="-895.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.24s(1.15%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N55 -->
<g id="edge60" class="edge">
<title>N52&#45;&gt;N55</title>
<g id="a_edge60"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.24s)">
<path fill="none" stroke="#000000" d="M488.9168,-990.719C489.1999,-976.5656 489.5902,-957.0505 489.9161,-940.7543"/>
<polygon fill="#000000" stroke="#000000" points="493.4185,-940.6668 490.1192,-930.5988 486.4199,-940.5268 493.4185,-940.6668"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.24s)">
<text text-anchor="middle" x="507.2553" y="-955.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.stkbucket (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1024.0396,-411 915.0228,-411 915.0228,-375 1024.0396,-375 1024.0396,-411"/>
<text text-anchor="middle" x="969.5312" y="-395.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="969.5312" y="-382.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.22s(1.06%)</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N59 -->
<g id="edge65" class="edge">
<title>N53&#45;&gt;N59</title>
<g id="a_edge65"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.22s)">
<path fill="none" stroke="#000000" d="M969.5312,-472.5669C969.5312,-458.1034 969.5312,-437.7239 969.5312,-421.2111"/>
<polygon fill="#000000" stroke="#000000" points="973.0313,-421.0193 969.5312,-411.0193 966.0313,-421.0193 973.0313,-421.0193"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.22s)">
<text text-anchor="middle" x="986.2553" y="-438.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N32 -->
<g id="edge72" class="edge">
<title>N54&#45;&gt;N32</title>
<g id="a_edge72"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.17s)">
<path fill="none" stroke="#000000" d="M710.6535,-790.9288C707.7037,-778.4882 703.872,-762.3285 700.4922,-748.0745"/>
<polygon fill="#000000" stroke="#000000" points="703.8429,-747.0353 698.1301,-738.1126 697.0317,-748.6503 703.8429,-747.0353"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.17s)">
<text text-anchor="middle" x="722.2553" y="-758.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N11 -->
<g id="edge92" class="edge">
<title>N55&#45;&gt;N11</title>
<g id="a_edge92"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.10s)">
<path fill="none" stroke="#000000" d="M513.1715,-889.3512C528.1904,-875.6534 548.162,-857.4386 565.0109,-842.0717"/>
<polygon fill="#000000" stroke="#000000" points="567.4735,-844.5628 572.5036,-835.2382 562.7565,-839.3908 567.4735,-844.5628"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.10s)">
<text text-anchor="middle" x="568.2553" y="-855.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N54 -->
<g id="edge102" class="edge">
<title>N55&#45;&gt;N54</title>
<g id="a_edge102"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.05s)">
<path fill="none" stroke="#000000" d="M537.1513,-889.5907C572.6314,-874.0584 621.6095,-852.6168 659.2688,-836.1304"/>
<polygon fill="#000000" stroke="#000000" points="660.8272,-839.2689 668.5843,-832.0523 658.02,-832.8565 660.8272,-839.2689"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.05s)">
<text text-anchor="middle" x="633.2553" y="-855.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N71 -->
<g id="edge105" class="edge">
<title>N55&#45;&gt;N71</title>
<g id="a_edge105"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T2 (0.04s)">
<path fill="none" stroke="#000000" d="M487.9863,-889.1107C486.3205,-875.4373 484.1157,-857.3398 482.2543,-842.0603"/>
<polygon fill="#000000" stroke="#000000" points="485.715,-841.5248 481.0313,-832.0214 478.7664,-842.3713 485.715,-841.5248"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T2 (0.04s)">
<text text-anchor="middle" x="502.2553" y="-855.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N5 -->
<g id="edge67" class="edge">
<title>N56&#45;&gt;N5</title>
<g id="a_edge67"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.21s)">
<path fill="none" stroke="#000000" d="M1024.77,-695.2465C1041.317,-682.1028 1063.9515,-664.1236 1084.8885,-647.4928"/>
<polygon fill="#000000" stroke="#000000" points="1087.16,-650.1583 1092.8134,-641.1978 1082.8061,-644.6771 1087.16,-650.1583"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.21s)">
<text text-anchor="middle" x="1084.2553" y="-661.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N41 -->
<g id="edge97" class="edge">
<title>N57&#45;&gt;N41</title>
<g id="a_edge97"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.06s)">
<path fill="none" stroke="#000000" d="M464.5078,-1098.2812C447.3237,-1081.7875 422.3018,-1057.7709 402.6931,-1038.95"/>
<polygon fill="#000000" stroke="#000000" points="405.1088,-1036.4173 395.4706,-1032.0177 400.2615,-1041.4675 405.1088,-1036.4173"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.06s)">
<text text-anchor="middle" x="449.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.makemap (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1411.2547,-1030.5 1315.8077,-1030.5 1315.8077,-989.5 1411.2547,-989.5 1411.2547,-1030.5"/>
<text text-anchor="middle" x="1363.5312" y="-1017.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="1363.5312" y="-1006.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.29%)</text>
<text text-anchor="middle" x="1363.5312" y="-995.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.21s(1.01%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N60 -->
<g id="edge66" class="edge">
<title>N58&#45;&gt;N60</title>
<g id="a_edge66"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.21s)">
<path fill="none" stroke="#000000" d="M1363.5312,-1098.2812C1363.5312,-1082.2536 1363.5312,-1059.1224 1363.5312,-1040.558"/>
<polygon fill="#000000" stroke="#000000" points="1367.0313,-1040.5165 1363.5312,-1030.5166 1360.0313,-1040.5166 1367.0313,-1040.5165"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.21s)">
<text text-anchor="middle" x="1380.2553" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N6 -->
<g id="edge81" class="edge">
<title>N60&#45;&gt;N6</title>
<g id="a_edge81"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.14s)">
<path fill="none" stroke="#000000" d="M1347.9206,-989.221C1309.6504,-938.2803 1210.9681,-806.9262 1165.3304,-746.1787"/>
<polygon fill="#000000" stroke="#000000" points="1168.0594,-743.9841 1159.2546,-738.0913 1162.4628,-748.1887 1168.0594,-743.9841"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.14s)">
<text text-anchor="middle" x="1272.2553" y="-855.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.schedule (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3485.3011,-1028 3411.7613,-1028 3411.7613,-992 3485.3011,-992 3485.3011,-1028"/>
<text text-anchor="middle" x="3448.5312" y="-1011.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="3448.5312" y="-1003.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.21s(1.01%)</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N11 -->
<g id="edge94" class="edge">
<title>N66&#45;&gt;N11</title>
<g id="a_edge94"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.08s)">
<path fill="none" stroke="#000000" d="M1051.8887,-1096.9473C967.4961,-1043.8112 741.8933,-901.765 644.4283,-840.3982"/>
<polygon fill="#000000" stroke="#000000" points="646.2883,-837.4333 635.9611,-835.067 642.5586,-843.357 646.2883,-837.4333"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.08s)">
<text text-anchor="middle" x="858.2553" y="-955.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N10 -->
<g id="edge101" class="edge">
<title>N68&#45;&gt;N10</title>
<g id="a_edge101"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.05s)">
<path fill="none" stroke="#000000" d="M2863.5475,-1205.9979C2880.4871,-1192.1151 2903.406,-1173.3319 2923.7715,-1156.6414"/>
<polygon fill="#000000" stroke="#000000" points="2926.2109,-1159.1675 2931.7268,-1150.1217 2921.7738,-1153.7534 2926.2109,-1159.1675"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.05s)">
<text text-anchor="middle" x="2925.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.morestack (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3486.2894,-1551 3410.773,-1551 3410.773,-1515 3486.2894,-1515 3486.2894,-1551"/>
<text text-anchor="middle" x="3448.5312" y="-1534.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="3448.5312" y="-1526.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(0.72%)</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.newstack (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3485.3011,-1361 3411.7613,-1361 3411.7613,-1325 3485.3011,-1325 3485.3011,-1361"/>
<text text-anchor="middle" x="3448.5312" y="-1344.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="3448.5312" y="-1336.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(0.72%)</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N70 -->
<g id="edge77" class="edge">
<title>N69&#45;&gt;N70</title>
<g id="a_edge77"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.15s)">
<path fill="none" stroke="#000000" d="M3448.5312,-1514.782C3448.5312,-1481.5153 3448.5312,-1410.7296 3448.5312,-1371.1957"/>
<polygon fill="#000000" stroke="#000000" points="3452.0313,-1371.1628 3448.5312,-1361.1628 3445.0313,-1371.1629 3452.0313,-1371.1628"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.15s)">
<text text-anchor="middle" x="3465.2553" y="-1403.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.gopreempt_m (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3492.3482,-1244.5 3404.7142,-1244.5 3404.7142,-1208.5 3492.3482,-1208.5 3492.3482,-1244.5"/>
<text text-anchor="middle" x="3448.5312" y="-1228.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="3448.5312" y="-1220.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(0.58%)</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N76 -->
<g id="edge88" class="edge">
<title>N70&#45;&gt;N76</title>
<g id="a_edge88"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.12s)">
<path fill="none" stroke="#000000" d="M3448.5312,-1324.7969C3448.5312,-1306.0737 3448.5312,-1276.6517 3448.5312,-1254.8717"/>
<polygon fill="#000000" stroke="#000000" points="3452.0313,-1254.5753 3448.5312,-1244.5753 3445.0313,-1254.5753 3452.0313,-1254.5753"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.12s)">
<text text-anchor="middle" x="3465.2553" y="-1273.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N32 -->
<g id="edge103" class="edge">
<title>N71&#45;&gt;N32</title>
<g id="a_edge103"><a xlink:title="runtime.assertI2T2 &#45;&gt; runtime.typedmemmove (0.05s)">
<path fill="none" stroke="#000000" d="M523.9151,-790.9288C555.092,-776.7972 596.856,-757.8668 631.0186,-742.3819"/>
<polygon fill="#000000" stroke="#000000" points="632.7744,-745.4289 640.4375,-738.1126 629.8845,-739.0532 632.7744,-745.4289"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="runtime.assertI2T2 &#45;&gt; runtime.typedmemmove (0.05s)">
<text text-anchor="middle" x="615.2553" y="-758.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.lock (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3584.7436,-1552 3504.3188,-1552 3504.3188,-1514 3584.7436,-1514 3584.7436,-1552"/>
<text text-anchor="middle" x="3544.5312" y="-1540" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="3544.5312" y="-1530" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="3544.5312" y="-1520" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.13s(0.63%)</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.goschedImpl (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3490.7385,-1135.5 3406.3239,-1135.5 3406.3239,-1099.5 3490.7385,-1099.5 3490.7385,-1135.5"/>
<text text-anchor="middle" x="3448.5312" y="-1119.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="3448.5312" y="-1111.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(0.58%)</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N77 -->
<g id="edge87" class="edge">
<title>N76&#45;&gt;N77</title>
<g id="a_edge87"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.12s)">
<path fill="none" stroke="#000000" d="M3448.5312,-1208.0096C3448.5312,-1190.9952 3448.5312,-1165.5055 3448.5312,-1145.9076"/>
<polygon fill="#000000" stroke="#000000" points="3452.0313,-1145.7173 3448.5312,-1135.7173 3445.0313,-1145.7173 3452.0313,-1145.7173"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.12s)">
<text text-anchor="middle" x="3465.2553" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N61 -->
<g id="edge91" class="edge">
<title>N77&#45;&gt;N61</title>
<g id="a_edge91"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.11s)">
<path fill="none" stroke="#000000" d="M3448.5312,-1099.2641C3448.5312,-1082.5849 3448.5312,-1057.6475 3448.5312,-1038.3666"/>
<polygon fill="#000000" stroke="#000000" points="3452.0313,-1038.3253 3448.5312,-1028.3254 3445.0313,-1038.3254 3452.0313,-1038.3253"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.11s)">
<text text-anchor="middle" x="3464.999" y="-1055.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.semasleep1 (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1928.2894,-217 1848.773,-217 1848.773,-181 1928.2894,-181 1928.2894,-217"/>
<text text-anchor="middle" x="1888.5312" y="-200.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="1888.5312" y="-192.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(0.58%)</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N79 -->
<g id="edge89" class="edge">
<title>N78&#45;&gt;N79</title>
<g id="a_edge89"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.12s)">
<path fill="none" stroke="#000000" d="M1888.5312,-277.755C1888.5312,-263.5291 1888.5312,-243.521 1888.5312,-227.2321"/>
<polygon fill="#000000" stroke="#000000" points="1892.0313,-227.1631 1888.5312,-217.1631 1885.0313,-227.1632 1892.0313,-227.1631"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.12s)">
<text text-anchor="middle" x="1905.2553" y="-244.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.usleep (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3690.0117,-1551 3603.0507,-1551 3603.0507,-1515 3690.0117,-1515 3690.0117,-1551"/>
<text text-anchor="middle" x="3646.5312" y="-1535.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="3646.5312" y="-1523.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.12s(0.58%)</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion5.svg.































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1984)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1984 3449.6035,-1984 3449.6035,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="982.8203,-1756 982.8203,-1972 1628.8203,-1972 1628.8203,-1756 982.8203,-1756"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="1620.6641,-1964 990.9765,-1964 990.9765,-1764 1620.6641,-1764 1620.6641,-1964"/>
<text text-anchor="start" x="998.8984" y="-1934.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="998.8984" y="-1902.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="998.8984" y="-1870.4" font-family="Times,serif" font-size="32.00" fill="#000000">17.89s of 19.47s total (91.88%)</text>
<text text-anchor="start" x="998.8984" y="-1838.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 92 nodes (cum &lt;= 0.10s)</text>
<text text-anchor="start" x="998.8984" y="-1806.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 13 edges (freq &lt;= 0.02s)</text>
<text text-anchor="start" x="998.8984" y="-1774.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 92 (cum &gt;= 1.02s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (18.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1808.8637,-1198 1550.7769,-1198 1550.7769,-1118 1808.8637,-1118 1808.8637,-1198"/>
<text text-anchor="middle" x="1679.8203" y="-1174.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="1679.8203" y="-1150.8" font-family="Times,serif" font-size="24.00" fill="#000000">2.71s(13.92%)</text>
<text text-anchor="middle" x="1679.8203" y="-1126.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 18.73s(96.20%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).loadLoopWords.func1 (18.71s)">
<polygon fill="#f8f8f8" stroke="#000000" points="855.8042,-1062 663.8364,-1062 663.8364,-1021 855.8042,-1021 855.8042,-1062"/>
<text text-anchor="middle" x="759.8203" y="-1049.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="759.8203" y="-1038.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.26%)</text>
<text text-anchor="middle" x="759.8203" y="-1027.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 18.71s(96.10%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge54" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge54"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.30s)">
<path fill="none" stroke="#000000" d="M1550.7226,-1154.1224C1359.1494,-1147.4221 1009.1195,-1131.2866 887.3721,-1100 858.73,-1092.6396 828.5722,-1079.1065 804.7758,-1066.9094"/>
<polygon fill="#000000" stroke="#000000" points="806.1376,-1063.6719 795.654,-1062.1403 802.8943,-1069.8752 806.1376,-1063.6719"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.30s)">
<text text-anchor="middle" x="904.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (17.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1765.4805,-1062 1594.1601,-1062 1594.1601,-1021 1765.4805,-1021 1765.4805,-1062"/>
<text text-anchor="middle" x="1679.8203" y="-1049.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="1679.8203" y="-1038.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.26%)</text>
<text text-anchor="middle" x="1679.8203" y="-1027.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 17.30s(88.85%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N4 -->
<g id="edge59" class="edge">
<title>N1&#45;&gt;N4</title>
<g id="a_edge59"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.25s)">
<path fill="none" stroke="#000000" d="M1712.7333,-1117.8489C1716.0338,-1112.1327 1718.8784,-1106.1112 1720.8203,-1100 1724.2481,-1089.2125 1720.0209,-1078.6815 1713.1611,-1069.5951"/>
<polygon fill="#000000" stroke="#000000" points="1715.7787,-1067.2712 1706.5814,-1062.0119 1710.4914,-1071.8588 1715.7787,-1067.2712"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.25s)">
<text text-anchor="middle" x="1739.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="main.NilWord.func1 (2.67s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1576.0867,-1062 1469.5539,-1062 1469.5539,-1021 1576.0867,-1021 1576.0867,-1062"/>
<text text-anchor="middle" x="1522.8203" y="-1049.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="1522.8203" y="-1038.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.31%)</text>
<text text-anchor="middle" x="1522.8203" y="-1027.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 2.67s(13.71%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N8 -->
<g id="edge29" class="edge">
<title>N1&#45;&gt;N8</title>
<g id="a_edge29"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.75s)">
<path fill="none" stroke="#000000" d="M1625.7898,-1117.9073C1603.5926,-1101.4361 1578.4951,-1082.8128 1558.6352,-1068.076"/>
<polygon fill="#000000" stroke="#000000" points="1560.5845,-1065.1641 1550.4682,-1062.0158 1556.4132,-1070.7856 1560.5845,-1065.1641"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.75s)">
<text text-anchor="middle" x="1618.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.75s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.convT2I (1.85s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1091.2969,-656 994.3437,-656 994.3437,-612 1091.2969,-612 1091.2969,-656"/>
<text text-anchor="middle" x="1042.8203" y="-642.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1042.8203" y="-630.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.16s(0.82%)</text>
<text text-anchor="middle" x="1042.8203" y="-618.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.85s(9.50%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N10 -->
<g id="edge16" class="edge">
<title>N1&#45;&gt;N10</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.31s)">
<path fill="none" stroke="#000000" d="M1550.5437,-1152.3545C1406.9472,-1143.5007 1187.0942,-1121.4333 1124.8203,-1068 1063.8044,-1015.6461 1047.7285,-757.8588 1043.9093,-666.3195"/>
<polygon fill="#000000" stroke="#000000" points="1047.4037,-666.1052 1043.5113,-656.2513 1040.4092,-666.3818 1047.4037,-666.1052"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.31s)">
<text text-anchor="middle" x="1080.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.31s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="runtime.mapaccess2_faststr (1.75s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2907.833,-965 2681.8076,-965 2681.8076,-900 2907.833,-900 2907.833,-965"/>
<text text-anchor="middle" x="2794.8203" y="-945.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="2794.8203" y="-926.8" font-family="Times,serif" font-size="19.00" fill="#000000">1.09s(5.60%)</text>
<text text-anchor="middle" x="2794.8203" y="-907.8" font-family="Times,serif" font-size="19.00" fill="#000000">of 1.75s(8.99%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N11 -->
<g id="edge14" class="edge">
<title>N1&#45;&gt;N11</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.51s)">
<path fill="none" stroke="#000000" d="M1808.9016,-1153.8106C2068.5657,-1144.9179 2632.4488,-1123.0717 2667.8203,-1100 2703.3736,-1076.8097 2686.2851,-1049.2414 2711.3721,-1015 2722.4453,-999.8861 2736.3324,-984.9839 2749.5824,-972.092"/>
<polygon fill="#000000" stroke="#000000" points="2752.0398,-974.585 2756.8561,-965.1481 2747.2061,-969.5217 2752.0398,-974.585"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.51s)">
<text text-anchor="middle" x="2727.5444" y="-1037.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.51s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.(*machine).executeMathWord (1.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1077.7035,-1065 873.9371,-1065 873.9371,-1018 1077.7035,-1018 1077.7035,-1065"/>
<text text-anchor="middle" x="975.8203" y="-1050.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="975.8203" y="-1037.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.22s(1.13%)</text>
<text text-anchor="middle" x="975.8203" y="-1024.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.63s(8.37%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N12 -->
<g id="edge13" class="edge">
<title>N1&#45;&gt;N12</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.63s)">
<path fill="none" stroke="#000000" d="M1550.5516,-1153.7925C1395.5225,-1147.3829 1145.6303,-1132.3256 1058.3721,-1100 1040.885,-1093.5218 1023.7047,-1082.3559 1009.5841,-1071.5044"/>
<polygon fill="#000000" stroke="#000000" points="1011.6495,-1068.6751 1001.6445,-1065.1894 1007.2921,-1074.1535 1011.6495,-1068.6751"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.63s)">
<text text-anchor="middle" x="1075.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.63s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="runtime.growslice (1.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1251.7939,-1066.5 1133.8467,-1066.5 1133.8467,-1016.5 1251.7939,-1016.5 1251.7939,-1066.5"/>
<text text-anchor="middle" x="1192.8203" y="-1051.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="1192.8203" y="-1037.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.35s(1.80%)</text>
<text text-anchor="middle" x="1192.8203" y="-1023.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.31s(6.73%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N13 -->
<g id="edge17" class="edge">
<title>N1&#45;&gt;N13</title>
<g id="a_edge17"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.31s)">
<path fill="none" stroke="#000000" d="M1550.5679,-1135.7775C1469.6569,-1120.5545 1363.3724,-1098.1665 1261.4405,-1068.0096"/>
<polygon fill="#000000" stroke="#000000" points="1262.1742,-1064.5759 1251.5907,-1065.0669 1260.1703,-1071.283 1262.1742,-1064.5759"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.31s)">
<text text-anchor="middle" x="1391.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.31s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.tryParseInt (1.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2278.3296,-1062 2189.311,-1062 2189.311,-1021 2278.3296,-1021 2278.3296,-1062"/>
<text text-anchor="middle" x="2233.8203" y="-1049.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="2233.8203" y="-1038.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.36%)</text>
<text text-anchor="middle" x="2233.8203" y="-1027.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 1.30s(6.68%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N14 -->
<g id="edge18" class="edge">
<title>N1&#45;&gt;N14</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (1.30s)">
<path fill="none" stroke="#000000" d="M1809.0095,-1145.9763C1911.6673,-1133.7712 2057.7714,-1110.4297 2179.8203,-1068 2181.6698,-1067.357 2183.5381,-1066.6661 2185.4124,-1065.9377"/>
<polygon fill="#000000" stroke="#000000" points="2186.8945,-1069.1118 2194.7762,-1062.0315 2184.1995,-1062.6514 2186.8945,-1069.1118"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (1.30s)">
<text text-anchor="middle" x="2130.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.30s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.(*CodeQuotation).cloneCode (1.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1451.7695,-1063.5 1269.8711,-1063.5 1269.8711,-1019.5 1451.7695,-1019.5 1451.7695,-1063.5"/>
<text text-anchor="middle" x="1360.8203" y="-1049.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="1360.8203" y="-1037.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.12s(0.62%)</text>
<text text-anchor="middle" x="1360.8203" y="-1025.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.29s(6.63%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N15 -->
<g id="edge19" class="edge">
<title>N1&#45;&gt;N15</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.29s)">
<path fill="none" stroke="#000000" d="M1570.0386,-1117.9073C1523.9882,-1101.0895 1471.7943,-1082.0281 1431.0578,-1067.151"/>
<polygon fill="#000000" stroke="#000000" points="1432.0842,-1063.7998 1421.4904,-1063.6569 1429.6829,-1070.375 1432.0842,-1063.7998"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.29s)">
<text text-anchor="middle" x="1537.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.29s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="main.tryParseFloat (1.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2171.3047,-1063.5 2064.3359,-1063.5 2064.3359,-1019.5 2171.3047,-1019.5 2171.3047,-1063.5"/>
<text text-anchor="middle" x="2117.8203" y="-1049.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="2117.8203" y="-1037.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.15s(0.77%)</text>
<text text-anchor="middle" x="2117.8203" y="-1025.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.24s(6.37%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N16 -->
<g id="edge20" class="edge">
<title>N1&#45;&gt;N16</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (1.24s)">
<path fill="none" stroke="#000000" d="M1809.2391,-1132.6781C1882.452,-1116.9518 1975.2065,-1094.6636 2055.8203,-1068 2056.8483,-1067.66 2057.883,-1067.3099 2058.9225,-1066.951"/>
<polygon fill="#000000" stroke="#000000" points="2060.1614,-1070.2248 2068.3593,-1063.5132 2057.7654,-1063.6476 2060.1614,-1070.2248"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (1.24s)">
<text text-anchor="middle" x="2011.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.24s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.memeqbody (1.06s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2817.591,-849.5 2644.0497,-849.5 2644.0497,-803.5 2817.591,-803.5 2817.591,-849.5"/>
<text text-anchor="middle" x="2730.8203" y="-830.3" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2730.8203" y="-811.3" font-family="Times,serif" font-size="19.00" fill="#000000">1.06s(5.44%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N17 -->
<g id="edge25" class="edge">
<title>N1&#45;&gt;N17</title>
<g id="a_edge25"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.89s)">
<path fill="none" stroke="#000000" d="M1809.102,-1153.5545C2049.3393,-1144.1235 2545.6741,-1118.6983 2604.8203,-1068 2665.9786,-1015.5771 2632.3539,-969.6488 2672.8203,-900 2681.3946,-885.2424 2692.6925,-870.2259 2703.0374,-857.6455"/>
<polygon fill="#000000" stroke="#000000" points="2705.9104,-859.6666 2709.6596,-849.7573 2700.5492,-855.1658 2705.9104,-859.6666"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.89s)">
<text text-anchor="middle" x="2663.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.89s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.deferreturn (0.83s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2468.3467,-1068 2335.2939,-1068 2335.2939,-1015 2468.3467,-1015 2468.3467,-1068"/>
<text text-anchor="middle" x="2401.8203" y="-1052" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="2401.8203" y="-1037" font-family="Times,serif" font-size="15.00" fill="#000000">0.42s(2.16%)</text>
<text text-anchor="middle" x="2401.8203" y="-1022" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.83s(4.26%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N21 -->
<g id="edge27" class="edge">
<title>N1&#45;&gt;N21</title>
<g id="a_edge27"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.83s)">
<path fill="none" stroke="#000000" d="M1809.0289,-1154.3648C1968.6299,-1148.4827 2230.1582,-1133.9043 2320.8203,-1100 2336.4142,-1094.1684 2351.7006,-1084.4869 2364.7183,-1074.6619"/>
<polygon fill="#000000" stroke="#000000" points="2367.2177,-1077.1497 2372.9255,-1068.2238 2362.8972,-1071.642 2367.2177,-1077.1497"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.83s)">
<text text-anchor="middle" x="2363.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.83s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.deferproc (0.78s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2595.8033,-1065 2485.8373,-1065 2485.8373,-1018 2595.8033,-1018 2595.8033,-1065"/>
<text text-anchor="middle" x="2540.8203" y="-1050.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="2540.8203" y="-1037.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.25s(1.28%)</text>
<text text-anchor="middle" x="2540.8203" y="-1024.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.78s(4.01%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N22 -->
<g id="edge28" class="edge">
<title>N1&#45;&gt;N22</title>
<g id="a_edge28"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.78s)">
<path fill="none" stroke="#000000" d="M1809.2122,-1151.1557C1981.6978,-1141.373 2277.5633,-1122.1108 2383.8203,-1100 2416.5696,-1093.1853 2451.5779,-1080.688 2480.2069,-1068.9888"/>
<polygon fill="#000000" stroke="#000000" points="2481.7674,-1072.1306 2489.6588,-1065.0612 2479.0813,-1065.6664 2481.7674,-1072.1306"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.78s)">
<text text-anchor="middle" x="2448.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.78s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="main.(*CodeQuotation).nextWord (0.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3325.3676,-1061.5 3094.273,-1061.5 3094.273,-1021.5 3325.3676,-1021.5 3325.3676,-1061.5"/>
<text text-anchor="middle" x="3209.8203" y="-1044.7" font-family="Times,serif" font-size="16.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="3209.8203" y="-1028.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.63s(3.24%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N28 -->
<g id="edge35" class="edge">
<title>N1&#45;&gt;N28</title>
<g id="a_edge35"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.63s)">
<path fill="none" stroke="#000000" d="M1809.0174,-1156.4612C2029.9902,-1152.7839 2494.4705,-1140.497 2884.8203,-1100 2960.6003,-1092.1382 3045.2823,-1076.6746 3109.2038,-1063.62"/>
<polygon fill="#000000" stroke="#000000" points="3110.1905,-1066.9904 3119.2801,-1061.5471 3108.7799,-1060.134 3110.1905,-1066.9904"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.63s)">
<text text-anchor="middle" x="2999.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.63s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="main.(*machine).hasPrefixWord (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3075.4867,-1063.5 2904.154,-1063.5 2904.154,-1019.5 3075.4867,-1019.5 3075.4867,-1063.5"/>
<text text-anchor="middle" x="2989.8203" y="-1049.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="2989.8203" y="-1037.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.12s(0.62%)</text>
<text text-anchor="middle" x="2989.8203" y="-1025.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.40s(2.05%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N35 -->
<g id="edge45" class="edge">
<title>N1&#45;&gt;N35</title>
<g id="a_edge45"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.40s)">
<path fill="none" stroke="#000000" d="M1809.1938,-1154.8978C2059.4756,-1148.2883 2601.514,-1130.8472 2785.8203,-1100 2830.2074,-1092.571 2878.6802,-1078.913 2917.2344,-1066.6615"/>
<polygon fill="#000000" stroke="#000000" points="2918.3653,-1069.9745 2926.8141,-1063.5817 2916.2227,-1063.3104 2918.3653,-1069.9745"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.40s)">
<text text-anchor="middle" x="2864.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="177.4613,-748.5 .1793,-748.5 .1793,-710.5 177.4613,-710.5 177.4613,-748.5"/>
<text text-anchor="middle" x="88.8203" y="-736.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="88.8203" y="-726.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.15%)</text>
<text text-anchor="middle" x="88.8203" y="-716.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.37s(1.90%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N36 -->
<g id="edge46" class="edge">
<title>N1&#45;&gt;N36</title>
<g id="a_edge46"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.37s)">
<path fill="none" stroke="#000000" d="M1550.6334,-1155.2613C1171.5665,-1146.3797 88.8203,-1114.6117 88.8203,-1041.5 88.8203,-1041.5 88.8203,-1041.5 88.8203,-826.5 88.8203,-803.8709 88.8203,-778.2722 88.8203,-759.0563"/>
<polygon fill="#000000" stroke="#000000" points="92.3204,-758.8242 88.8203,-748.8242 85.3204,-758.8243 92.3204,-758.8242"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.37s)">
<text text-anchor="middle" x="105.5444" y="-928.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="main.wordIsWhitespace (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2886.1116,-1063.5 2753.529,-1063.5 2753.529,-1019.5 2886.1116,-1019.5 2886.1116,-1063.5"/>
<text text-anchor="middle" x="2819.8203" y="-1049.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="2819.8203" y="-1037.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.12s(0.62%)</text>
<text text-anchor="middle" x="2819.8203" y="-1025.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.31s(1.59%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N42 -->
<g id="edge52" class="edge">
<title>N1&#45;&gt;N42</title>
<g id="a_edge52"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.31s)">
<path fill="none" stroke="#000000" d="M1808.9193,-1154.0456C2067.3837,-1145.6516 2630.9821,-1124.778 2715.8203,-1100 2738.6518,-1093.3318 2761.9234,-1080.8775 2780.6476,-1069.1686"/>
<polygon fill="#000000" stroke="#000000" points="2782.659,-1072.0365 2789.1818,-1063.6876 2778.8763,-1066.1466 2782.659,-1072.0365"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.31s)">
<text text-anchor="middle" x="2765.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.eqstring (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3445.3876,-1059.5 3344.253,-1059.5 3344.253,-1023.5 3445.3876,-1023.5 3445.3876,-1059.5"/>
<text text-anchor="middle" x="3394.8203" y="-1044.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="3394.8203" y="-1031.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.25s(1.28%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N50 -->
<g id="edge61" class="edge">
<title>N1&#45;&gt;N50</title>
<g id="a_edge61"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.24s)">
<path fill="none" stroke="#000000" d="M1809.3207,-1154.8906C2048.6378,-1148.5893 2576.2243,-1132.1049 3019.8203,-1100 3160.1737,-1089.842 3198.7778,-1103.9822 3334.8203,-1068 3339.7175,-1066.7047 3344.7245,-1065.0594 3349.6552,-1063.2249"/>
<polygon fill="#000000" stroke="#000000" points="3350.9987,-1066.4572 3358.9943,-1059.5059 3348.409,-1059.9539 3350.9987,-1066.4572"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.24s)">
<text text-anchor="middle" x="3267.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.ifaceeq (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2385.9459,-753 2285.6947,-753 2285.6947,-706 2385.9459,-706 2385.9459,-753"/>
<text text-anchor="middle" x="2335.8203" y="-738.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="2335.8203" y="-725.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.19s(0.98%)</text>
<text text-anchor="middle" x="2335.8203" y="-712.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.21s(1.08%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N53 -->
<g id="edge74" class="edge">
<title>N1&#45;&gt;N53</title>
<g id="a_edge74"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.17s)">
<path fill="none" stroke="#000000" d="M1808.9376,-1151.7371C1963.6495,-1142.0547 2211.5776,-1118.9509 2287.8203,-1068 2311.919,-1051.8955 2302.981,-1032.8455 2325.8203,-1015 2373.2949,-977.9057 2417.9752,-1014.8431 2451.8203,-965 2464.7747,-945.9223 2447.5663,-811.087 2442.8203,-803 2431.645,-783.958 2413.3527,-768.7261 2395.0273,-757.177"/>
<polygon fill="#000000" stroke="#000000" points="2396.4364,-753.941 2386.0595,-751.8026 2392.838,-759.9454 2396.4364,-753.941"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.17s)">
<text text-anchor="middle" x="2472.5444" y="-928.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2046.6251,-1062 1853.0155,-1062 1853.0155,-1021 2046.6251,-1021 2046.6251,-1062"/>
<text text-anchor="middle" x="1949.8203" y="-1049.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="1949.8203" y="-1038.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.36%)</text>
<text text-anchor="middle" x="1949.8203" y="-1027.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.20s(1.03%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N55 -->
<g id="edge66" class="edge">
<title>N1&#45;&gt;N55</title>
<g id="a_edge66"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.20s)">
<path fill="none" stroke="#000000" d="M1774.2432,-1117.8541C1788.1927,-1111.8876 1802.3865,-1105.7968 1815.8203,-1100 1841.437,-1088.9462 1869.7575,-1076.6007 1893.7382,-1066.1102"/>
<polygon fill="#000000" stroke="#000000" points="1895.2846,-1069.254 1903.0422,-1062.038 1892.4779,-1062.8413 1895.2846,-1069.254"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.20s)">
<text text-anchor="middle" x="1861.5444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge6" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge6"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (18.41s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M827.3851,-1062.0537C872.3192,-1074.9311 932.8759,-1090.7799 987.3721,-1100 1177.393,-1132.1492 1399.906,-1146.7602 1540.3618,-1153.2025"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1540.5636,-1157.5909 1550.7505,-1153.6709 1540.9578,-1148.8498 1540.5636,-1157.5909"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (18.41s)">
<text text-anchor="middle" x="1008.0444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 18.41s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.newobject (3.79s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1320.4268,-562 1207.2138,-562 1207.2138,-515 1320.4268,-515 1320.4268,-562"/>
<text text-anchor="middle" x="1263.8203" y="-547.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="1263.8203" y="-534.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.19s(0.98%)</text>
<text text-anchor="middle" x="1263.8203" y="-521.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 3.79s(19.47%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge64" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge64"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.21s)">
<path fill="none" stroke="#000000" d="M839.7035,-1020.9375C848.1704,-1018.8781 856.6639,-1016.8624 864.8203,-1015 903.7395,-1006.1132 926.3333,-1026.8684 952.8203,-997 1019.688,-921.5959 922.9702,-859.3987 971.3721,-771 1033.7348,-657.1037 1104.3894,-677.5162 1203.8203,-594 1213.0644,-586.2355 1222.7911,-577.502 1231.6586,-569.3011"/>
<polygon fill="#000000" stroke="#000000" points="1234.2717,-571.65 1239.1963,-562.2692 1229.4966,-566.5315 1234.2717,-571.65"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.21s)">
<text text-anchor="middle" x="988.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.assertI2T (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="494.712,-654.5 400.9286,-654.5 400.9286,-613.5 494.712,-613.5 494.712,-654.5"/>
<text text-anchor="middle" x="447.8203" y="-641.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="447.8203" y="-630.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.36%)</text>
<text text-anchor="middle" x="447.8203" y="-619.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.19s(0.98%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N57 -->
<g id="edge113" class="edge">
<title>N2&#45;&gt;N57</title>
<g id="a_edge113"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M663.788,-1035.9012C536.2324,-1026.9764 319.1685,-1006.1644 251.8203,-965 195.6274,-930.6539 180.4086,-912.062 158.3721,-850 132.3468,-776.7043 192.2368,-747.8135 257.8203,-706 299.225,-679.6019 351.7798,-660.6236 391.1162,-648.8012"/>
<polygon fill="#000000" stroke="#000000" points="392.2104,-652.1278 400.8174,-645.9496 390.2362,-645.4119 392.2104,-652.1278"/>
</a>
</g>
<g id="a_edge113&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="175.5444" y="-822.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="runtime.goexit (18.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1720.5902,-1882 1639.0505,-1882 1639.0505,-1846 1720.5902,-1846 1720.5902,-1882"/>
<text text-anchor="middle" x="1679.8203" y="-1865.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="1679.8203" y="-1857.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 18.35s(94.25%)</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.main (18.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1720.5902,-1714 1639.0505,-1714 1639.0505,-1678 1720.5902,-1678 1720.5902,-1714"/>
<text text-anchor="middle" x="1679.8203" y="-1697.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.main</text>
<text text-anchor="middle" x="1679.8203" y="-1689.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 18.41s(94.56%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N79 -->
<g id="edge8" class="edge">
<title>N3&#45;&gt;N79</title>
<g id="a_edge8"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (18.26s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1679.8203,-1845.7012C1679.8203,-1816.4641 1679.8203,-1758.9945 1679.8203,-1724.3892"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1684.1954,-1724.0219 1679.8203,-1714.0219 1675.4454,-1724.022 1684.1954,-1724.0219"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (18.26s)">
<text text-anchor="middle" x="1700.0444" y="-1734.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 18.26s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge9" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge9"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (17.05s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1679.8203,-1062.0158C1679.8203,-1074.675 1679.8203,-1091.5082 1679.8203,-1107.5399"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1675.4454,-1107.9073 1679.8203,-1117.9073 1684.1954,-1107.9074 1675.4454,-1107.9073"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (17.05s)">
<text text-anchor="middle" x="1700.0444" y="-1088.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 17.05s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N6 -->
<g id="edge76" class="edge">
<title>N4&#45;&gt;N6</title>
<g id="a_edge76"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.16s)">
<path fill="none" stroke="#000000" d="M1675.5438,-1020.7058C1671.4266,-998.8474 1665.8203,-963.4081 1665.8203,-932.5 1665.8203,-932.5 1665.8203,-932.5 1665.8203,-634 1665.8203,-565.9343 1444.9118,-546.3031 1330.6131,-540.7013"/>
<polygon fill="#000000" stroke="#000000" points="1330.7171,-537.2024 1320.5645,-540.2315 1330.3901,-544.1948 1330.7171,-537.2024"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.16s)">
<text text-anchor="middle" x="1682.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.duffzero (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1921.0745,-844.5 1824.5661,-844.5 1824.5661,-808.5 1921.0745,-808.5 1921.0745,-844.5"/>
<text text-anchor="middle" x="1872.8203" y="-828.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.duffzero</text>
<text text-anchor="middle" x="1872.8203" y="-816.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.15s(0.77%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N64 -->
<g id="edge111" class="edge">
<title>N4&#45;&gt;N64</title>
<g id="a_edge111"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.duffzero (0.03s)">
<path fill="none" stroke="#000000" d="M1751.0407,-1020.9208C1819.5836,-1000.779 1913.6271,-972.115 1918.8203,-965 1935.8519,-941.6656 1933.5671,-924.8415 1918.8203,-900 1910.2922,-885.634 1895.9411,-895.2921 1885.8203,-882 1879.8964,-874.2199 1876.6088,-864.1771 1874.8049,-854.7775"/>
<polygon fill="#000000" stroke="#000000" points="1878.2279,-853.9917 1873.3372,-844.5933 1871.2995,-854.9903 1878.2279,-853.9917"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.duffzero (0.03s)">
<text text-anchor="middle" x="1946.5444" y="-928.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.mallocgc (4.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1348.8795,-465 1178.7611,-465 1178.7611,-391 1348.8795,-391 1348.8795,-465"/>
<text text-anchor="middle" x="1263.8203" y="-443.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="1263.8203" y="-421.4" font-family="Times,serif" font-size="22.00" fill="#000000">1.91s(9.81%)</text>
<text text-anchor="middle" x="1263.8203" y="-399.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 4.63s(23.78%)</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.heapBitsSetType (0.92s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1363.0265,-341 1164.6142,-341 1164.6142,-297 1363.0265,-297 1363.0265,-341"/>
<text text-anchor="middle" x="1263.8203" y="-322.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1263.8203" y="-304.6" font-family="Times,serif" font-size="18.00" fill="#000000">0.92s(4.73%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N20 -->
<g id="edge24" class="edge">
<title>N5&#45;&gt;N20</title>
<g id="a_edge24"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.92s)">
<path fill="none" stroke="#000000" d="M1263.8203,-390.7932C1263.8203,-378.0096 1263.8203,-363.8099 1263.8203,-351.4358"/>
<polygon fill="#000000" stroke="#000000" points="1267.3204,-351.1131 1263.8203,-341.1132 1260.3204,-351.1132 1267.3204,-351.1131"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.92s)">
<text text-anchor="middle" x="1280.5444" y="-361.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.92s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.(*mcache).nextFree (0.54s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2420.7734,-337 2302.8672,-337 2302.8672,-301 2420.7734,-301 2420.7734,-337"/>
<text text-anchor="middle" x="2361.8203" y="-325.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="2361.8203" y="-316.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.051%)</text>
<text text-anchor="middle" x="2361.8203" y="-307.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.54s(2.77%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N29 -->
<g id="edge36" class="edge">
<title>N5&#45;&gt;N29</title>
<g id="a_edge36"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.54s)">
<path fill="none" stroke="#000000" d="M1349.0649,-419.5377C1559.4441,-398.653 2100.2018,-344.9712 2292.5932,-325.8723"/>
<polygon fill="#000000" stroke="#000000" points="2292.9766,-329.3515 2302.5819,-324.8807 2292.285,-322.3857 2292.9766,-329.3515"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.54s)">
<text text-anchor="middle" x="1959.5444" y="-361.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.stkbucket (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1497.0209,-337 1380.6197,-337 1380.6197,-301 1497.0209,-301 1497.0209,-337"/>
<text text-anchor="middle" x="1438.8203" y="-321.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="1438.8203" y="-307.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.28s(1.44%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N47 -->
<g id="edge56" class="edge">
<title>N5&#45;&gt;N47</title>
<g id="a_edge56"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.28s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1323.5559,-390.7932C1349.2552,-374.7863 1378.5193,-356.5589 1401.1298,-342.4758"/>
<polygon fill="#000000" stroke="#000000" points="1403.1207,-345.3592 1409.7584,-337.1014 1399.4198,-339.4175 1403.1207,-345.3592"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.28s)">
<text text-anchor="middle" x="1389.5444" y="-361.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.memclr (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1146.7102,-337 1046.9304,-337 1046.9304,-301 1146.7102,-301 1146.7102,-337"/>
<text text-anchor="middle" x="1096.8203" y="-321.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="1096.8203" y="-308.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.22s(1.13%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N52 -->
<g id="edge120" class="edge">
<title>N5&#45;&gt;N52</title>
<g id="a_edge120"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.02s)">
<path fill="none" stroke="#000000" d="M1206.8155,-390.7932C1182.3995,-374.8571 1154.6118,-356.7202 1133.0746,-342.663"/>
<polygon fill="#000000" stroke="#000000" points="1134.8408,-339.6362 1124.5536,-337.1014 1131.0147,-345.4981 1134.8408,-339.6362"/>
</a>
</g>
<g id="a_edge120&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.02s)">
<text text-anchor="middle" x="1192.5444" y="-361.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N5 -->
<g id="edge10" class="edge">
<title>N6&#45;&gt;N5</title>
<g id="a_edge10"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.60s)">
<path fill="none" stroke="#000000" d="M1263.8203,-514.795C1263.8203,-503.2732 1263.8203,-488.9991 1263.8203,-475.3768"/>
<polygon fill="#000000" stroke="#000000" points="1267.3204,-475.1431 1263.8203,-465.1432 1260.3204,-475.1432 1267.3204,-475.1431"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.60s)">
<text text-anchor="middle" x="1280.5444" y="-485.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.60s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.systemstack (2.82s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2616.2134,-247 2477.4272,-247 2477.4272,-194 2616.2134,-194 2616.2134,-247"/>
<text text-anchor="middle" x="2546.8203" y="-231" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2546.8203" y="-216" font-family="Times,serif" font-size="15.00" fill="#000000">0.42s(2.16%)</text>
<text text-anchor="middle" x="2546.8203" y="-201" font-family="Times,serif" font-size="15.00" fill="#000000">of 2.82s(14.48%)</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.deferproc.func1 (0.47s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2337.9342,-144 2205.7065,-144 2205.7065,-100 2337.9342,-100 2337.9342,-144"/>
<text text-anchor="middle" x="2271.8203" y="-130.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2271.8203" y="-118.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.11s(0.56%)</text>
<text text-anchor="middle" x="2271.8203" y="-106.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.47s(2.41%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N31 -->
<g id="edge41" class="edge">
<title>N7&#45;&gt;N31</title>
<g id="a_edge41"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.47s)">
<path fill="none" stroke="#000000" d="M2477.4262,-195.6443C2436.389,-180.9455 2384.5238,-162.3683 2343.1524,-147.5498"/>
<polygon fill="#000000" stroke="#000000" points="2344.2802,-144.2361 2333.6856,-144.159 2341.9197,-150.8261 2344.2802,-144.2361"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.47s)">
<text text-anchor="middle" x="2433.5444" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.47s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.(*mcache).refill (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2765.7857,-140 2661.8549,-140 2661.8549,-104 2765.7857,-104 2765.7857,-140"/>
<text text-anchor="middle" x="2713.8203" y="-128.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="2713.8203" y="-119.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.051%)</text>
<text text-anchor="middle" x="2713.8203" y="-110.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.37s(1.90%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N37 -->
<g id="edge47" class="edge">
<title>N7&#45;&gt;N37</title>
<g id="a_edge47"><a xlink:title="runtime.systemstack ... runtime.(*mcache).refill (0.37s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2592.0129,-193.8445C2617.7364,-178.6722 2649.6526,-159.8474 2674.361,-145.2739"/>
<polygon fill="#000000" stroke="#000000" points="2676.278,-148.2067 2683.1132,-140.1117 2672.7217,-142.1774 2676.278,-148.2067"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcache).refill (0.37s)">
<text text-anchor="middle" x="2661.5444" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.deferreturn.func1 (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2943.4356,-142.5 2814.205,-142.5 2814.205,-101.5 2943.4356,-101.5 2943.4356,-142.5"/>
<text text-anchor="middle" x="2878.8203" y="-129.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="2878.8203" y="-118.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.31%)</text>
<text text-anchor="middle" x="2878.8203" y="-107.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.35s(1.80%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N40 -->
<g id="edge50" class="edge">
<title>N7&#45;&gt;N40</title>
<g id="a_edge50"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.35s)">
<path fill="none" stroke="#000000" d="M2616.4184,-199.8512C2671.3962,-183.54 2747.9632,-160.8236 2804.2022,-144.1382"/>
<polygon fill="#000000" stroke="#000000" points="2805.5119,-147.4005 2814.1033,-141.2007 2803.5208,-140.6896 2805.5119,-147.4005"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.35s)">
<text text-anchor="middle" x="2758.5444" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.(*mheap).alloc.func1 (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2479.5295,-140 2356.1112,-140 2356.1112,-104 2479.5295,-104 2479.5295,-140"/>
<text text-anchor="middle" x="2417.8203" y="-128.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="2417.8203" y="-119.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.051%)</text>
<text text-anchor="middle" x="2417.8203" y="-110.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.12s(0.62%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N70 -->
<g id="edge89" class="edge">
<title>N7&#45;&gt;N70</title>
<g id="a_edge89"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.12s)">
<path fill="none" stroke="#000000" d="M2511.9111,-193.8445C2492.5415,-179.0546 2468.6266,-160.7939 2449.7543,-146.3837"/>
<polygon fill="#000000" stroke="#000000" points="2451.8104,-143.55 2441.7383,-140.263 2447.5622,-149.1136 2451.8104,-143.55"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.12s)">
<text text-anchor="middle" x="2502.5444" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.mach_semrelease (1.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2596.6176,-140 2497.023,-140 2497.023,-104 2596.6176,-104 2596.6176,-140"/>
<text text-anchor="middle" x="2546.8203" y="-123.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mach_semrelease</text>
<text text-anchor="middle" x="2546.8203" y="-115.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.02s(5.24%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N80 -->
<g id="edge23" class="edge">
<title>N7&#45;&gt;N80</title>
<g id="a_edge23"><a xlink:title="runtime.systemstack ... runtime.mach_semrelease (0.95s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2546.8203,-193.8445C2546.8203,-180.4473 2546.8203,-164.2024 2546.8203,-150.551"/>
<polygon fill="#000000" stroke="#000000" points="2550.3204,-150.2629 2546.8203,-140.263 2543.3204,-150.263 2550.3204,-150.2629"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semrelease (0.95s)">
<text text-anchor="middle" x="2563.5444" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.95s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (2.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1910.0061,-953 1693.6345,-953 1693.6345,-912 1910.0061,-912 1910.0061,-953"/>
<text text-anchor="middle" x="1801.8203" y="-940.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="1801.8203" y="-929.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.26%)</text>
<text text-anchor="middle" x="1801.8203" y="-918.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 2.15s(11.04%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N9 -->
<g id="edge11" class="edge">
<title>N8&#45;&gt;N9</title>
<g id="a_edge11"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.15s)">
<path fill="none" stroke="#000000" d="M1570.4663,-1020.9044C1575.3038,-1018.8826 1580.1526,-1016.8839 1584.8203,-1015 1635.3774,-994.5948 1693.0931,-972.7194 1736.2866,-956.6247"/>
<polygon fill="#000000" stroke="#000000" points="1737.676,-959.8423 1745.8282,-953.0753 1735.2354,-953.2815 1737.676,-959.8423"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.15s)">
<text text-anchor="middle" x="1679.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.15s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1637.4613,-951.5 1460.1793,-951.5 1460.1793,-913.5 1637.4613,-913.5 1637.4613,-951.5"/>
<text text-anchor="middle" x="1548.8203" y="-939.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="1548.8203" y="-929.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.1%)</text>
<text text-anchor="middle" x="1548.8203" y="-919.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(0.92%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N60 -->
<g id="edge73" class="edge">
<title>N8&#45;&gt;N60</title>
<g id="a_edge73"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.18s)">
<path fill="none" stroke="#000000" d="M1527.7107,-1020.9979C1531.7073,-1004.2432 1537.4064,-980.3508 1541.8758,-961.6136"/>
<polygon fill="#000000" stroke="#000000" points="1545.2979,-962.3516 1544.2137,-951.8124 1538.4889,-960.7274 1545.2979,-962.3516"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.18s)">
<text text-anchor="middle" x="1553.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="main.(*machine).loadBooleanWords.func2 (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1441.9632,-954.5 1219.6774,-954.5 1219.6774,-910.5 1441.9632,-910.5 1441.9632,-954.5"/>
<text text-anchor="middle" x="1330.8203" y="-940.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadBooleanWords.func2</text>
<text text-anchor="middle" x="1330.8203" y="-928.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.51%)</text>
<text text-anchor="middle" x="1330.8203" y="-916.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.14s(0.72%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N66 -->
<g id="edge83" class="edge">
<title>N8&#45;&gt;N66</title>
<g id="a_edge83"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.14s)">
<path fill="none" stroke="#000000" d="M1486.7066,-1020.9979C1456.0933,-1003.6185 1411.9524,-978.5594 1378.4505,-959.54"/>
<polygon fill="#000000" stroke="#000000" points="1380.1655,-956.489 1369.7412,-954.5957 1376.7096,-962.5765 1380.1655,-956.489"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.14s)">
<text text-anchor="middle" x="1461.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N1 -->
<g id="edge12" class="edge">
<title>N9&#45;&gt;N1</title>
<g id="a_edge12"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (1.92s)">
<path fill="none" stroke="#000000" d="M1802.0976,-953.0294C1801.4891,-987.334 1795.5458,-1056.7944 1759.8203,-1100 1756.7047,-1103.7679 1753.2913,-1107.4157 1749.685,-1110.9235"/>
<polygon fill="#000000" stroke="#000000" points="1747.0559,-1108.5853 1742.0454,-1117.9205 1751.7838,-1113.7475 1747.0559,-1108.5853"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (1.92s)">
<text text-anchor="middle" x="1811.5444" y="-1037.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.92s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N6 -->
<g id="edge78" class="edge">
<title>N9&#45;&gt;N6</title>
<g id="a_edge78"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.16s)">
<path fill="none" stroke="#000000" d="M1786.4308,-911.7749C1772.7236,-891.2294 1754.8203,-858.3064 1754.8203,-826.5 1754.8203,-826.5 1754.8203,-826.5 1754.8203,-634 1754.8203,-592.9255 1718.2367,-594.5358 1679.8203,-580 1617.636,-556.471 1431.3967,-545.3645 1330.5124,-540.9508"/>
<polygon fill="#000000" stroke="#000000" points="1330.5693,-537.4501 1320.4288,-540.5195 1330.2701,-544.4437 1330.5693,-537.4501"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.16s)">
<text text-anchor="middle" x="1771.5444" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N6 -->
<g id="edge15" class="edge">
<title>N10&#45;&gt;N6</title>
<g id="a_edge15"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.49s)">
<path fill="none" stroke="#000000" d="M1091.3197,-613.0421C1123.1424,-599.2907 1165.1085,-581.156 1199.6797,-566.2169"/>
<polygon fill="#000000" stroke="#000000" points="1201.4287,-569.274 1209.2199,-562.0943 1198.6519,-562.8482 1201.4287,-569.274"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.49s)">
<text text-anchor="middle" x="1183.5444" y="-582.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.49s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.typedmemmove (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="955.4595,-560.5 822.1812,-560.5 822.1812,-516.5 955.4595,-516.5 955.4595,-560.5"/>
<text text-anchor="middle" x="888.8203" y="-546.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="888.8203" y="-534.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.13s(0.67%)</text>
<text text-anchor="middle" x="888.8203" y="-522.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.36s(1.85%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N39 -->
<g id="edge68" class="edge">
<title>N10&#45;&gt;N39</title>
<g id="a_edge68"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.20s)">
<path fill="none" stroke="#000000" d="M1007.1025,-611.8503C985.0418,-598.1698 956.5624,-580.5089 933.0771,-565.9449"/>
<polygon fill="#000000" stroke="#000000" points="934.6875,-562.8253 924.3444,-560.5295 930.9984,-568.7743 934.6875,-562.8253"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.20s)">
<text text-anchor="middle" x="992.5444" y="-582.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N17 -->
<g id="edge84" class="edge">
<title>N11&#45;&gt;N17</title>
<g id="a_edge84"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.14s)">
<path fill="none" stroke="#000000" d="M2775.096,-899.8316C2767.1581,-886.6845 2758.0325,-871.5702 2750.1362,-858.492"/>
<polygon fill="#000000" stroke="#000000" points="2753.0607,-856.564 2744.8957,-849.8124 2747.0682,-860.1821 2753.0607,-856.564"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.14s)">
<text text-anchor="middle" x="2779.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.aeshashbody (0.49s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2978.3735,-845.5 2835.2671,-845.5 2835.2671,-807.5 2978.3735,-807.5 2978.3735,-845.5"/>
<text text-anchor="middle" x="2906.8203" y="-829.5" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="2906.8203" y="-814.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.49s(2.52%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N30 -->
<g id="edge39" class="edge">
<title>N11&#45;&gt;N30</title>
<g id="a_edge39"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.48s)">
<path fill="none" stroke="#000000" d="M2829.3379,-899.8316C2845.32,-884.7056 2864.0537,-866.9756 2879.0967,-852.7384"/>
<polygon fill="#000000" stroke="#000000" points="2881.7356,-855.0599 2886.5927,-845.644 2876.9239,-849.9758 2881.7356,-855.0599"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.48s)">
<text text-anchor="middle" x="2877.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.48s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N10 -->
<g id="edge103" class="edge">
<title>N12&#45;&gt;N10</title>
<g id="a_edge103"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.05s)">
<path fill="none" stroke="#000000" d="M980.8672,-1017.996C982.2393,-1011.2348 983.6641,-1003.8392 984.8203,-997 1008.9707,-854.1456 994.9403,-814.8643 1028.8203,-674 1029.4596,-671.342 1030.2082,-668.613 1031.021,-665.8895"/>
<polygon fill="#000000" stroke="#000000" points="1034.4117,-666.7794 1034.1646,-656.1874 1027.7526,-664.6217 1034.4117,-666.7794"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.05s)">
<text text-anchor="middle" x="1023.5444" y="-822.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N17 -->
<g id="edge109" class="edge">
<title>N12&#45;&gt;N17</title>
<g id="a_edge109"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.03s)">
<path fill="none" stroke="#000000" d="M1077.7189,-1021.1793C1093.4354,-1018.6827 1109.5224,-1016.4899 1124.8203,-1015 1179.6256,-1009.6624 2067.3217,-1023.0767 2115.8203,-997 2160.1721,-973.1529 2131.8814,-927.0242 2174.3721,-900 2219.7719,-871.1256 2362.4321,-888.6763 2415.8203,-882 2489.2848,-872.8131 2571.6689,-858.1414 2633.755,-846.1899"/>
<polygon fill="#000000" stroke="#000000" points="2634.7775,-849.5571 2643.9303,-844.2206 2633.4474,-842.6846 2634.7775,-849.5571"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.03s)">
<text text-anchor="middle" x="2190.5444" y="-928.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="main.(*machine).executeSubtract (0.67s)">
<polygon fill="#f8f8f8" stroke="#000000" points="910.6436,-953 746.997,-953 746.997,-912 910.6436,-912 910.6436,-953"/>
<text text-anchor="middle" x="828.8203" y="-940.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="828.8203" y="-929.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.08s(0.41%)</text>
<text text-anchor="middle" x="828.8203" y="-918.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.67s(3.44%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N26 -->
<g id="edge33" class="edge">
<title>N12&#45;&gt;N26</title>
<g id="a_edge33"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.67s)">
<path fill="none" stroke="#000000" d="M943.9235,-1017.8486C920.6586,-1000.5978 889.1018,-977.1985 864.9139,-959.2633"/>
<polygon fill="#000000" stroke="#000000" points="866.8087,-956.3111 856.6914,-953.1663 862.6394,-961.934 866.8087,-956.3111"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.67s)">
<text text-anchor="middle" x="932.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.67s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.assertI2I (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="298.4597,-848.5 201.181,-848.5 201.181,-804.5 298.4597,-804.5 298.4597,-848.5"/>
<text text-anchor="middle" x="249.8203" y="-834.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="249.8203" y="-822.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.11s(0.56%)</text>
<text text-anchor="middle" x="249.8203" y="-810.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.30s(1.54%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N44 -->
<g id="edge108" class="edge">
<title>N12&#45;&gt;N44</title>
<g id="a_edge108"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.assertI2I (0.03s)">
<path fill="none" stroke="#000000" d="M881.8558,-1017.9959C876.1094,-1016.8916 870.3979,-1015.8795 864.8203,-1015 639.2139,-979.4254 565.2354,-1050.3097 353.3721,-965 297.0356,-942.3153 271.728,-936.446 244.8203,-882 241.3035,-874.884 240.5546,-866.6285 241.1605,-858.6948"/>
<polygon fill="#000000" stroke="#000000" points="244.6568,-858.9704 242.6187,-848.5735 237.7284,-857.9722 244.6568,-858.9704"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.assertI2I (0.03s)">
<text text-anchor="middle" x="370.5444" y="-928.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="main.(*machine).executeMultiply (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="547.8848,-951.5 395.7558,-951.5 395.7558,-913.5 547.8848,-913.5 547.8848,-951.5"/>
<text text-anchor="middle" x="471.8203" y="-939.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="471.8203" y="-929.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.1%)</text>
<text text-anchor="middle" x="471.8203" y="-919.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.27s(1.39%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N48 -->
<g id="edge57" class="edge">
<title>N12&#45;&gt;N48</title>
<g id="a_edge57"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.27s)">
<path fill="none" stroke="#000000" d="M879.0517,-1017.9555C874.2465,-1016.9252 869.4827,-1015.9337 864.8203,-1015 728.8392,-987.7688 690.7302,-1001.0631 556.8203,-965 546.7625,-962.2913 536.2476,-958.8223 526.178,-955.1641"/>
<polygon fill="#000000" stroke="#000000" points="527.2821,-951.8403 516.6896,-951.6175 524.8312,-958.3973 527.2821,-951.8403"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.27s)">
<text text-anchor="middle" x="758.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="main.(*machine).executeLessThan (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="721.7568,-951.5 565.8838,-951.5 565.8838,-913.5 721.7568,-913.5 721.7568,-951.5"/>
<text text-anchor="middle" x="643.8203" y="-939.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeLessThan</text>
<text text-anchor="middle" x="643.8203" y="-929.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.1%)</text>
<text text-anchor="middle" x="643.8203" y="-919.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.25s(1.28%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N49 -->
<g id="edge60" class="edge">
<title>N12&#45;&gt;N49</title>
<g id="a_edge60"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeLessThan (0.25s)">
<path fill="none" stroke="#000000" d="M901.1812,-1017.9703C854.2121,-1003.0492 792.3728,-983.1956 737.8203,-965 728.1381,-961.7706 717.9156,-958.2998 707.9186,-954.8713"/>
<polygon fill="#000000" stroke="#000000" points="709.0225,-951.5498 698.4278,-951.6064 706.7454,-958.1691 709.0225,-951.5498"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeLessThan (0.25s)">
<text text-anchor="middle" x="846.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N5 -->
<g id="edge26" class="edge">
<title>N13&#45;&gt;N5</title>
<g id="a_edge26"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.89s)">
<path fill="none" stroke="#000000" d="M1187.555,-1016.1878C1173.8531,-946.0928 1140.2724,-743.8151 1171.8203,-580 1179.439,-540.4396 1203.2303,-501.6815 1224.7092,-473.2042"/>
<polygon fill="#000000" stroke="#000000" points="1227.6411,-475.1342 1230.9846,-465.0807 1222.1014,-470.8548 1227.6411,-475.1342"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.89s)">
<text text-anchor="middle" x="1176.5444" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.89s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.memmove (0.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1056.5438,-44 927.0969,-44 927.0969,-6 1056.5438,-6 1056.5438,-44"/>
<text text-anchor="middle" x="991.8203" y="-28" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="991.8203" y="-13" font-family="Times,serif" font-size="15.00" fill="#000000">0.45s(2.31%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N32 -->
<g id="edge102" class="edge">
<title>N13&#45;&gt;N32</title>
<g id="a_edge102"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.07s)">
<path fill="none" stroke="#000000" d="M1182.8232,-1016.3092C1177.2408,-1001.5372 1170.4908,-982.4122 1165.8203,-965 1124.4701,-810.8419 1195.5016,-739.7484 1099.8203,-612 1070.4012,-572.7212 1029.7413,-602.0437 1001.3721,-562 982.7113,-535.66 991.8203,-522.2804 991.8203,-490 991.8203,-490 991.8203,-490 991.8203,-122 991.8203,-99.3709 991.8203,-73.7722 991.8203,-54.5563"/>
<polygon fill="#000000" stroke="#000000" points="995.3204,-54.3242 991.8203,-44.3242 988.3204,-54.3243 995.3204,-54.3242"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.07s)">
<text text-anchor="middle" x="1018.5444" y="-534.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="strings.ContainsRune (0.96s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2442.4064,-956 2315.2342,-956 2315.2342,-909 2442.4064,-909 2442.4064,-956"/>
<text text-anchor="middle" x="2378.8203" y="-941.6" font-family="Times,serif" font-size="13.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="2378.8203" y="-928.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.23s(1.18%)</text>
<text text-anchor="middle" x="2378.8203" y="-915.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.96s(4.93%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N19 -->
<g id="edge37" class="edge">
<title>N14&#45;&gt;N19</title>
<g id="a_edge37"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.51s)">
<path fill="none" stroke="#000000" d="M2261.0937,-1020.9979C2283.1315,-1004.4316 2314.4521,-980.8871 2339.2479,-962.2475"/>
<polygon fill="#000000" stroke="#000000" points="2341.4937,-964.938 2347.384,-956.1314 2337.2875,-959.3426 2341.4937,-964.938"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.51s)">
<text text-anchor="middle" x="2326.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.51s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="strconv.Atoi (0.72s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2297.0327,-951.5 2216.6079,-951.5 2216.6079,-913.5 2297.0327,-913.5 2297.0327,-951.5"/>
<text text-anchor="middle" x="2256.8203" y="-939.5" font-family="Times,serif" font-size="10.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="2256.8203" y="-929.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.21%)</text>
<text text-anchor="middle" x="2256.8203" y="-919.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.72s(3.70%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N24 -->
<g id="edge31" class="edge">
<title>N14&#45;&gt;N24</title>
<g id="a_edge31"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.72s)">
<path fill="none" stroke="#000000" d="M2244.4292,-1020.725C2247.6922,-1013.4092 2250.9216,-1005.0105 2252.8203,-997 2255.5068,-985.666 2256.6722,-972.9167 2257.1084,-961.7641"/>
<polygon fill="#000000" stroke="#000000" points="2260.6098,-961.7331 2257.329,-951.659 2253.6114,-961.5802 2260.6098,-961.7331"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.72s)">
<text text-anchor="middle" x="2271.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.72s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N6 -->
<g id="edge21" class="edge">
<title>N15&#45;&gt;N6</title>
<g id="a_edge21"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.17s)">
<path fill="none" stroke="#000000" d="M1280.1916,-1019.3599C1253.3716,-1007.7359 1226.3951,-990.4265 1210.8203,-965 1195.7305,-940.3653 1208.0113,-928.752 1210.8203,-900 1217.2954,-833.723 1229.6647,-818.8136 1239.8203,-753 1249.6454,-689.3282 1257.0986,-614.4308 1260.9342,-572.105"/>
<polygon fill="#000000" stroke="#000000" points="1264.4266,-572.3445 1261.8306,-562.0727 1257.4544,-571.7214 1264.4266,-572.3445"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.17s)">
<text text-anchor="middle" x="1253.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.17s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N19 -->
<g id="edge42" class="edge">
<title>N16&#45;&gt;N19</title>
<g id="a_edge42"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.45s)">
<path fill="none" stroke="#000000" d="M2129.3136,-1019.2443C2137.1327,-1006.4643 2148.7172,-991.3412 2163.3721,-983 2218.8316,-951.4336 2244.3574,-982.1612 2305.8203,-965 2311.0815,-963.531 2316.4513,-961.745 2321.7717,-959.7744"/>
<polygon fill="#000000" stroke="#000000" points="2323.2271,-962.9632 2331.2611,-956.0562 2320.6734,-956.4457 2323.2271,-962.9632"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.45s)">
<text text-anchor="middle" x="2179.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.45s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="strconv.atof64 (0.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2128.4752,-954.5 2035.1654,-954.5 2035.1654,-910.5 2128.4752,-910.5 2128.4752,-954.5"/>
<text text-anchor="middle" x="2081.8203" y="-940.9" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="2081.8203" y="-928.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.14s(0.72%)</text>
<text text-anchor="middle" x="2081.8203" y="-916.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.64s(3.29%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N27 -->
<g id="edge34" class="edge">
<title>N16&#45;&gt;N27</title>
<g id="a_edge34"><a xlink:title="main.tryParseFloat ... strconv.atof64 (0.64s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2110.5352,-1019.4422C2105.314,-1003.6338 2098.2019,-982.0997 2092.3621,-964.4181"/>
<polygon fill="#000000" stroke="#000000" points="2095.5542,-962.9228 2089.0946,-954.525 2088.9074,-965.1182 2095.5542,-962.9228"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="main.tryParseFloat ... strconv.atof64 (0.64s)">
<text text-anchor="middle" x="2119.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.64s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.mach_semaphore_signal (1.02s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2674.2504,-47 2419.3903,-47 2419.3903,-3 2674.2504,-3 2674.2504,-47"/>
<text text-anchor="middle" x="2546.8203" y="-28.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2546.8203" y="-10.6" font-family="Times,serif" font-size="18.00" fill="#000000">1.02s(5.24%)</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="strings.IndexRune (0.73s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2434.2813,-850 2323.3594,-850 2323.3594,-803 2434.2813,-803 2434.2813,-850"/>
<text text-anchor="middle" x="2378.8203" y="-835.6" font-family="Times,serif" font-size="13.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="2378.8203" y="-822.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.23s(1.18%)</text>
<text text-anchor="middle" x="2378.8203" y="-809.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.73s(3.75%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N23 -->
<g id="edge30" class="edge">
<title>N19&#45;&gt;N23</title>
<g id="a_edge30"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.73s)">
<path fill="none" stroke="#000000" d="M2378.8203,-908.9752C2378.8203,-894.8019 2378.8203,-876.5051 2378.8203,-860.7473"/>
<polygon fill="#000000" stroke="#000000" points="2382.3204,-860.3256 2378.8203,-850.3256 2375.3204,-860.3257 2382.3204,-860.3256"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.73s)">
<text text-anchor="middle" x="2395.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.73s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N7 -->
<g id="edge49" class="edge">
<title>N21&#45;&gt;N7</title>
<g id="a_edge49"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.35s)">
<path fill="none" stroke="#000000" d="M2468.3527,-1017.5644C2471.2056,-1016.6735 2474.037,-1015.8144 2476.8203,-1015 2510.551,-1005.1308 2527.4472,-1020.2297 2553.8203,-997 2576.7731,-976.783 2577.8203,-963.0869 2577.8203,-932.5 2577.8203,-932.5 2577.8203,-932.5 2577.8203,-778 2577.8203,-692.0003 2546.8203,-672.9997 2546.8203,-587 2546.8203,-587 2546.8203,-587 2546.8203,-319 2546.8203,-298.6061 2546.8203,-275.837 2546.8203,-257.3316"/>
<polygon fill="#000000" stroke="#000000" points="2550.3204,-257.2559 2546.8203,-247.256 2543.3204,-257.256 2550.3204,-257.2559"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.35s)">
<text text-anchor="middle" x="2571.5444" y="-629.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N32 -->
<g id="edge104" class="edge">
<title>N21&#45;&gt;N32</title>
<g id="a_edge104"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.05s)">
<path fill="none" stroke="#000000" d="M2446.2041,-1014.6599C2463.5688,-1001.8312 2481.9052,-984.9074 2492.8203,-965 2548.4848,-863.4771 2576.3538,-807.5946 2520.8203,-706 2218.5742,-153.0624 1331.2525,-48.2416 1066.9447,-29.1135"/>
<polygon fill="#000000" stroke="#000000" points="1066.9089,-25.6025 1056.6879,-28.3919 1066.4176,-32.5852 1066.9089,-25.6025"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.05s)">
<text text-anchor="middle" x="2436.5444" y="-534.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N7 -->
<g id="edge40" class="edge">
<title>N22&#45;&gt;N7</title>
<g id="a_edge40"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.47s)">
<path fill="none" stroke="#000000" d="M2572.9431,-1017.8117C2579.8385,-1011.6163 2586.6088,-1004.5399 2591.8203,-997 2609.2116,-971.8386 2615.8203,-963.0869 2615.8203,-932.5 2615.8203,-932.5 2615.8203,-932.5 2615.8203,-319 2615.8203,-294.7379 2601.6034,-272.2067 2586.0762,-254.834"/>
<polygon fill="#000000" stroke="#000000" points="2588.3057,-252.097 2578.8963,-247.2273 2583.2152,-256.9019 2588.3057,-252.097"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.47s)">
<text text-anchor="middle" x="2632.5444" y="-629.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.47s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.indexbytebody (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2268.0725,-747.5 2121.5681,-747.5 2121.5681,-711.5 2268.0725,-711.5 2268.0725,-747.5"/>
<text text-anchor="middle" x="2194.8203" y="-732.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.indexbytebody</text>
<text text-anchor="middle" x="2194.8203" y="-718.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.31s(1.59%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N43 -->
<g id="edge53" class="edge">
<title>N23&#45;&gt;N43</title>
<g id="a_edge53"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.31s)">
<path fill="none" stroke="#000000" d="M2333.8088,-802.7711C2304.6241,-787.3857 2266.8157,-767.4541 2238.0015,-752.264"/>
<polygon fill="#000000" stroke="#000000" points="2239.4629,-749.0779 2228.9846,-747.5105 2236.1985,-755.2701 2239.4629,-749.0779"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.31s)">
<text text-anchor="middle" x="2314.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="strings.IndexByte (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2511.8931,-747.5 2403.7475,-747.5 2403.7475,-711.5 2511.8931,-711.5 2511.8931,-747.5"/>
<text text-anchor="middle" x="2457.8203" y="-732.1" font-family="Times,serif" font-size="13.00" fill="#000000">strings.IndexByte</text>
<text text-anchor="middle" x="2457.8203" y="-719.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.19s(0.98%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N58 -->
<g id="edge71" class="edge">
<title>N23&#45;&gt;N58</title>
<g id="a_edge71"><a xlink:title="strings.IndexRune &#45;&gt; strings.IndexByte (0.19s)">
<path fill="none" stroke="#000000" d="M2398.3484,-802.5225C2409.8834,-788.3592 2424.5021,-770.4097 2436.3591,-755.8512"/>
<polygon fill="#000000" stroke="#000000" points="2439.3758,-757.6894 2442.977,-747.7254 2433.9481,-753.269 2439.3758,-757.6894"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; strings.IndexByte (0.19s)">
<text text-anchor="middle" x="2439.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="strconv.ParseInt (0.68s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2261.9459,-850 2161.6947,-850 2161.6947,-803 2261.9459,-803 2261.9459,-850"/>
<text text-anchor="middle" x="2211.8203" y="-835.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="2211.8203" y="-822.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.22s(1.13%)</text>
<text text-anchor="middle" x="2211.8203" y="-809.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.68s(3.49%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N25 -->
<g id="edge32" class="edge">
<title>N24&#45;&gt;N25</title>
<g id="a_edge32"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.68s)">
<path fill="none" stroke="#000000" d="M2248.5666,-913.058C2242.2296,-898.1309 2233.3314,-877.1707 2225.8785,-859.6149"/>
<polygon fill="#000000" stroke="#000000" points="2229.0417,-858.1091 2221.9122,-850.272 2222.5983,-860.8446 2229.0417,-858.1091"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.68s)">
<text text-anchor="middle" x="2250.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.68s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="strconv.ParseUint (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2103.1934,-751.5 2002.4472,-751.5 2002.4472,-707.5 2103.1934,-707.5 2103.1934,-751.5"/>
<text text-anchor="middle" x="2052.8203" y="-737.9" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="2052.8203" y="-725.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.15s(0.77%)</text>
<text text-anchor="middle" x="2052.8203" y="-713.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.42s(2.16%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N34 -->
<g id="edge44" class="edge">
<title>N25&#45;&gt;N34</title>
<g id="a_edge44"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.42s)">
<path fill="none" stroke="#000000" d="M2172.9245,-802.7711C2150.2614,-788.9452 2121.5804,-771.448 2097.9296,-757.0195"/>
<polygon fill="#000000" stroke="#000000" points="2099.4942,-753.8742 2089.1346,-751.654 2095.8486,-759.8499 2099.4942,-753.8742"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.42s)">
<text text-anchor="middle" x="2158.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N53 -->
<g id="edge107" class="edge">
<title>N25&#45;&gt;N53</title>
<g id="a_edge107"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.04s)">
<path fill="none" stroke="#000000" d="M2197.1159,-802.9557C2192.4546,-792.2655 2190.1638,-780.0241 2197.3721,-771 2218.203,-744.9217 2238.7598,-760.7479 2275.7166,-752.7417"/>
<polygon fill="#000000" stroke="#000000" points="2276.7077,-756.0999 2285.4759,-750.1527 2274.9128,-749.334 2276.7077,-756.0999"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; runtime.ifaceeq (0.04s)">
<text text-anchor="middle" x="2213.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N44 -->
<g id="edge90" class="edge">
<title>N26&#45;&gt;N44</title>
<g id="a_edge90"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.11s)">
<path fill="none" stroke="#000000" d="M775.319,-911.9614C761.0555,-907.2609 745.5193,-902.8221 730.8203,-900 597.9283,-874.4854 557.0814,-918.8798 426.8848,-882 414.233,-878.4162 413.2081,-872.4106 400.8203,-868 363.87,-854.8442 350.0843,-860.9597 308.3005,-849.8018"/>
<polygon fill="#000000" stroke="#000000" points="309.2063,-846.4207 298.6303,-847.0522 307.2918,-853.1538 309.2063,-846.4207"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.11s)">
<text text-anchor="middle" x="444.2881" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="main.(*Integer).Add (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="814.7935,-844.5 724.8472,-844.5 724.8472,-808.5 814.7935,-808.5 814.7935,-844.5"/>
<text text-anchor="middle" x="769.8203" y="-832.8" font-family="Times,serif" font-size="9.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="769.8203" y="-823.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.051%)</text>
<text text-anchor="middle" x="769.8203" y="-814.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.20s(1.03%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N54 -->
<g id="edge67" class="edge">
<title>N26&#45;&gt;N54</title>
<g id="a_edge67"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.20s)">
<path fill="none" stroke="#000000" d="M820.377,-911.9955C814.7964,-899.0861 807.0193,-882.2327 798.8203,-868 795.9684,-863.0494 792.6952,-857.9373 789.3984,-853.065"/>
<polygon fill="#000000" stroke="#000000" points="792.115,-850.8416 783.5247,-844.6402 786.3728,-854.8451 792.115,-850.8416"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.20s)">
<text text-anchor="middle" x="823.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="main.(*Integer).Negate (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="942.6068,-845.5 833.0338,-845.5 833.0338,-807.5 942.6068,-807.5 942.6068,-845.5"/>
<text text-anchor="middle" x="887.8203" y="-833.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="887.8203" y="-823.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.1%)</text>
<text text-anchor="middle" x="887.8203" y="-813.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(0.92%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N59 -->
<g id="edge72" class="edge">
<title>N26&#45;&gt;N59</title>
<g id="a_edge72"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.18s)">
<path fill="none" stroke="#000000" d="M840.3362,-911.8105C849.4174,-895.495 862.1755,-872.5737 872.1807,-854.5982"/>
<polygon fill="#000000" stroke="#000000" points="875.3226,-856.1501 877.1278,-845.7102 869.2062,-852.7457 875.3226,-856.1501"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.18s)">
<text text-anchor="middle" x="880.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="main.(*machine).popValue (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="706.7754,-844.5 560.8652,-844.5 560.8652,-808.5 706.7754,-808.5 706.7754,-844.5"/>
<text text-anchor="middle" x="633.8203" y="-828.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="633.8203" y="-816.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.13s(0.67%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N69 -->
<g id="edge115" class="edge">
<title>N26&#45;&gt;N69</title>
<g id="a_edge115"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M801.3853,-911.7079C779.82,-895.5802 751.3946,-874.8548 738.8203,-868 725.4085,-860.6886 710.4321,-853.9829 696.0865,-848.1916"/>
<polygon fill="#000000" stroke="#000000" points="697.3601,-844.9316 686.7732,-844.5208 694.7932,-851.444 697.3601,-844.9316"/>
</a>
</g>
<g id="a_edge115&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="775.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.convI2I (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="391.0526,-844.5 316.588,-844.5 316.588,-808.5 391.0526,-808.5 391.0526,-844.5"/>
<text text-anchor="middle" x="353.8203" y="-832.8" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="353.8203" y="-823.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.051%)</text>
<text text-anchor="middle" x="353.8203" y="-814.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.11s(0.56%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N72 -->
<g id="edge100" class="edge">
<title>N26&#45;&gt;N72</title>
<g id="a_edge100"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.convI2I (0.08s)">
<path fill="none" stroke="#000000" d="M772.6629,-911.9762C750.2237,-903.3296 724.313,-892.7791 701.3721,-882 689.6521,-876.4932 688.2538,-871.6182 675.8203,-868 557.789,-833.6528 518.3361,-882.6363 399.8203,-850 398.1262,-849.5335 396.422,-849.0007 394.7191,-848.4146"/>
<polygon fill="#000000" stroke="#000000" points="395.6457,-845.0161 385.0605,-844.5635 393.0531,-851.5183 395.6457,-845.0161"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.convI2I (0.08s)">
<text text-anchor="middle" x="718.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N6 -->
<g id="edge63" class="edge">
<title>N27&#45;&gt;N6</title>
<g id="a_edge63"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.24s)">
<path fill="none" stroke="#000000" d="M2034.8963,-916.4089C1997.3073,-900.191 1950.8203,-871.1153 1950.8203,-826.5 1950.8203,-826.5 1950.8203,-826.5 1950.8203,-634 1950.8203,-571.8251 1503.6769,-547.8133 1330.8661,-540.855"/>
<polygon fill="#000000" stroke="#000000" points="1330.7555,-537.348 1320.6249,-540.4497 1330.4786,-544.3425 1330.7555,-537.348"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.24s)">
<text text-anchor="middle" x="1967.5444" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N64 -->
<g id="edge96" class="edge">
<title>N27&#45;&gt;N64</title>
<g id="a_edge96"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.10s)">
<path fill="none" stroke="#000000" d="M2045.2885,-910.4885C2037.4315,-906.4871 2029.0192,-902.7244 2020.8203,-900 1970.7058,-883.3479 1946.6618,-912.245 1903.3721,-882 1893.738,-875.269 1886.8238,-864.4881 1882.0372,-854.2106"/>
<polygon fill="#000000" stroke="#000000" points="1885.1415,-852.5589 1878.0807,-844.6598 1878.6744,-855.238 1885.1415,-852.5589"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.duffzero (0.10s)">
<text text-anchor="middle" x="1919.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N7 -->
<g id="edge38" class="edge">
<title>N29&#45;&gt;N7</title>
<g id="a_edge38"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.49s)">
<path fill="none" stroke="#000000" d="M2391.4909,-300.8793C2409.4826,-290.0951 2433.0155,-276.3472 2454.3721,-265 2462.7779,-260.5338 2471.7026,-255.9932 2480.5634,-251.6038"/>
<polygon fill="#000000" stroke="#000000" points="2482.3156,-254.6427 2489.7496,-247.0938 2479.2306,-248.3591 2482.3156,-254.6427"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.49s)">
<text text-anchor="middle" x="2470.5444" y="-267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.49s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N32 -->
<g id="edge88" class="edge">
<title>N31&#45;&gt;N32</title>
<g id="a_edge88"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.12s)">
<path fill="none" stroke="#000000" d="M2234.9791,-99.9349C2225.8524,-94.2506 2216.1699,-88.0314 2207.3721,-82 2198.8524,-76.1592 2198.5545,-71.4563 2188.8203,-68 2135.9399,-49.2235 1321.0119,-31.5361 1066.8978,-26.4537"/>
<polygon fill="#000000" stroke="#000000" points="1066.7253,-22.9496 1056.6575,-26.2496 1066.5857,-29.9482 1066.7253,-22.9496"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.12s)">
<text text-anchor="middle" x="2223.5444" y="-70.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.newdefer (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2271.8613,-43 2163.7793,-43 2163.7793,-7 2271.8613,-7 2271.8613,-43"/>
<text text-anchor="middle" x="2217.8203" y="-27.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2217.8203" y="-14.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.24s(1.23%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N51 -->
<g id="edge62" class="edge">
<title>N31&#45;&gt;N51</title>
<g id="a_edge62"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.24s)">
<path fill="none" stroke="#000000" d="M2261.3916,-99.9401C2256.5656,-90.0556 2250.6248,-78.3244 2244.8203,-68 2241.8315,-62.6837 2238.486,-57.1002 2235.1951,-51.7823"/>
<polygon fill="#000000" stroke="#000000" points="2238.0687,-49.7771 2229.7806,-43.1772 2232.1439,-53.5051 2238.0687,-49.7771"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.24s)">
<text text-anchor="middle" x="2268.5444" y="-70.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime._System (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2518.5902,-337 2445.0504,-337 2445.0504,-301 2518.5902,-301 2518.5902,-337"/>
<text text-anchor="middle" x="2481.8203" y="-320.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="2481.8203" y="-312.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.42s(2.16%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N7 -->
<g id="edge43" class="edge">
<title>N33&#45;&gt;N7</title>
<g id="a_edge43"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.42s)">
<path fill="none" stroke="#000000" d="M2485.2746,-300.9964C2487.9472,-289.9977 2492.3957,-275.9841 2499.3721,-265 2501.6199,-261.4608 2504.2137,-258.0122 2507.0058,-254.7025"/>
<polygon fill="#000000" stroke="#000000" points="2509.6497,-256.9976 2513.8111,-247.2542 2504.4819,-252.2759 2509.6497,-256.9976"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.42s)">
<text text-anchor="middle" x="2515.5444" y="-267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N6 -->
<g id="edge58" class="edge">
<title>N34&#45;&gt;N6</title>
<g id="a_edge58"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.27s)">
<path fill="none" stroke="#000000" d="M2046.9879,-707.2586C2036.738,-673.1465 2011.9658,-608.8375 1964.8203,-580 1911.5939,-547.443 1495.2312,-540.4176 1330.5422,-538.9094"/>
<polygon fill="#000000" stroke="#000000" points="1330.5648,-535.4096 1320.5344,-538.8218 1330.5034,-542.4093 1330.5648,-535.4096"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.27s)">
<text text-anchor="middle" x="2042.5444" y="-629.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N11 -->
<g id="edge80" class="edge">
<title>N35&#45;&gt;N11</title>
<g id="a_edge80"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.15s)">
<path fill="none" stroke="#000000" d="M2950.3592,-1019.4422C2925.0446,-1005.292 2891.523,-986.5543 2862.0833,-970.0983"/>
<polygon fill="#000000" stroke="#000000" points="2863.5281,-966.8962 2853.0915,-965.0721 2860.1126,-973.0065 2863.5281,-966.8962"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.15s)">
<text text-anchor="middle" x="2925.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.stringiter2 (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3036.4693,-950.5 2931.1713,-950.5 2931.1713,-914.5 3036.4693,-914.5 3036.4693,-950.5"/>
<text text-anchor="middle" x="2983.8203" y="-934.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.stringiter2</text>
<text text-anchor="middle" x="2983.8203" y="-922.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.14s(0.72%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N68 -->
<g id="edge106" class="edge">
<title>N35&#45;&gt;N68</title>
<g id="a_edge106"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.04s)">
<path fill="none" stroke="#000000" d="M2988.6061,-1019.4422C2987.673,-1002.4898 2986.3774,-978.9529 2985.3695,-960.6434"/>
<polygon fill="#000000" stroke="#000000" points="2988.8587,-960.3489 2984.8142,-950.5565 2981.8693,-960.7337 2988.8587,-960.3489"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.04s)">
<text text-anchor="middle" x="3003.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.mapassign1 (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="235.3047,-656 122.3359,-656 122.3359,-612 235.3047,-612 235.3047,-656"/>
<text text-anchor="middle" x="178.8203" y="-642.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="178.8203" y="-630.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.13s(0.67%)</text>
<text text-anchor="middle" x="178.8203" y="-618.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.32s(1.64%)</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N41 -->
<g id="edge51" class="edge">
<title>N36&#45;&gt;N41</title>
<g id="a_edge51"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.32s)">
<path fill="none" stroke="#000000" d="M88.3623,-710.326C89.0152,-698.7695 91.577,-684.3368 99.3721,-674 103.4327,-668.6154 108.42,-663.9038 113.8996,-659.7924"/>
<polygon fill="#000000" stroke="#000000" points="115.8852,-662.6749 122.2296,-654.1896 111.9785,-656.8665 115.8852,-662.6749"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.32s)">
<text text-anchor="middle" x="116.5444" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N57 -->
<g id="edge117" class="edge">
<title>N36&#45;&gt;N57</title>
<g id="a_edge117"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M107.0425,-710.3545C120.1012,-697.8787 138.7817,-682.408 158.3721,-674 179.229,-665.0485 312.3822,-649.064 390.6301,-640.2546"/>
<polygon fill="#000000" stroke="#000000" points="391.2743,-643.7044 400.8224,-639.1127 390.4949,-636.7479 391.2743,-643.7044"/>
</a>
</g>
<g id="a_edge117&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="175.5444" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.(*mcentral).cacheSpan (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2833.8192,-44 2691.8214,-44 2691.8214,-6 2833.8192,-6 2833.8192,-44"/>
<text text-anchor="middle" x="2762.8203" y="-32" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="2762.8203" y="-22" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.21%)</text>
<text text-anchor="middle" x="2762.8203" y="-12" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.36s(1.85%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N38 -->
<g id="edge48" class="edge">
<title>N37&#45;&gt;N38</title>
<g id="a_edge48"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.36s)">
<path fill="none" stroke="#000000" d="M2723.0368,-103.755C2730.221,-89.5334 2740.3242,-69.5331 2748.5513,-53.2468"/>
<polygon fill="#000000" stroke="#000000" points="2751.7573,-54.6626 2753.1422,-44.1586 2745.5092,-51.5063 2751.7573,-54.6626"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.36s)">
<text text-anchor="middle" x="2755.5444" y="-70.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N32 -->
<g id="edge65" class="edge">
<title>N39&#45;&gt;N32</title>
<g id="a_edge65"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.21s)">
<path fill="none" stroke="#000000" d="M897.8338,-516.4819C906.0191,-494.472 916.8203,-459.4666 916.8203,-428 916.8203,-428 916.8203,-428 916.8203,-122 916.8203,-93.6234 937.1566,-68.4978 956.6501,-50.9318"/>
<polygon fill="#000000" stroke="#000000" points="959.0126,-53.5164 964.319,-44.3462 954.4522,-48.2058 959.0126,-53.5164"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.21s)">
<text text-anchor="middle" x="933.5444" y="-267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.freedefer (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2965.37,-50 2852.2706,-50 2852.2706,0 2965.37,0 2965.37,-50"/>
<text text-anchor="middle" x="2908.8203" y="-34.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="2908.8203" y="-20.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.28s(1.44%)</text>
<text text-anchor="middle" x="2908.8203" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.29s(1.49%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N45 -->
<g id="edge55" class="edge">
<title>N40&#45;&gt;N45</title>
<g id="a_edge55"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.29s)">
<path fill="none" stroke="#000000" d="M2885.1825,-101.4288C2888.9194,-89.3462 2893.7413,-73.7554 2898.0544,-59.8096"/>
<polygon fill="#000000" stroke="#000000" points="2901.4713,-60.607 2901.0824,-50.0193 2894.7839,-58.5387 2901.4713,-60.607"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.29s)">
<text text-anchor="middle" x="2910.5444" y="-70.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N39 -->
<g id="edge121" class="edge">
<title>N41&#45;&gt;N39</title>
<g id="a_edge121"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.02s)">
<path fill="none" stroke="#000000" d="M235.424,-626.3864C362.0705,-609.3516 668.4148,-568.1461 812.0631,-548.8244"/>
<polygon fill="#000000" stroke="#000000" points="812.6757,-552.2736 822.1199,-547.4717 811.7425,-545.3361 812.6757,-552.2736"/>
</a>
</g>
<g id="a_edge121&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.02s)">
<text text-anchor="middle" x="593.5444" y="-582.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.newarray (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1130.1213,-557.5 1043.5193,-557.5 1043.5193,-519.5 1130.1213,-519.5 1130.1213,-557.5"/>
<text text-anchor="middle" x="1086.8203" y="-545.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="1086.8203" y="-535.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.1%)</text>
<text text-anchor="middle" x="1086.8203" y="-525.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.16s(0.82%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N63 -->
<g id="edge79" class="edge">
<title>N41&#45;&gt;N63</title>
<g id="a_edge79"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.16s)">
<path fill="none" stroke="#000000" d="M235.7057,-627.3432C278.5693,-622.5172 338.82,-616.1374 391.8203,-612 533.3806,-600.9492 891.1091,-596.5983 1028.8203,-562 1030.4865,-561.5814 1032.1681,-561.1248 1033.8569,-560.6366"/>
<polygon fill="#000000" stroke="#000000" points="1035.0908,-563.9167 1043.5503,-557.538 1032.9594,-557.2491 1035.0908,-563.9167"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.16s)">
<text text-anchor="middle" x="927.5444" y="-582.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N68 -->
<g id="edge93" class="edge">
<title>N42&#45;&gt;N68</title>
<g id="a_edge93"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.10s)">
<path fill="none" stroke="#000000" d="M2826.0092,-1019.4234C2830.5615,-1007.0336 2837.9763,-992.2514 2849.3721,-983 2873.4598,-963.4449 2887.7419,-975.8197 2916.8203,-965 2924.5731,-962.1153 2932.6358,-958.6423 2940.3693,-955.0554"/>
<polygon fill="#000000" stroke="#000000" points="2942.0765,-958.1189 2949.5963,-950.6554 2939.0635,-951.8006 2942.0765,-958.1189"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.10s)">
<text text-anchor="middle" x="2865.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.getitab (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="366.9459,-753 266.6947,-753 266.6947,-706 366.9459,-706 366.9459,-753"/>
<text text-anchor="middle" x="316.8203" y="-738.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="316.8203" y="-725.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.22s(1.13%)</text>
<text text-anchor="middle" x="316.8203" y="-712.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.29s(1.49%)</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N46 -->
<g id="edge70" class="edge">
<title>N44&#45;&gt;N46</title>
<g id="a_edge70"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.19s)">
<path fill="none" stroke="#000000" d="M265.0236,-804.4892C273.7843,-791.8059 284.953,-775.6362 294.6748,-761.5614"/>
<polygon fill="#000000" stroke="#000000" points="297.7031,-763.3356 300.5066,-753.1184 291.9434,-759.3573 297.7031,-763.3356"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.19s)">
<text text-anchor="middle" x="304.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N44 -->
<g id="edge101" class="edge">
<title>N48&#45;&gt;N44</title>
<g id="a_edge101"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.07s)">
<path fill="none" stroke="#000000" d="M395.7238,-924.1461C341.0517,-916.476 273.8641,-903.0566 255.3721,-882 249.7845,-875.6375 247.3663,-867.1459 246.6044,-858.7222"/>
<polygon fill="#000000" stroke="#000000" points="250.1017,-858.5535 246.3946,-848.6284 243.1033,-858.699 250.1017,-858.5535"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.07s)">
<text text-anchor="middle" x="272.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="main.(*Integer).Multiply (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="504.8008,-844.5 408.8398,-844.5 408.8398,-808.5 504.8008,-808.5 504.8008,-844.5"/>
<text text-anchor="middle" x="456.8203" y="-828.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="456.8203" y="-820.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(0.72%)</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N65 -->
<g id="edge82" class="edge">
<title>N48&#45;&gt;N65</title>
<g id="a_edge82"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*Integer).Multiply (0.14s)">
<path fill="none" stroke="#000000" d="M469.0691,-913.058C466.7642,-896.7702 463.4429,-873.2993 460.8401,-854.9062"/>
<polygon fill="#000000" stroke="#000000" points="464.2704,-854.1669 459.4037,-844.756 457.3394,-855.1478 464.2704,-854.1669"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; main.(*Integer).Multiply (0.14s)">
<text text-anchor="middle" x="481.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N72 -->
<g id="edge110" class="edge">
<title>N48&#45;&gt;N72</title>
<g id="a_edge110"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<path fill="none" stroke="#000000" d="M410.0396,-913.4774C394.1618,-905.9401 378.4534,-895.7043 367.3721,-882 361.1434,-874.2971 357.7122,-864.1571 355.8436,-854.654"/>
<polygon fill="#000000" stroke="#000000" points="359.302,-854.115 354.3709,-844.7376 352.378,-855.1433 359.302,-854.115"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<text text-anchor="middle" x="384.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N10 -->
<g id="edge105" class="edge">
<title>N49&#45;&gt;N10</title>
<g id="a_edge105"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.convT2I (0.04s)">
<path fill="none" stroke="#000000" d="M613.2847,-913.3249C578.1456,-888.7155 528.1414,-844.2615 551.8203,-803 617.6167,-688.3466 691.4412,-705.5176 819.8203,-674 875.043,-660.4426 939.0106,-649.4413 984.2358,-642.4326"/>
<polygon fill="#000000" stroke="#000000" points="984.8089,-645.8857 994.1635,-640.9115 983.7487,-638.9664 984.8089,-645.8857"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.convT2I (0.04s)">
<text text-anchor="middle" x="589.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N44 -->
<g id="edge97" class="edge">
<title>N49&#45;&gt;N44</title>
<g id="a_edge97"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.assertI2I (0.09s)">
<path fill="none" stroke="#000000" d="M599.8404,-913.3414C586.2827,-908.1831 571.148,-903.1623 556.8203,-900 455.2033,-877.5717 420.7021,-918.8228 323.3721,-882 307.5394,-876.01 292.2283,-865.489 279.713,-855.2063"/>
<polygon fill="#000000" stroke="#000000" points="281.7885,-852.3758 271.9149,-848.5335 277.2374,-857.6944 281.7885,-852.3758"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.assertI2I (0.09s)">
<text text-anchor="middle" x="340.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N69 -->
<g id="edge114" class="edge">
<title>N49&#45;&gt;N69</title>
<g id="a_edge114"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M641.9862,-913.058C640.4496,-896.7702 638.2353,-873.2993 636.5001,-854.9062"/>
<polygon fill="#000000" stroke="#000000" points="639.9664,-854.383 635.5426,-844.756 632.9974,-855.0405 639.9664,-854.383"/>
</a>
</g>
<g id="a_edge114&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="655.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="main.Integer.Add (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="812.8057,-748.5 726.835,-748.5 726.835,-710.5 812.8057,-710.5 812.8057,-748.5"/>
<text text-anchor="middle" x="769.8203" y="-736.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="769.8203" y="-726.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.21%)</text>
<text text-anchor="middle" x="769.8203" y="-716.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.19s(0.98%)</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N56 -->
<g id="edge69" class="edge">
<title>N54&#45;&gt;N56</title>
<g id="a_edge69"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.19s)">
<path fill="none" stroke="#000000" d="M769.8203,-808.255C769.8203,-794.2992 769.8203,-774.7787 769.8203,-758.6639"/>
<polygon fill="#000000" stroke="#000000" points="773.3204,-758.6586 769.8203,-748.6586 766.3204,-758.6587 773.3204,-758.6586"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.19s)">
<text text-anchor="middle" x="786.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N11 -->
<g id="edge98" class="edge">
<title>N55&#45;&gt;N11</title>
<g id="a_edge98"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.09s)">
<path fill="none" stroke="#000000" d="M2027.4508,-1020.9783C2036.9701,-1018.7918 2046.5925,-1016.7362 2055.8203,-1015 2117.9062,-1003.3185 2138.3105,-1020.8267 2196.8203,-997 2206.387,-993.1042 2205.68,-986.5726 2215.3721,-983 2278.1303,-959.8669 2449.1926,-970.8718 2515.8203,-965 2566.8401,-960.5037 2622.9579,-954.2263 2671.4028,-948.3861"/>
<polygon fill="#000000" stroke="#000000" points="2672.1134,-951.8257 2681.6194,-947.1473 2671.2708,-944.8766 2672.1134,-951.8257"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.09s)">
<text text-anchor="middle" x="2231.5444" y="-985.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N57 -->
<g id="edge112" class="edge">
<title>N55&#45;&gt;N57</title>
<g id="a_edge112"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1952.0907,-1020.9982C1954.288,-989.7335 1953.2342,-930.5566 1918.8203,-900 1875.9584,-861.9422 1461.066,-863.5546 1405.3721,-850 1329.7718,-831.6006 1313.8008,-816.8702 1242.8203,-785 1230.1277,-779.301 1227.7637,-776.1037 1214.8203,-771 1073.3986,-715.2359 1036.1264,-702.5908 886.8203,-674 751.5283,-648.0928 589.4657,-638.8423 505.158,-635.6331"/>
<polygon fill="#000000" stroke="#000000" points="505.1435,-632.1303 495.0222,-635.2623 504.8875,-639.1256 505.1435,-632.1303"/>
</a>
</g>
<g id="a_edge112&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="1422.5444" y="-822.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N10 -->
<g id="edge86" class="edge">
<title>N56&#45;&gt;N10</title>
<g id="a_edge86"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.12s)">
<path fill="none" stroke="#000000" d="M792.0056,-710.3178C807.1993,-698.1537 828.3362,-683.0561 849.3721,-674 892.5488,-655.4121 944.9473,-645.2618 984.3146,-639.8426"/>
<polygon fill="#000000" stroke="#000000" points="984.8256,-643.3056 994.2843,-638.5325 983.9135,-636.3653 984.8256,-643.3056"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.12s)">
<text text-anchor="middle" x="866.5444" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N57 -->
<g id="edge118" class="edge">
<title>N56&#45;&gt;N57</title>
<g id="a_edge118"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M726.7281,-716.7195C669.4687,-699.7373 568.1641,-669.692 504.6862,-650.8655"/>
<polygon fill="#000000" stroke="#000000" points="505.4182,-647.432 494.8357,-647.944 503.4277,-654.143 505.4182,-647.432"/>
</a>
</g>
<g id="a_edge118&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="645.5444" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N39 -->
<g id="edge87" class="edge">
<title>N57&#45;&gt;N39</title>
<g id="a_edge87"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.12s)">
<path fill="none" stroke="#000000" d="M495.015,-623.7798C570.8314,-607.3615 720.4932,-574.9518 811.9041,-555.1565"/>
<polygon fill="#000000" stroke="#000000" points="812.8991,-558.5222 821.9318,-552.9849 811.4175,-551.6808 812.8991,-558.5222"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.12s)">
<text text-anchor="middle" x="711.5444" y="-582.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N10 -->
<g id="edge75" class="edge">
<title>N59&#45;&gt;N10</title>
<g id="a_edge75"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.16s)">
<path fill="none" stroke="#000000" d="M889.0802,-807.4581C891.5279,-782.3576 898.6708,-737.6806 919.3721,-706 934.7761,-682.4262 960.787,-665.6029 984.9715,-654.1781"/>
<polygon fill="#000000" stroke="#000000" points="986.4409,-657.355 994.1251,-650.0609 983.5694,-650.971 986.4409,-657.355"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.16s)">
<text text-anchor="middle" x="936.5444" y="-725.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.makemap (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1543.5439,-847 1448.0968,-847 1448.0968,-806 1543.5439,-806 1543.5439,-847"/>
<text text-anchor="middle" x="1495.8203" y="-834.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="1495.8203" y="-823.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.36%)</text>
<text text-anchor="middle" x="1495.8203" y="-812.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.16s(0.82%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N62 -->
<g id="edge77" class="edge">
<title>N60&#45;&gt;N62</title>
<g id="a_edge77"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.16s)">
<path fill="none" stroke="#000000" d="M1539.0993,-913.058C1531.1595,-897.1783 1519.8058,-874.471 1510.7194,-856.2981"/>
<polygon fill="#000000" stroke="#000000" points="1513.8072,-854.6474 1506.2045,-847.2684 1507.5462,-857.7779 1513.8072,-854.6474"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.16s)">
<text text-anchor="middle" x="1539.5444" y="-870.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.schedule (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1817.5902,-1714 1744.0504,-1714 1744.0504,-1678 1817.5902,-1678 1817.5902,-1714"/>
<text text-anchor="middle" x="1780.8203" y="-1697.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="1780.8203" y="-1689.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.18s(0.92%)</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N6 -->
<g id="edge99" class="edge">
<title>N62&#45;&gt;N6</title>
<g id="a_edge99"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.09s)">
<path fill="none" stroke="#000000" d="M1479.1354,-805.7878C1439.0464,-756.0221 1337.0953,-629.4621 1289.2908,-570.1185"/>
<polygon fill="#000000" stroke="#000000" points="1291.9157,-567.7978 1282.9168,-562.2059 1286.4645,-572.1892 1291.9157,-567.7978"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.09s)">
<text text-anchor="middle" x="1399.5444" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N5 -->
<g id="edge85" class="edge">
<title>N63&#45;&gt;N5</title>
<g id="a_edge85"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.14s)">
<path fill="none" stroke="#000000" d="M1090.8211,-519.2612C1094.2,-507.3852 1100.1749,-492.6303 1110.3721,-483 1126.7712,-467.5125 1147.8335,-456.3375 1169.0656,-448.2908"/>
<polygon fill="#000000" stroke="#000000" points="1170.2513,-451.5839 1178.4881,-444.9202 1167.8935,-444.9929 1170.2513,-451.5839"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.14s)">
<text text-anchor="middle" x="1127.5444" y="-485.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="main.Integer.Multiply (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="491.0354,-747.5 404.6052,-747.5 404.6052,-711.5 491.0354,-711.5 491.0354,-747.5"/>
<text text-anchor="middle" x="447.8203" y="-731.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="447.8203" y="-723.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(0.72%)</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N67 -->
<g id="edge81" class="edge">
<title>N65&#45;&gt;N67</title>
<g id="a_edge81"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.14s)">
<path fill="none" stroke="#000000" d="M455.1275,-808.255C453.8076,-794.0291 451.9511,-774.021 450.4398,-757.7321"/>
<polygon fill="#000000" stroke="#000000" points="453.9145,-757.297 449.5056,-747.6631 446.9445,-757.9438 453.9145,-757.297"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.14s)">
<text text-anchor="middle" x="470.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N10 -->
<g id="edge116" class="edge">
<title>N66&#45;&gt;N10</title>
<g id="a_edge116"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.02s)">
<path fill="none" stroke="#000000" d="M1307.6829,-910.3561C1278.0079,-881.7988 1225.1478,-830.399 1181.3721,-785 1141.5862,-743.7387 1097.0048,-694.609 1069.42,-663.8549"/>
<polygon fill="#000000" stroke="#000000" points="1071.7263,-661.1838 1062.4477,-656.0692 1066.5116,-665.8536 1071.7263,-661.1838"/>
</a>
</g>
<g id="a_edge116&#45;label"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.02s)">
<text text-anchor="middle" x="1198.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N10 -->
<g id="edge91" class="edge">
<title>N67&#45;&gt;N10</title>
<g id="a_edge91"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.11s)">
<path fill="none" stroke="#000000" d="M474.6071,-711.4325C495.1006,-698.6077 524.5648,-682.2579 552.8848,-674 632.2344,-650.8622 872.0029,-639.838 983.9983,-635.8428"/>
<polygon fill="#000000" stroke="#000000" points="984.2335,-639.3368 994.1049,-635.489 983.9886,-632.3411 984.2335,-639.3368"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.11s)">
<text text-anchor="middle" x="570.2881" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N57 -->
<g id="edge119" class="edge">
<title>N67&#45;&gt;N57</title>
<g id="a_edge119"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M411.1972,-711.4712C396.6455,-701.6545 384.9274,-688.5503 392.3721,-674 394.7113,-669.4281 397.8436,-665.2591 401.4341,-661.4873"/>
<polygon fill="#000000" stroke="#000000" points="403.8083,-664.059 408.8156,-654.7221 399.0786,-658.8985 403.8083,-664.059"/>
</a>
</g>
<g id="a_edge119&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="409.5444" y="-676.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.(*mheap).alloc_m (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2401.7881,-43 2289.8525,-43 2289.8525,-7 2401.7881,-7 2401.7881,-43"/>
<text text-anchor="middle" x="2345.8203" y="-31.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="2345.8203" y="-22.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.051%)</text>
<text text-anchor="middle" x="2345.8203" y="-13.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.11s(0.56%)</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N71 -->
<g id="edge92" class="edge">
<title>N70&#45;&gt;N71</title>
<g id="a_edge92"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.11s)">
<path fill="none" stroke="#000000" d="M2404.2777,-103.755C2393.316,-88.9872 2377.7291,-67.9882 2365.4067,-51.3872"/>
<polygon fill="#000000" stroke="#000000" points="2368.0729,-49.1068 2359.3022,-43.1631 2362.4521,-53.2789 2368.0729,-49.1068"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.11s)">
<text text-anchor="middle" x="2402.2881" y="-70.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N46 -->
<g id="edge94" class="edge">
<title>N72&#45;&gt;N46</title>
<g id="a_edge94"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.10s)">
<path fill="none" stroke="#000000" d="M346.8609,-808.255C341.984,-795.4697 335.3257,-778.014 329.5167,-762.7852"/>
<polygon fill="#000000" stroke="#000000" points="332.6835,-761.2667 325.8493,-753.1707 326.1432,-763.7615 332.6835,-761.2667"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.10s)">
<text text-anchor="middle" x="354.5444" y="-773.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.goschedImpl (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1823.0276,-1882 1738.613,-1882 1738.613,-1846 1823.0276,-1846 1823.0276,-1882"/>
<text text-anchor="middle" x="1780.8203" y="-1865.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="1780.8203" y="-1857.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(0.51%)</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N61 -->
<g id="edge95" class="edge">
<title>N73&#45;&gt;N61</title>
<g id="a_edge95"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.10s)">
<path fill="none" stroke="#000000" d="M1780.8203,-1845.7012C1780.8203,-1816.4641 1780.8203,-1758.9945 1780.8203,-1724.3892"/>
<polygon fill="#000000" stroke="#000000" points="1784.3204,-1724.0219 1780.8203,-1714.0219 1777.3204,-1724.0219 1784.3204,-1724.0219"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.10s)">
<text text-anchor="middle" x="1797.5444" y="-1734.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="main.(*machine).executeString (18.68s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1738.2273,-1284 1621.4134,-1284 1621.4134,-1248 1738.2273,-1248 1738.2273,-1284"/>
<text text-anchor="middle" x="1679.8203" y="-1267.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).executeString</text>
<text text-anchor="middle" x="1679.8203" y="-1259.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 18.68s(95.94%)</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N1 -->
<g id="edge1" class="edge">
<title>N74&#45;&gt;N1</title>
<g id="a_edge1"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (18.68s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1679.8203,-1247.6793C1679.8203,-1236.8316 1679.8203,-1222.5069 1679.8203,-1208.4979"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1684.1954,-1208.4072 1679.8203,-1198.4072 1675.4454,-1208.4073 1684.1954,-1208.4072"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).executeString &#45;&gt; main.(*machine).execute (18.68s)">
<text text-anchor="middle" x="1700.0444" y="-1218.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 18.68s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="main.handleFlags (18.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1720.5902,-1370 1639.0505,-1370 1639.0505,-1334 1720.5902,-1334 1720.5902,-1370"/>
<text text-anchor="middle" x="1679.8203" y="-1353.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.handleFlags</text>
<text text-anchor="middle" x="1679.8203" y="-1345.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 18.65s(95.79%)</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N74 -->
<g id="edge2" class="edge">
<title>N75&#45;&gt;N74</title>
<g id="a_edge2"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (18.65s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1679.8203,-1333.7616C1679.8203,-1322.3597 1679.8203,-1307.4342 1679.8203,-1294.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1684.1954,-1294.2121 1679.8203,-1284.2121 1675.4454,-1294.2121 1684.1954,-1294.2121"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="main.handleFlags &#45;&gt; main.(*machine).executeString (18.65s)">
<text text-anchor="middle" x="1700.0444" y="-1304.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 18.65s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction (18.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1753.004,-1456 1606.6366,-1456 1606.6366,-1420 1753.004,-1420 1753.004,-1456"/>
<text text-anchor="middle" x="1679.8203" y="-1439.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.HandleAction</text>
<text text-anchor="middle" x="1679.8203" y="-1431.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 18.63s(95.69%)</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N75 -->
<g id="edge3" class="edge">
<title>N76&#45;&gt;N75</title>
<g id="a_edge3"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (18.63s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1679.8203,-1419.7616C1679.8203,-1408.3597 1679.8203,-1393.4342 1679.8203,-1380.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1684.1954,-1380.2121 1679.8203,-1370.2121 1675.4454,-1380.2121 1684.1954,-1380.2121"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.HandleAction &#45;&gt; main.handleFlags (18.63s)">
<text text-anchor="middle" x="1700.0444" y="-1390.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 18.63s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run (18.62s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1749.5705,-1542 1610.0701,-1542 1610.0701,-1506 1749.5705,-1506 1749.5705,-1542"/>
<text text-anchor="middle" x="1679.8203" y="-1525.6" font-family="Times,serif" font-size="8.00" fill="#000000">gopkg.in/urfave/cli%2ev1.(*App).Run</text>
<text text-anchor="middle" x="1679.8203" y="-1517.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 18.62s(95.63%)</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N76 -->
<g id="edge4" class="edge">
<title>N77&#45;&gt;N76</title>
<g id="a_edge4"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (18.62s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1679.8203,-1505.7616C1679.8203,-1494.3597 1679.8203,-1479.4342 1679.8203,-1466.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1684.1954,-1466.2121 1679.8203,-1456.2121 1675.4454,-1466.2121 1684.1954,-1466.2121"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="gopkg.in/urfave/cli%2ev1.(*App).Run &#45;&gt; gopkg.in/urfave/cli%2ev1.HandleAction (18.62s)">
<text text-anchor="middle" x="1700.0444" y="-1476.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 18.62s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="main.main (18.56s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1720.5902,-1628 1639.0505,-1628 1639.0505,-1592 1720.5902,-1592 1720.5902,-1628"/>
<text text-anchor="middle" x="1679.8203" y="-1611.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.main</text>
<text text-anchor="middle" x="1679.8203" y="-1603.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 18.56s(95.33%)</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N77 -->
<g id="edge5" class="edge">
<title>N78&#45;&gt;N77</title>
<g id="a_edge5"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (18.56s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1679.8203,-1591.7616C1679.8203,-1580.3597 1679.8203,-1565.4342 1679.8203,-1552.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1684.1954,-1552.2121 1679.8203,-1542.2121 1675.4454,-1552.2121 1684.1954,-1552.2121"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.main &#45;&gt; gopkg.in/urfave/cli%2ev1.(*App).Run (18.56s)">
<text text-anchor="middle" x="1700.0444" y="-1562.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 18.56s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N78 -->
<g id="edge7" class="edge">
<title>N79&#45;&gt;N78</title>
<g id="a_edge7"><a xlink:title="runtime.main &#45;&gt; main.main (18.41s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1679.8203,-1677.7616C1679.8203,-1666.3597 1679.8203,-1651.4342 1679.8203,-1638.494"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1684.1954,-1638.2121 1679.8203,-1628.2121 1675.4454,-1638.2121 1684.1954,-1638.2121"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="runtime.main &#45;&gt; main.main (18.41s)">
<text text-anchor="middle" x="1700.0444" y="-1648.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 18.41s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N18 -->
<g id="edge22" class="edge">
<title>N80&#45;&gt;N18</title>
<g id="a_edge22"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (1.02s)">
<path fill="none" stroke="#000000" d="M2546.8203,-103.755C2546.8203,-90.7348 2546.8203,-72.8709 2546.8203,-57.4479"/>
<polygon fill="#000000" stroke="#000000" points="2550.3204,-57.2499 2546.8203,-47.25 2543.3204,-57.25 2550.3204,-57.2499"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.mach_semrelease &#45;&gt; runtime.mach_semaphore_signal (1.02s)">
<text text-anchor="middle" x="2563.5444" y="-70.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.02s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion6.svg.





























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1719)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1719 4011.2212,-1719 4011.2212,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="893.563,-1491 893.563,-1707 1537.563,-1707 1537.563,-1491 893.563,-1491"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="1529.735,-1699 901.3911,-1699 901.3911,-1499 1529.735,-1499 1529.735,-1699"/>
<text text-anchor="start" x="909.2271" y="-1669.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="909.2271" y="-1637.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="909.2271" y="-1605.4" font-family="Times,serif" font-size="32.00" fill="#000000">19.24s of 21.04s total (91.44%)</text>
<text text-anchor="start" x="909.2271" y="-1573.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 99 nodes (cum &lt;= 0.11s)</text>
<text text-anchor="start" x="909.2271" y="-1541.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 16 edges (freq &lt;= 0.02s)</text>
<text text-anchor="start" x="909.2271" y="-1509.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 99 (cum &gt;= 0.11s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (20.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1717.6064,-1449 1459.5197,-1449 1459.5197,-1369 1717.6064,-1369 1717.6064,-1449"/>
<text text-anchor="middle" x="1588.563" y="-1425.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="1588.563" y="-1401.8" font-family="Times,serif" font-size="24.00" fill="#000000">3.10s(14.73%)</text>
<text text-anchor="middle" x="1588.563" y="-1377.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 20.04s(95.25%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).loadLoopWords.func1 (20.04s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1165.5469,-1311.5 973.5792,-1311.5 973.5792,-1270.5 1165.5469,-1270.5 1165.5469,-1311.5"/>
<text text-anchor="middle" x="1069.563" y="-1298.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="1069.563" y="-1287.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.10s(0.48%)</text>
<text text-anchor="middle" x="1069.563" y="-1276.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 20.04s(95.25%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge39" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge39"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.39s)">
<path fill="none" stroke="#000000" d="M1459.4199,-1398.644C1351.9409,-1388.7633 1208.1059,-1372.2484 1154.1148,-1351 1134.6125,-1343.3248 1115.3593,-1330.2191 1100.1631,-1318.2105"/>
<polygon fill="#000000" stroke="#000000" points="1102.1261,-1315.2954 1092.1623,-1311.6935 1097.7052,-1320.7227 1102.1261,-1315.2954"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.39s)">
<text text-anchor="middle" x="1171.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (18.71s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1674.2233,-1311.5 1502.9028,-1311.5 1502.9028,-1270.5 1674.2233,-1270.5 1674.2233,-1311.5"/>
<text text-anchor="middle" x="1588.563" y="-1298.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="1588.563" y="-1287.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.33%)</text>
<text text-anchor="middle" x="1588.563" y="-1276.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 18.71s(88.93%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N4 -->
<g id="edge43" class="edge">
<title>N1&#45;&gt;N4</title>
<g id="a_edge43"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.34s)">
<path fill="none" stroke="#000000" d="M1621.476,-1368.8489C1624.7765,-1363.1327 1627.6212,-1357.1112 1629.563,-1351 1633.145,-1339.7275 1628.6049,-1328.6646 1621.4112,-1319.1696"/>
<polygon fill="#000000" stroke="#000000" points="1624.0506,-1316.8709 1614.8643,-1311.5923 1618.7538,-1321.4474 1624.0506,-1316.8709"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.34s)">
<text text-anchor="middle" x="1648.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="main.NilWord.func1 (2.89s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1359.8294,-1311.5 1253.2967,-1311.5 1253.2967,-1270.5 1359.8294,-1270.5 1359.8294,-1311.5"/>
<text text-anchor="middle" x="1306.563" y="-1298.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="1306.563" y="-1287.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.24%)</text>
<text text-anchor="middle" x="1306.563" y="-1276.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 2.89s(13.74%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N7 -->
<g id="edge21" class="edge">
<title>N1&#45;&gt;N7</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.81s)">
<path fill="none" stroke="#000000" d="M1489.3806,-1368.9337C1451.7571,-1353.5534 1408.5873,-1335.6868 1369.563,-1319 1367.0697,-1317.9338 1364.5242,-1316.8371 1361.9554,-1315.7235"/>
<polygon fill="#000000" stroke="#000000" points="1363.1681,-1312.434 1352.6029,-1311.6422 1360.3683,-1318.8497 1363.1681,-1312.434"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.81s)">
<text text-anchor="middle" x="1459.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.81s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.mapaccess2_faststr (1.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2354.4961,-1213 2138.63,-1213 2138.63,-1151 2354.4961,-1151 2354.4961,-1213"/>
<text text-anchor="middle" x="2246.563" y="-1194.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="2246.563" y="-1176.6" font-family="Times,serif" font-size="18.00" fill="#000000">1.13s(5.37%)</text>
<text text-anchor="middle" x="2246.563" y="-1158.6" font-family="Times,serif" font-size="18.00" fill="#000000">of 1.91s(9.08%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N10 -->
<g id="edge7" class="edge">
<title>N1&#45;&gt;N10</title>
<g id="a_edge7"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.69s)">
<path fill="none" stroke="#000000" d="M1717.6756,-1400.253C1857.6584,-1388.6274 2070.0179,-1364.0937 2136.563,-1319 2161.1674,-1302.3271 2154.953,-1286.5268 2173.1148,-1263 2184.1691,-1248.6802 2197.1714,-1233.7972 2209.1394,-1220.7547"/>
<polygon fill="#000000" stroke="#000000" points="2211.8125,-1223.0194 2216.044,-1213.3063 2206.6789,-1218.2606 2211.8125,-1223.0194"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (1.69s)">
<text text-anchor="middle" x="2189.2872" y="-1286.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.69s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="runtime.convT2I (1.87s)">
<polygon fill="#f8f8f8" stroke="#000000" points="965.288,-907 861.8381,-907 861.8381,-860 965.288,-860 965.288,-907"/>
<text text-anchor="middle" x="913.563" y="-892.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="913.563" y="-879.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.28s(1.33%)</text>
<text text-anchor="middle" x="913.563" y="-866.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.87s(8.89%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N11 -->
<g id="edge10" class="edge">
<title>N1&#45;&gt;N11</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.38s)">
<path fill="none" stroke="#000000" d="M1459.2868,-1401.3392C1353.425,-1393.4532 1200.1934,-1378.3397 1068.563,-1351 1009.0101,-1338.6308 945.563,-1351.824 945.563,-1291 945.563,-1291 945.563,-1291 945.563,-980.5 945.563,-958.4037 937.9817,-934.8369 930.1994,-916.466"/>
<polygon fill="#000000" stroke="#000000" points="933.2943,-914.8124 926.0267,-907.1032 926.9005,-917.6619 933.2943,-914.8124"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (1.38s)">
<text text-anchor="middle" x="962.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.38s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.(*CodeQuotation).cloneCode (1.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="917.3415,-1314.5 721.7846,-1314.5 721.7846,-1267.5 917.3415,-1267.5 917.3415,-1314.5"/>
<text text-anchor="middle" x="819.563" y="-1300.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="819.563" y="-1287.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.22s(1.05%)</text>
<text text-anchor="middle" x="819.563" y="-1274.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.43s(6.80%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N12 -->
<g id="edge8" class="edge">
<title>N1&#45;&gt;N12</title>
<g id="a_edge8"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.43s)">
<path fill="none" stroke="#000000" d="M1459.1798,-1406.7536C1288.2463,-1402.3113 997.2331,-1389.2221 898.1148,-1351 880.8488,-1344.3419 864.1907,-1332.6467 850.6921,-1321.3395"/>
<polygon fill="#000000" stroke="#000000" points="852.973,-1318.6846 843.1287,-1314.7678 848.3818,-1323.9687 852.973,-1318.6846"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (1.43s)">
<text text-anchor="middle" x="915.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.43s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="main.(*machine).executeMathWord (1.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="679.0318,-1313 490.0943,-1313 490.0943,-1269 679.0318,-1269 679.0318,-1313"/>
<text text-anchor="middle" x="584.563" y="-1299.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="584.563" y="-1287.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.17s(0.81%)</text>
<text text-anchor="middle" x="584.563" y="-1275.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.41s(6.70%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N13 -->
<g id="edge9" class="edge">
<title>N1&#45;&gt;N13</title>
<g id="a_edge9"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.41s)">
<path fill="none" stroke="#000000" d="M1459.1912,-1405.2598C1308.5252,-1399.4692 1052.5224,-1385.1793 835.1148,-1351 780.4455,-1342.4053 720.0953,-1328.1033 672.3253,-1315.6183"/>
<polygon fill="#000000" stroke="#000000" points="673.1989,-1312.2291 662.6372,-1313.0662 671.4157,-1318.9982 673.1989,-1312.2291"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (1.41s)">
<text text-anchor="middle" x="852.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.41s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.tryParseInt (1.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1787.2102,-1313 1691.9159,-1313 1691.9159,-1269 1787.2102,-1269 1787.2102,-1313"/>
<text text-anchor="middle" x="1739.563" y="-1299.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="1739.563" y="-1287.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.15s(0.71%)</text>
<text text-anchor="middle" x="1739.563" y="-1275.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.31s(6.23%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N14 -->
<g id="edge12" class="edge">
<title>N1&#45;&gt;N14</title>
<g id="a_edge12"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (1.31s)">
<path fill="none" stroke="#000000" d="M1644.9053,-1368.959C1652.9178,-1363.0315 1661.0001,-1356.9239 1668.563,-1351 1681.1567,-1341.1355 1694.6427,-1329.9145 1706.4417,-1319.8664"/>
<polygon fill="#000000" stroke="#000000" points="1708.9905,-1322.2917 1714.3091,-1313.1285 1704.4372,-1316.975 1708.9905,-1322.2917"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (1.31s)">
<text text-anchor="middle" x="1701.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.31s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.tryParseFloat (1.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1485.0474,-1313 1378.0787,-1313 1378.0787,-1269 1485.0474,-1269 1485.0474,-1313"/>
<text text-anchor="middle" x="1431.563" y="-1299.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="1431.563" y="-1287.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.17s(0.81%)</text>
<text text-anchor="middle" x="1431.563" y="-1275.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.30s(6.18%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N15 -->
<g id="edge13" class="edge">
<title>N1&#45;&gt;N15</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (1.30s)">
<path fill="none" stroke="#000000" d="M1534.9717,-1368.7211C1513.3634,-1352.4805 1488.9461,-1334.1286 1469.2662,-1319.3374"/>
<polygon fill="#000000" stroke="#000000" points="1471.2407,-1316.4431 1461.144,-1313.2328 1467.035,-1322.0388 1471.2407,-1316.4431"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (1.30s)">
<text text-anchor="middle" x="1527.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.30s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.growslice (1.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2127.7879,-1314.5 2017.3382,-1314.5 2017.3382,-1267.5 2127.7879,-1267.5 2127.7879,-1314.5"/>
<text text-anchor="middle" x="2072.563" y="-1300.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="2072.563" y="-1287.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.26s(1.24%)</text>
<text text-anchor="middle" x="2072.563" y="-1274.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.23s(5.85%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N16 -->
<g id="edge14" class="edge">
<title>N1&#45;&gt;N16</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.23s)">
<path fill="none" stroke="#000000" d="M1718.0693,-1388.2142C1802.0114,-1373.0454 1913.0984,-1349.7645 2008.563,-1319 2009.6019,-1318.6652 2010.6469,-1318.3193 2011.6962,-1317.9636"/>
<polygon fill="#000000" stroke="#000000" points="2012.9944,-1321.2161 2021.211,-1314.5275 2010.6167,-1314.6323 2012.9944,-1321.2161"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (1.23s)">
<text text-anchor="middle" x="1957.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.23s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.memeqbody (1.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2430.5305,-1099.5 2264.5956,-1099.5 2264.5956,-1055.5 2430.5305,-1055.5 2430.5305,-1099.5"/>
<text text-anchor="middle" x="2347.563" y="-1081.1" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2347.563" y="-1063.1" font-family="Times,serif" font-size="18.00" fill="#000000">1.11s(5.28%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N17 -->
<g id="edge19" class="edge">
<title>N1&#45;&gt;N17</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.92s)">
<path fill="none" stroke="#000000" d="M1717.62,-1407.1583C1976.158,-1402.1011 2537.7865,-1383.7088 2594.563,-1319 2610.9781,-1300.2916 2604.2449,-1285.9286 2594.563,-1263 2558.8622,-1178.4532 2523.1117,-1169.6263 2446.563,-1119 2438.0816,-1113.3907 2428.7183,-1108.2873 2419.2344,-1103.7289"/>
<polygon fill="#000000" stroke="#000000" points="2420.6757,-1100.5394 2410.1294,-1099.5268 2417.7424,-1106.8951 2420.6757,-1100.5394"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.92s)">
<text text-anchor="middle" x="2602.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.92s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.deferreturn (1.01s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3031.8913,-1319 2891.2348,-1319 2891.2348,-1263 3031.8913,-1263 3031.8913,-1319"/>
<text text-anchor="middle" x="2961.563" y="-1302.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="2961.563" y="-1286.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.66s(3.14%)</text>
<text text-anchor="middle" x="2961.563" y="-1270.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 1.01s(4.80%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N18 -->
<g id="edge16" class="edge">
<title>N1&#45;&gt;N18</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (1.01s)">
<path fill="none" stroke="#000000" d="M1717.8855,-1407.5579C1926.2673,-1404.0496 2348.9721,-1392.0381 2704.563,-1351 2781.2933,-1342.1447 2803.1808,-1339.7864 2881.294,-1319.2128"/>
<polygon fill="#000000" stroke="#000000" points="2882.3368,-1322.5574 2891.1062,-1316.6119 2880.5432,-1315.791 2882.3368,-1322.5574"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (1.01s)">
<text text-anchor="middle" x="2822.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.01s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.deferproc (0.86s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3727.546,-1314.5 3617.58,-1314.5 3617.58,-1267.5 3727.546,-1267.5 3727.546,-1314.5"/>
<text text-anchor="middle" x="3672.563" y="-1300.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="3672.563" y="-1287.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.21s(1%)</text>
<text text-anchor="middle" x="3672.563" y="-1274.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.86s(4.09%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N21 -->
<g id="edge20" class="edge">
<title>N1&#45;&gt;N21</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.86s)">
<path fill="none" stroke="#000000" d="M1717.6255,-1405.1133C2126.4466,-1392.7733 3368.4781,-1355.0537 3410.563,-1351 3499.2942,-1342.4532 3523.0502,-1344.1758 3608.563,-1319 3609.8064,-1318.6339 3611.0576,-1318.2496 3612.3136,-1317.8492"/>
<polygon fill="#000000" stroke="#000000" points="3613.6865,-1321.0779 3621.9927,-1314.5008 3611.3979,-1314.4626 3613.6865,-1321.0779"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.86s)">
<text text-anchor="middle" x="3550.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.86s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="main.(*CodeQuotation).nextWord (0.76s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2873.1104,-1311 2642.0157,-1311 2642.0157,-1271 2873.1104,-1271 2873.1104,-1311"/>
<text text-anchor="middle" x="2757.563" y="-1294.2" font-family="Times,serif" font-size="16.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2757.563" y="-1278.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.76s(3.61%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N23 -->
<g id="edge22" class="edge">
<title>N1&#45;&gt;N23</title>
<g id="a_edge22"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.76s)">
<path fill="none" stroke="#000000" d="M1717.9503,-1407.8152C1957.0223,-1404.6276 2458.939,-1392.9962 2627.563,-1351 2657.9342,-1343.436 2689.8785,-1328.7976 2714.5011,-1315.8739"/>
<polygon fill="#000000" stroke="#000000" points="2716.3972,-1318.8288 2723.5609,-1311.023 2713.0929,-1312.6577 2716.3972,-1318.8288"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.76s)">
<text text-anchor="middle" x="2684.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.76s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="main.wordIsWhitespace (0.50s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3599.8544,-1313 3467.2717,-1313 3467.2717,-1269 3599.8544,-1269 3599.8544,-1313"/>
<text text-anchor="middle" x="3533.563" y="-1299.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="3533.563" y="-1287.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.16s(0.76%)</text>
<text text-anchor="middle" x="3533.563" y="-1275.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.50s(2.38%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N31 -->
<g id="edge32" class="edge">
<title>N1&#45;&gt;N31</title>
<g id="a_edge32"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.50s)">
<path fill="none" stroke="#000000" d="M1717.6961,-1405.3146C2080.7151,-1394.8357 3093.6119,-1364.7426 3243.563,-1351 3339.768,-1342.1831 3365.019,-1343.138 3458.563,-1319 3461.8939,-1318.1405 3465.2816,-1317.1855 3468.6843,-1316.1615"/>
<polygon fill="#000000" stroke="#000000" points="3469.8062,-1319.4775 3478.2778,-1313.1148 3467.6874,-1312.8059 3469.8062,-1319.4775"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.50s)">
<text text-anchor="middle" x="3390.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="main.(*machine).hasPrefixWord (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2373.7572,-1311.5 2215.3689,-1311.5 2215.3689,-1270.5 2373.7572,-1270.5 2373.7572,-1311.5"/>
<text text-anchor="middle" x="2294.563" y="-1298.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="2294.563" y="-1287.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.08s(0.38%)</text>
<text text-anchor="middle" x="2294.563" y="-1276.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.38s(1.81%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N38 -->
<g id="edge40" class="edge">
<title>N1&#45;&gt;N38</title>
<g id="a_edge40"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.38s)">
<path fill="none" stroke="#000000" d="M1717.8687,-1401.9241C1864.5966,-1392.9 2094.3265,-1375.477 2177.563,-1351 2204.3184,-1343.1322 2232.1827,-1329.1094 2254.0044,-1316.5981"/>
<polygon fill="#000000" stroke="#000000" points="2255.7977,-1319.604 2262.6612,-1311.5328 2252.2625,-1313.5622 2255.7977,-1319.604"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (0.38s)">
<text text-anchor="middle" x="2227.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1999.3678,-1311.5 1805.7583,-1311.5 1805.7583,-1270.5 1999.3678,-1270.5 1999.3678,-1311.5"/>
<text text-anchor="middle" x="1902.563" y="-1298.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="1902.563" y="-1287.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.24%)</text>
<text text-anchor="middle" x="1902.563" y="-1276.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.33s(1.57%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N40 -->
<g id="edge44" class="edge">
<title>N1&#45;&gt;N40</title>
<g id="a_edge44"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.33s)">
<path fill="none" stroke="#000000" d="M1695.3073,-1368.8859C1742.7108,-1351.0718 1796.9476,-1330.6899 1838.0457,-1315.2454"/>
<polygon fill="#000000" stroke="#000000" points="1839.5368,-1318.4241 1847.6664,-1311.6299 1837.0743,-1311.8715 1839.5368,-1318.4241"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.33s)">
<text text-anchor="middle" x="1790.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.eqstring (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3151.1304,-1309 3049.9957,-1309 3049.9957,-1273 3151.1304,-1273 3151.1304,-1309"/>
<text text-anchor="middle" x="3100.563" y="-1293.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="3100.563" y="-1280.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.27s(1.28%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N48 -->
<g id="edge51" class="edge">
<title>N1&#45;&gt;N48</title>
<g id="a_edge51"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.26s)">
<path fill="none" stroke="#000000" d="M1717.9986,-1407.8707C1945.8896,-1404.7999 2433.3889,-1393.3876 2842.563,-1351 2931.2304,-1341.8147 2955.3613,-1345.2094 3040.563,-1319 3045.8505,-1317.3735 3051.2704,-1315.369 3056.5861,-1313.1861"/>
<polygon fill="#000000" stroke="#000000" points="3058.2089,-1316.2974 3065.9906,-1309.1074 3055.4236,-1309.8753 3058.2089,-1316.2974"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.26s)">
<text text-anchor="middle" x="2986.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.ifaceeq (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3263.218,-1313 3169.9081,-1313 3169.9081,-1269 3263.218,-1269 3263.218,-1313"/>
<text text-anchor="middle" x="3216.563" y="-1299.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="3216.563" y="-1287.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.17s(0.81%)</text>
<text text-anchor="middle" x="3216.563" y="-1275.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.18s(0.86%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N62 -->
<g id="edge75" class="edge">
<title>N1&#45;&gt;N62</title>
<g id="a_edge75"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.16s)">
<path fill="none" stroke="#000000" d="M1717.6661,-1404.9307C2043.2651,-1394.4953 2880.9365,-1366.5149 3006.563,-1351 3075.9424,-1342.4316 3094.5257,-1341.9344 3160.563,-1319 3162.4113,-1318.3581 3164.2765,-1317.6681 3166.1472,-1316.9398"/>
<polygon fill="#000000" stroke="#000000" points="3167.6205,-1320.1174 3175.4922,-1313.026 3164.9164,-1313.6607 3167.6205,-1320.1174"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.16s)">
<text text-anchor="middle" x="3116.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="main.(*machine).execute.func1 (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3449.1573,-1313 3281.9688,-1313 3281.9688,-1269 3449.1573,-1269 3449.1573,-1313"/>
<text text-anchor="middle" x="3365.563" y="-1299.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="3365.563" y="-1287.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.11s(0.52%)</text>
<text text-anchor="middle" x="3365.563" y="-1275.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.13s(0.62%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N71 -->
<g id="edge81" class="edge">
<title>N1&#45;&gt;N71</title>
<g id="a_edge81"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.13s)">
<path fill="none" stroke="#000000" d="M1717.7404,-1405.5967C2064.3558,-1396.2615 2998.0986,-1369.7042 3136.563,-1351 3188.2491,-1344.0181 3244.9647,-1329.2144 3289.0225,-1316.0593"/>
<polygon fill="#000000" stroke="#000000" points="3290.2337,-1319.3496 3298.7939,-1313.1069 3288.209,-1312.6488 3290.2337,-1319.3496"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.13s)">
<text text-anchor="middle" x="3223.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2585.3678,-1311.5 2391.7583,-1311.5 2391.7583,-1270.5 2585.3678,-1270.5 2585.3678,-1311.5"/>
<text text-anchor="middle" x="2488.563" y="-1298.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2488.563" y="-1287.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.33%)</text>
<text text-anchor="middle" x="2488.563" y="-1276.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.11s(0.52%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N80 -->
<g id="edge93" class="edge">
<title>N1&#45;&gt;N80</title>
<g id="a_edge93"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.11s)">
<path fill="none" stroke="#000000" d="M1717.7379,-1403.1741C1851.1012,-1395.8646 2064.8792,-1380.5309 2247.563,-1351 2302.3026,-1342.1513 2362.8635,-1327.0514 2409.583,-1314.214"/>
<polygon fill="#000000" stroke="#000000" points="2410.6328,-1317.5551 2419.3352,-1311.512 2408.7637,-1310.8092 2410.6328,-1317.5551"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.11s)">
<text text-anchor="middle" x="2330.0308" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge1" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge1"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (19.65s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1067.8217,-1311.7284C1067.9326,-1324.8749 1070.5313,-1341.1957 1081.1148,-1351 1107.7754,-1375.6978 1308.3952,-1392.549 1449.2364,-1401.4747"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1449.0163,-1405.8444 1459.2704,-1402.1037 1449.5637,-1397.1116 1449.0163,-1405.8444"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (19.65s)">
<text text-anchor="middle" x="1101.7872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 19.65s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.newobject (3.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1351.2004,-810 1245.9257,-810 1245.9257,-766 1351.2004,-766 1351.2004,-810"/>
<text text-anchor="middle" x="1298.563" y="-796.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="1298.563" y="-784.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.19s(0.9%)</text>
<text text-anchor="middle" x="1298.563" y="-772.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 3.77s(17.92%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge58" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge58"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.22s)">
<path fill="none" stroke="#000000" d="M1130.9064,-1270.4753C1174.2708,-1254.6517 1227.0049,-1232.2865 1240.563,-1213 1263.3243,-1180.6219 1259.563,-1165.578 1259.563,-1126 1259.563,-1126 1259.563,-1126 1259.563,-883.5 1259.563,-860.7764 1269.1436,-837.118 1278.8078,-819.0337"/>
<polygon fill="#000000" stroke="#000000" points="1281.9696,-820.5515 1283.8188,-810.1192 1275.8676,-817.1213 1281.9696,-820.5515"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.22s)">
<text text-anchor="middle" x="1276.2872" y="-1024.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.assertI2T (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="790.4547,-1098 696.6714,-1098 696.6714,-1057 790.4547,-1057 790.4547,-1098"/>
<text text-anchor="middle" x="743.563" y="-1085.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="743.563" y="-1074.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.09s(0.43%)</text>
<text text-anchor="middle" x="743.563" y="-1063.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.21s(1%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N55 -->
<g id="edge107" class="edge">
<title>N2&#45;&gt;N55</title>
<g id="a_edge107"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M973.4761,-1271.8339C957.8095,-1268.8102 941.744,-1265.7703 926.563,-1263 861.0561,-1251.0458 674.0926,-1263.8622 631.1148,-1213 613.3298,-1191.9523 618.0024,-1175.2358 631.1148,-1151 638.4186,-1137.5004 667.9371,-1118.4529 694.8964,-1103.131"/>
<polygon fill="#000000" stroke="#000000" points="696.8869,-1106.0279 703.9053,-1098.0911 693.4693,-1099.9189 696.8869,-1106.0279"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="648.2872" y="-1177.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="runtime.goexit (19.88s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1629.3329,-1617 1547.7932,-1617 1547.7932,-1581 1629.3329,-1581 1629.3329,-1617"/>
<text text-anchor="middle" x="1588.563" y="-1600.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="1588.563" y="-1592.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 19.88s(94.49%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N1 -->
<g id="edge2" class="edge">
<title>N3&#45;&gt;N1</title>
<g id="a_edge2"><a xlink:title="runtime.goexit ... main.(*machine).execute (19.51s)">
<path fill="none" stroke="#000000" stroke-width="5" stroke-dasharray="1,5" d="M1588.563,-1580.782C1588.563,-1553.0982 1588.563,-1499.4317 1588.563,-1459.4151"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1592.9381,-1459.3013 1588.563,-1449.3014 1584.1881,-1459.3014 1592.9381,-1459.3013"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (19.51s)">
<text text-anchor="middle" x="1608.7872" y="-1469.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 19.51s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.gcDrain (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3342.3329,-1427 3268.7931,-1427 3268.7931,-1391 3342.3329,-1391 3342.3329,-1427"/>
<text text-anchor="middle" x="3305.563" y="-1410.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcDrain</text>
<text text-anchor="middle" x="3305.563" y="-1402.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.26s(1.24%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N49 -->
<g id="edge72" class="edge">
<title>N3&#45;&gt;N49</title>
<g id="a_edge72"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.17s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1629.4747,-1595.0785C1798.8573,-1578.7563 2461.7959,-1514.0199 3005.563,-1449 3095.1389,-1438.2891 3199.5025,-1423.9533 3258.5274,-1415.6725"/>
<polygon fill="#000000" stroke="#000000" points="3259.2405,-1419.1067 3268.6558,-1414.2485 3258.2659,-1412.1749 3259.2405,-1419.1067"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.goexit ... runtime.gcDrain (0.17s)">
<text text-anchor="middle" x="2868.2872" y="-1469.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.gcMarkDone (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2996.1529,-1427 2910.9731,-1427 2910.9731,-1391 2996.1529,-1391 2996.1529,-1427"/>
<text text-anchor="middle" x="2953.563" y="-1410.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkDone</text>
<text text-anchor="middle" x="2953.563" y="-1402.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.17s(0.81%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N64 -->
<g id="edge73" class="edge">
<title>N3&#45;&gt;N64</title>
<g id="a_edge73"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.17s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1629.4148,-1593.3137C1826.5673,-1565.8712 2679.2172,-1447.1873 2900.7869,-1416.3461"/>
<polygon fill="#000000" stroke="#000000" points="2901.4337,-1419.7899 2910.8557,-1414.9446 2900.4686,-1412.8568 2901.4337,-1419.7899"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.17s)">
<text text-anchor="middle" x="2528.2872" y="-1469.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (18.37s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M1588.563,-1311.5709C1588.563,-1324.6006 1588.563,-1342.0564 1588.563,-1358.592"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="1584.1881,-1358.7211 1588.563,-1368.7211 1592.9381,-1358.7212 1584.1881,-1358.7211"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (18.37s)">
<text text-anchor="middle" x="1608.7872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 18.37s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N6 -->
<g id="edge56" class="edge">
<title>N4&#45;&gt;N6</title>
<g id="a_edge56"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.23s)">
<path fill="none" stroke="#000000" d="M1647.7158,-1270.4137C1700.6929,-1251.4106 1771.2976,-1224.4551 1779.563,-1213 1827.6423,-1146.3668 1797.563,-1111.1682 1797.563,-1029 1797.563,-1029 1797.563,-1029 1797.563,-883.5 1797.563,-811.582 1715.5471,-844.5657 1645.563,-828 1547.8371,-804.8676 1431.3375,-794.9247 1361.2493,-790.7872"/>
<polygon fill="#000000" stroke="#000000" points="1361.4357,-787.2922 1351.2529,-790.218 1361.0377,-794.2809 1361.4357,-787.2922"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.23s)">
<text text-anchor="middle" x="1814.2872" y="-1024.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="runtime.mallocgc (4.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1383.6222,-716 1213.5039,-716 1213.5039,-642 1383.6222,-642 1383.6222,-716"/>
<text text-anchor="middle" x="1298.563" y="-694.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="1298.563" y="-672.4" font-family="Times,serif" font-size="22.00" fill="#000000">2.09s(9.93%)</text>
<text text-anchor="middle" x="1298.563" y="-650.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 4.64s(22.05%)</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.heapBitsSetType (0.96s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1475.6466,-592 1287.4795,-592 1287.4795,-550 1475.6466,-550 1475.6466,-592"/>
<text text-anchor="middle" x="1381.563" y="-574.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1381.563" y="-557.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.96s(4.56%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N19 -->
<g id="edge17" class="edge">
<title>N5&#45;&gt;N19</title>
<g id="a_edge17"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.96s)">
<path fill="none" stroke="#000000" d="M1327.1269,-641.8325C1337.5898,-628.2182 1349.2716,-613.0178 1359.1229,-600.1992"/>
<polygon fill="#000000" stroke="#000000" points="1361.9826,-602.222 1365.301,-592.1602 1356.4323,-597.9564 1361.9826,-602.222"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.96s)">
<text text-anchor="middle" x="1367.2872" y="-612.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.96s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.mProf_Malloc (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1269.4918,-590 1161.6343,-590 1161.6343,-552 1269.4918,-552 1269.4918,-590"/>
<text text-anchor="middle" x="1215.563" y="-578" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.mProf_Malloc</text>
<text text-anchor="middle" x="1215.563" y="-568" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="1215.563" y="-558" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.43s(2.04%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N33 -->
<g id="edge36" class="edge">
<title>N5&#45;&gt;N33</title>
<g id="a_edge36"><a xlink:title="runtime.mallocgc ... runtime.mProf_Malloc (0.43s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1269.9991,-641.8325C1258.9977,-627.5174 1246.6487,-611.4488 1236.497,-598.2394"/>
<polygon fill="#000000" stroke="#000000" points="1239.0482,-595.8152 1230.1795,-590.0189 1233.4979,-600.0807 1239.0482,-595.8152"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.mallocgc ... runtime.mProf_Malloc (0.43s)">
<text text-anchor="middle" x="1272.2872" y="-612.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.(*mcache).nextFree (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1945.5162,-589 1827.6099,-589 1827.6099,-553 1945.5162,-553 1945.5162,-589"/>
<text text-anchor="middle" x="1886.563" y="-577.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="1886.563" y="-568.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.048%)</text>
<text text-anchor="middle" x="1886.563" y="-559.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.42s(2.00%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N35 -->
<g id="edge37" class="edge">
<title>N5&#45;&gt;N35</title>
<g id="a_edge37"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.42s)">
<path fill="none" stroke="#000000" d="M1383.7491,-663.3536C1500.7609,-641.8616 1708.9799,-603.6173 1817.0933,-583.7598"/>
<polygon fill="#000000" stroke="#000000" points="1818.0338,-587.1456 1827.2369,-581.8966 1816.7692,-580.2608 1818.0338,-587.1456"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.42s)">
<text text-anchor="middle" x="1679.2872" y="-612.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.memclr (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1159.453,-36 1059.6731,-36 1059.6731,0 1159.453,0 1159.453,-36"/>
<text text-anchor="middle" x="1109.563" y="-20.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="1109.563" y="-7.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.20s(0.95%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N57 -->
<g id="edge112" class="edge">
<title>N5&#45;&gt;N57</title>
<g id="a_edge112"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.03s)">
<path fill="none" stroke="#000000" d="M1213.4055,-652.4342C1157.082,-628.9633 1093.563,-588.4323 1093.563,-525 1093.563,-525 1093.563,-525 1093.563,-104 1093.563,-84.5657 1097.5611,-63.0715 1101.5601,-46.4329"/>
<polygon fill="#000000" stroke="#000000" points="1105.0718,-46.825 1104.1462,-36.2706 1098.288,-45.0986 1105.0718,-46.825"/>
</a>
</g>
<g id="a_edge112&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.03s)">
<text text-anchor="middle" x="1110.2872" y="-328.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N5 -->
<g id="edge4" class="edge">
<title>N6&#45;&gt;N5</title>
<g id="a_edge4"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.58s)">
<path fill="none" stroke="#000000" d="M1298.563,-765.9422C1298.563,-754.5408 1298.563,-740.1611 1298.563,-726.3963"/>
<polygon fill="#000000" stroke="#000000" points="1302.0631,-726.0497 1298.563,-716.0498 1295.0631,-726.0498 1302.0631,-726.0497"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.58s)">
<text text-anchor="middle" x="1315.2872" y="-736.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.58s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (2.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1231.7488,-1202.5 1015.3773,-1202.5 1015.3773,-1161.5 1231.7488,-1161.5 1231.7488,-1202.5"/>
<text text-anchor="middle" x="1123.563" y="-1189.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="1123.563" y="-1178.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.29%)</text>
<text text-anchor="middle" x="1123.563" y="-1167.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 2.34s(11.12%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N9 -->
<g id="edge5" class="edge">
<title>N7&#45;&gt;N9</title>
<g id="a_edge5"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.34s)">
<path fill="none" stroke="#000000" d="M1295.751,-1270.424C1288.0364,-1257.5101 1276.5662,-1241.393 1262.563,-1231 1248.9941,-1220.9293 1233.176,-1212.7937 1217.1719,-1206.2649"/>
<polygon fill="#000000" stroke="#000000" points="1218.3319,-1202.9608 1207.7431,-1202.604 1215.7983,-1209.4862 1218.3319,-1202.9608"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (2.34s)">
<text text-anchor="middle" x="1294.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.34s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1449.5403,-1200 1287.5858,-1200 1287.5858,-1164 1449.5403,-1164 1449.5403,-1200"/>
<text text-anchor="middle" x="1368.563" y="-1188.3" font-family="Times,serif" font-size="9.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="1368.563" y="-1179.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.048%)</text>
<text text-anchor="middle" x="1368.563" y="-1170.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.19s(0.9%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N59 -->
<g id="edge64" class="edge">
<title>N7&#45;&gt;N59</title>
<g id="a_edge64"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.19s)">
<path fill="none" stroke="#000000" d="M1325.2885,-1270.4385C1331.6289,-1262.8115 1338.4033,-1253.8554 1343.563,-1245 1350.0235,-1233.9122 1355.5165,-1220.8384 1359.694,-1209.4827"/>
<polygon fill="#000000" stroke="#000000" points="1362.9992,-1210.6337 1363.0176,-1200.0389 1356.3962,-1208.3098 1362.9992,-1210.6337"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.19s)">
<text text-anchor="middle" x="1367.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="main.(*machine).loadBooleanWords.func2 (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="879.4858,-1202.5 673.6402,-1202.5 673.6402,-1161.5 879.4858,-1161.5 879.4858,-1202.5"/>
<text text-anchor="middle" x="776.563" y="-1189.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadBooleanWords.func2</text>
<text text-anchor="middle" x="776.563" y="-1178.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.24%)</text>
<text text-anchor="middle" x="776.563" y="-1167.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(0.57%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N77 -->
<g id="edge89" class="edge">
<title>N7&#45;&gt;N77</title>
<g id="a_edge89"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.12s)">
<path fill="none" stroke="#000000" d="M1260.2167,-1270.3596C1253.0554,-1267.6257 1245.6754,-1265.0612 1238.563,-1263 1174.7244,-1244.4988 1004.4443,-1216.6568 889.4285,-1198.9095"/>
<polygon fill="#000000" stroke="#000000" points="889.9328,-1195.446 879.5167,-1197.3839 888.8679,-1202.3645 889.9328,-1195.446"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.12s)">
<text text-anchor="middle" x="1169.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.systemstack (2.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3217.7636,-500 3087.3625,-500 3087.3625,-450 3217.7636,-450 3217.7636,-500"/>
<text text-anchor="middle" x="3152.563" y="-484.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="3152.563" y="-470.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.36s(1.71%)</text>
<text text-anchor="middle" x="3152.563" y="-456.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 2.65s(12.60%)</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.mach_semaphore_signal (0.80s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3316.2467,-400 3074.8794,-400 3074.8794,-358 3316.2467,-358 3316.2467,-400"/>
<text text-anchor="middle" x="3195.563" y="-382.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="3195.563" y="-365.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.80s(3.80%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N22 -->
<g id="edge24" class="edge">
<title>N8&#45;&gt;N22</title>
<g id="a_edge24"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.72s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3163.8608,-449.7771C3169.3732,-437.4704 3176.0504,-422.5632 3181.8524,-409.6097"/>
<polygon fill="#000000" stroke="#000000" points="3185.1913,-410.7175 3186.0849,-400.1604 3178.8028,-407.856 3185.1913,-410.7175"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.72s)">
<text text-anchor="middle" x="3194.2872" y="-420.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.72s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.deferproc.func1 (0.61s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2811.9586,-399.5 2689.1675,-399.5 2689.1675,-358.5 2811.9586,-358.5 2811.9586,-399.5"/>
<text text-anchor="middle" x="2750.563" y="-386.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2750.563" y="-375.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.10s(0.48%)</text>
<text text-anchor="middle" x="2750.563" y="-364.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.61s(2.90%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N29 -->
<g id="edge29" class="edge">
<title>N8&#45;&gt;N29</title>
<g id="a_edge29"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.61s)">
<path fill="none" stroke="#000000" d="M3087.0491,-461.8895C3046.8665,-453.6825 2994.4157,-442.6728 2948.1148,-432 2894.1652,-419.5641 2878.5349,-415.8939 2821.8413,-400.3135"/>
<polygon fill="#000000" stroke="#000000" points="2822.5478,-396.8778 2811.9774,-397.5971 2820.6892,-403.6266 2822.5478,-396.8778"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.61s)">
<text text-anchor="middle" x="2964.2872" y="-420.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.61s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.(*mcache).refill (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3057.2458,-398 2943.8803,-398 2943.8803,-360 3057.2458,-360 3057.2458,-398"/>
<text text-anchor="middle" x="3000.563" y="-386" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="3000.563" y="-376" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="3000.563" y="-366" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.30s(1.43%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N44 -->
<g id="edge47" class="edge">
<title>N8&#45;&gt;N44</title>
<g id="a_edge47"><a xlink:title="runtime.systemstack ... runtime.(*mcache).refill (0.30s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3112.6268,-449.7771C3090.108,-435.5547 3062.09,-417.8591 3039.7027,-403.7198"/>
<polygon fill="#000000" stroke="#000000" points="3041.435,-400.6743 3031.1111,-398.2935 3037.697,-406.5927 3041.435,-400.6743"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcache).refill (0.30s)">
<text text-anchor="middle" x="3097.2872" y="-420.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.deferreturn.func1 (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3463.1784,-399.5 3333.9477,-399.5 3333.9477,-358.5 3463.1784,-358.5 3463.1784,-399.5"/>
<text text-anchor="middle" x="3398.563" y="-386.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="3398.563" y="-375.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.29%)</text>
<text text-anchor="middle" x="3398.563" y="-364.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.25s(1.19%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N51 -->
<g id="edge55" class="edge">
<title>N8&#45;&gt;N51</title>
<g id="a_edge55"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.25s)">
<path fill="none" stroke="#000000" d="M3216.8753,-449.9025C3253.7273,-435.5213 3299.7596,-417.5574 3336.2686,-403.31"/>
<polygon fill="#000000" stroke="#000000" points="3337.7713,-406.4808 3345.8146,-399.5847 3335.2264,-399.9597 3337.7713,-406.4808"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.25s)">
<text text-anchor="middle" x="3314.2872" y="-420.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.semasleep.func1 (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2925.5357,-397 2829.5904,-397 2829.5904,-361 2925.5357,-361 2925.5357,-397"/>
<text text-anchor="middle" x="2877.563" y="-380.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep.func1</text>
<text text-anchor="middle" x="2877.563" y="-372.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(0.71%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N67 -->
<g id="edge78" class="edge">
<title>N8&#45;&gt;N67</title>
<g id="a_edge78"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.15s)">
<path fill="none" stroke="#000000" d="M3087.3383,-453.1933C3067.3518,-446.4575 3045.3112,-438.9752 3025.1148,-432 2987.527,-419.0183 2976.2292,-415.0269 2935.2668,-400.2407"/>
<polygon fill="#000000" stroke="#000000" points="2936.343,-396.9082 2925.7486,-396.8037 2933.9655,-403.4921 2936.343,-396.9082"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.semasleep.func1 (0.15s)">
<text text-anchor="middle" x="3041.2872" y="-420.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N1 -->
<g id="edge6" class="edge">
<title>N9&#45;&gt;N1</title>
<g id="a_edge6"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.08s)">
<path fill="none" stroke="#000000" d="M1136.6082,-1202.6281C1160.6697,-1240.6471 1209.7274,-1318.0134 1211.1148,-1319 1249.4531,-1346.2608 1358.2989,-1370.5636 1449.3107,-1387.0224"/>
<polygon fill="#000000" stroke="#000000" points="1448.7238,-1390.4729 1459.1841,-1388.7901 1449.9574,-1383.5825 1448.7238,-1390.4729"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (2.08s)">
<text text-anchor="middle" x="1228.2872" y="-1286.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.08s</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N6 -->
<g id="edge70" class="edge">
<title>N9&#45;&gt;N6</title>
<g id="a_edge70"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.17s)">
<path fill="none" stroke="#000000" d="M1135.6782,-1161.1515C1146.469,-1140.5878 1160.563,-1107.9087 1160.563,-1077.5 1160.563,-1077.5 1160.563,-1077.5 1160.563,-883.5 1160.563,-843.9163 1199.4298,-819.4499 1235.9101,-805.2037"/>
<polygon fill="#000000" stroke="#000000" points="1237.4339,-808.3721 1245.6033,-801.6259 1235.01,-801.8052 1237.4339,-808.3721"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.17s)">
<text text-anchor="middle" x="1177.2872" y="-976.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N17 -->
<g id="edge83" class="edge">
<title>N10&#45;&gt;N17</title>
<g id="a_edge83"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.13s)">
<path fill="none" stroke="#000000" d="M2276.5929,-1150.9295C2290.0361,-1137.0204 2305.809,-1120.701 2319.0667,-1106.9838"/>
<polygon fill="#000000" stroke="#000000" points="2321.7096,-1109.2856 2326.1426,-1099.6628 2316.6762,-1104.4209 2321.7096,-1109.2856"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.13s)">
<text text-anchor="middle" x="2322.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.aeshashbody (0.61s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2599.0872,-1097.5 2448.0389,-1097.5 2448.0389,-1057.5 2599.0872,-1057.5 2599.0872,-1097.5"/>
<text text-anchor="middle" x="2523.563" y="-1080.7" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="2523.563" y="-1064.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.61s(2.90%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N28 -->
<g id="edge30" class="edge">
<title>N10&#45;&gt;N28</title>
<g id="a_edge30"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.60s)">
<path fill="none" stroke="#000000" d="M2328.9222,-1150.9295C2371.1162,-1135.0115 2421.6783,-1115.9367 2460.6926,-1101.2183"/>
<polygon fill="#000000" stroke="#000000" points="2462.2297,-1104.3792 2470.3506,-1097.5747 2459.7588,-1097.8298 2462.2297,-1104.3792"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (0.60s)">
<text text-anchor="middle" x="2426.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.60s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N6 -->
<g id="edge11" class="edge">
<title>N11&#45;&gt;N6</title>
<g id="a_edge11"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.33s)">
<path fill="none" stroke="#000000" d="M921.5924,-859.9079C926.7624,-848.3836 934.6908,-835.4305 946.1148,-828 969.8046,-812.5914 1140.73,-798.7142 1235.5643,-792.0944"/>
<polygon fill="#000000" stroke="#000000" points="1235.8819,-795.5809 1245.6169,-791.4 1235.3995,-788.5976 1235.8819,-795.5809"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.33s)">
<text text-anchor="middle" x="963.2872" y="-830.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.33s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.typedmemmove (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="956.2022,-810 822.9239,-810 822.9239,-766 956.2022,-766 956.2022,-810"/>
<text text-anchor="middle" x="889.563" y="-796.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="889.563" y="-784.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.17s(0.81%)</text>
<text text-anchor="middle" x="889.563" y="-772.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.43s(2.04%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N34 -->
<g id="edge53" class="edge">
<title>N11&#45;&gt;N34</title>
<g id="a_edge53"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.26s)">
<path fill="none" stroke="#000000" d="M897.506,-859.8101C894.4744,-854.1995 891.7454,-848.0742 890.1148,-842 888.2694,-835.1253 887.47,-827.5788 887.2585,-820.3636"/>
<polygon fill="#000000" stroke="#000000" points="890.7596,-820.1659 887.316,-810.1463 883.7597,-820.1264 890.7596,-820.1659"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.26s)">
<text text-anchor="middle" x="907.2872" y="-830.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N6 -->
<g id="edge15" class="edge">
<title>N12&#45;&gt;N6</title>
<g id="a_edge15"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.21s)">
<path fill="none" stroke="#000000" d="M858.1793,-1267.3219C909.4411,-1232.5847 993.563,-1162.6136 993.563,-1077.5 993.563,-1077.5 993.563,-1077.5 993.563,-883.5 993.563,-833.2115 1146.4758,-806.2586 1235.7576,-794.8075"/>
<polygon fill="#000000" stroke="#000000" points="1236.2966,-798.2674 1245.7843,-793.5521 1235.4269,-791.3216 1236.2966,-798.2674"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.21s)">
<text text-anchor="middle" x="1010.2872" y="-1024.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.21s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N11 -->
<g id="edge95" class="edge">
<title>N13&#45;&gt;N11</title>
<g id="a_edge95"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.10s)">
<path fill="none" stroke="#000000" d="M500.2291,-1268.9271C472.1638,-1257.1294 443.9176,-1239.3869 427.563,-1213 418.9844,-1199.159 420.8158,-1072.3315 430.1148,-1054 461.9987,-991.1463 493.8309,-991.0044 555.563,-957 592.0154,-936.9207 603.2467,-935.322 643.563,-925 713.8469,-907.0056 796.5464,-895.6978 851.7252,-889.5108"/>
<polygon fill="#000000" stroke="#000000" points="852.1411,-892.9862 861.6988,-888.4146 851.3763,-886.0281 852.1411,-892.9862"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.convT2I (0.10s)">
<text text-anchor="middle" x="447.2872" y="-1073.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N17 -->
<g id="edge102" class="edge">
<title>N13&#45;&gt;N17</title>
<g id="a_edge102"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.06s)">
<path fill="none" stroke="#000000" d="M674.7494,-1268.9978C687.383,-1266.5822 700.2529,-1264.4694 712.563,-1263 891.1178,-1241.687 1345.1528,-1279.8636 1521.563,-1245 1560.3485,-1237.3349 1574.5567,-1238.7426 1604.563,-1213 1628.6712,-1192.3174 1613.0116,-1167.5647 1640.1148,-1151 1676.4136,-1128.8153 1980.27,-1137.5891 2022.563,-1133 2101.2923,-1124.4573 2189.8461,-1108.9388 2254.6121,-1096.4791"/>
<polygon fill="#000000" stroke="#000000" points="2255.6449,-1099.8443 2264.7973,-1094.5072 2254.3143,-1092.9719 2255.6449,-1099.8443"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.memeqbody (0.06s)">
<text text-anchor="middle" x="1657.2872" y="-1177.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="main.(*machine).executeSubtract (0.54s)">
<polygon fill="#f8f8f8" stroke="#000000" points="586.9483,-1201 436.1778,-1201 436.1778,-1163 586.9483,-1163 586.9483,-1201"/>
<text text-anchor="middle" x="511.563" y="-1189" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeSubtract</text>
<text text-anchor="middle" x="511.563" y="-1179" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.19%)</text>
<text text-anchor="middle" x="511.563" y="-1169" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.54s(2.57%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N30 -->
<g id="edge31" class="edge">
<title>N13&#45;&gt;N30</title>
<g id="a_edge31"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.54s)">
<path fill="none" stroke="#000000" d="M569.7904,-1268.9422C558.3334,-1251.8352 542.3859,-1228.0232 530.0769,-1209.644"/>
<polygon fill="#000000" stroke="#000000" points="532.8349,-1207.4722 524.3622,-1201.1111 527.0188,-1211.3675 532.8349,-1207.4722"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeSubtract (0.54s)">
<text text-anchor="middle" x="569.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.assertI2I (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="179.2024,-1099.5 81.9237,-1099.5 81.9237,-1055.5 179.2024,-1055.5 179.2024,-1099.5"/>
<text text-anchor="middle" x="130.563" y="-1085.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="130.563" y="-1073.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.11s(0.52%)</text>
<text text-anchor="middle" x="130.563" y="-1061.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.33s(1.57%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N41 -->
<g id="edge106" class="edge">
<title>N13&#45;&gt;N41</title>
<g id="a_edge106"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.assertI2I (0.04s)">
<path fill="none" stroke="#000000" d="M489.8709,-1284.8204C335.3569,-1273.7632 43.0142,-1248.3952 12.1148,-1213 -6.0069,-1192.2416 -1.2821,-1175.0797 12.1148,-1151 25.2547,-1127.3822 49.4712,-1110.3831 72.5997,-1098.7226"/>
<polygon fill="#000000" stroke="#000000" points="74.2133,-1101.8306 81.7242,-1094.3583 71.1928,-1095.5158 74.2133,-1101.8306"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; runtime.assertI2I (0.04s)">
<text text-anchor="middle" x="29.2872" y="-1177.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="main.(*machine).executeLessThan (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="380.4996,-1201 224.6265,-1201 224.6265,-1163 380.4996,-1163 380.4996,-1201"/>
<text text-anchor="middle" x="302.563" y="-1189" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeLessThan</text>
<text text-anchor="middle" x="302.563" y="-1179" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.095%)</text>
<text text-anchor="middle" x="302.563" y="-1169" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.22s(1.05%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N52 -->
<g id="edge57" class="edge">
<title>N13&#45;&gt;N52</title>
<g id="a_edge57"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeLessThan (0.22s)">
<path fill="none" stroke="#000000" d="M489.9972,-1277.4205C439.5053,-1269.0196 383.2926,-1257.4783 361.1148,-1245 345.6359,-1236.2908 331.9007,-1222.0742 321.6305,-1209.3482"/>
<polygon fill="#000000" stroke="#000000" points="324.279,-1207.0514 315.3983,-1201.2735 318.7376,-1211.3283 324.279,-1207.0514"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeLessThan (0.22s)">
<text text-anchor="middle" x="378.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="main.(*machine).executeMultiply (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="206.6275,-1201 54.4986,-1201 54.4986,-1163 206.6275,-1163 206.6275,-1201"/>
<text text-anchor="middle" x="130.563" y="-1189" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeMultiply</text>
<text text-anchor="middle" x="130.563" y="-1179" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="130.563" y="-1169" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.19s(0.9%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N58 -->
<g id="edge62" class="edge">
<title>N13&#45;&gt;N58</title>
<g id="a_edge62"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.19s)">
<path fill="none" stroke="#000000" d="M489.8949,-1279.734C435.3603,-1272.1738 365.8059,-1260.7021 305.1148,-1245 264.1966,-1234.4135 255.3172,-1227.3519 215.563,-1213 208.0004,-1210.2698 200.0637,-1207.392 192.205,-1204.5348"/>
<polygon fill="#000000" stroke="#000000" points="193.282,-1201.2022 182.688,-1201.0711 190.888,-1207.7801 193.282,-1201.2022"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="main.(*machine).executeMathWord &#45;&gt; main.(*machine).executeMultiply (0.19s)">
<text text-anchor="middle" x="322.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="strings.ContainsRune (0.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1595.1492,-1205.5 1467.9769,-1205.5 1467.9769,-1158.5 1595.1492,-1158.5 1595.1492,-1205.5"/>
<text text-anchor="middle" x="1531.563" y="-1191.1" font-family="Times,serif" font-size="13.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="1531.563" y="-1178.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.22s(1.05%)</text>
<text text-anchor="middle" x="1531.563" y="-1165.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.91s(4.33%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N20 -->
<g id="edge34" class="edge">
<title>N14&#45;&gt;N20</title>
<g id="a_edge34"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.44s)">
<path fill="none" stroke="#000000" d="M1733.1676,-1268.8788C1728.258,-1255.8613 1720.1434,-1240.1965 1707.563,-1231 1671.8127,-1204.8657 1652.1229,-1225.237 1609.563,-1213 1605.2719,-1211.7662 1600.8907,-1210.3837 1596.5022,-1208.9057"/>
<polygon fill="#000000" stroke="#000000" points="1597.5108,-1205.5504 1586.916,-1205.5382 1595.1908,-1212.1547 1597.5108,-1205.5504"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.44s)">
<text text-anchor="middle" x="1736.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="strconv.Atoi (0.72s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1914.2463,-1202.5 1826.8797,-1202.5 1826.8797,-1161.5 1914.2463,-1161.5 1914.2463,-1202.5"/>
<text text-anchor="middle" x="1870.563" y="-1189.7" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.Atoi</text>
<text text-anchor="middle" x="1870.563" y="-1178.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.33%)</text>
<text text-anchor="middle" x="1870.563" y="-1167.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.72s(3.42%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N24 -->
<g id="edge23" class="edge">
<title>N14&#45;&gt;N24</title>
<g id="a_edge23"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.72s)">
<path fill="none" stroke="#000000" d="M1777.2051,-1268.9378C1788.3295,-1261.8103 1800.2749,-1253.5317 1810.563,-1245 1823.127,-1234.5811 1835.775,-1221.7326 1846.1975,-1210.3622"/>
<polygon fill="#000000" stroke="#000000" points="1848.939,-1212.548 1853.0291,-1202.7745 1843.7369,-1207.8642 1848.939,-1212.548"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strconv.Atoi (0.72s)">
<text text-anchor="middle" x="1841.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.72s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N20 -->
<g id="edge33" class="edge">
<title>N15&#45;&gt;N20</title>
<g id="a_edge33"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.47s)">
<path fill="none" stroke="#000000" d="M1451.7995,-1268.9422C1466.5809,-1252.8305 1486.8187,-1230.7714 1503.21,-1212.9048"/>
<polygon fill="#000000" stroke="#000000" points="1505.791,-1215.2688 1509.9723,-1205.5339 1500.6329,-1210.5366 1505.791,-1215.2688"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.47s)">
<text text-anchor="middle" x="1501.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.47s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="strconv.atof64 (0.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1770.2463,-1202.5 1682.8797,-1202.5 1682.8797,-1161.5 1770.2463,-1161.5 1770.2463,-1202.5"/>
<text text-anchor="middle" x="1726.563" y="-1189.7" font-family="Times,serif" font-size="11.00" fill="#000000">strconv.atof64</text>
<text text-anchor="middle" x="1726.563" y="-1178.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.33%)</text>
<text text-anchor="middle" x="1726.563" y="-1167.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.66s(3.14%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N26 -->
<g id="edge26" class="edge">
<title>N15&#45;&gt;N26</title>
<g id="a_edge26"><a xlink:title="main.tryParseFloat ... strconv.atof64 (0.66s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1475.9969,-1268.9933C1481.8076,-1266.694 1487.7595,-1264.6126 1493.563,-1263 1559.1073,-1244.7872 1582.6297,-1270.8292 1645.563,-1245 1665.3095,-1236.8956 1684.3149,-1222.5777 1698.9475,-1209.6375"/>
<polygon fill="#000000" stroke="#000000" points="1701.5846,-1211.9689 1706.6039,-1202.6384 1696.8616,-1206.8023 1701.5846,-1211.9689"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="main.tryParseFloat ... strconv.atof64 (0.66s)">
<text text-anchor="middle" x="1687.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.66s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N5 -->
<g id="edge18" class="edge">
<title>N16&#45;&gt;N5</title>
<g id="a_edge18"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.93s)">
<path fill="none" stroke="#000000" d="M2072.563,-1267.1852C2072.563,-1245.103 2072.563,-1211.3316 2072.563,-1182 2072.563,-1182 2072.563,-1182 2072.563,-788 2072.563,-720.2334 1601.318,-691.8573 1394.2382,-682.6593"/>
<polygon fill="#000000" stroke="#000000" points="1394.1236,-679.1511 1383.9799,-682.2098 1393.8171,-686.1443 1394.1236,-679.1511"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.93s)">
<text text-anchor="middle" x="2089.2872" y="-976.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.93s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.memmove (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2434.7047,-301 2312.4214,-301 2312.4214,-265 2434.7047,-265 2434.7047,-301"/>
<text text-anchor="middle" x="2373.563" y="-285.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="2373.563" y="-271.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.41s(1.95%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N36 -->
<g id="edge108" class="edge">
<title>N16&#45;&gt;N36</title>
<g id="a_edge108"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M2080.4997,-1267.3026C2082.6851,-1260.1892 2084.907,-1252.3282 2086.563,-1245 2117.5695,-1107.789 2133.563,-1072.6707 2133.563,-932 2133.563,-932 2133.563,-932 2133.563,-379 2133.563,-342.2472 2231.8141,-313.2249 2302.5888,-297.0865"/>
<polygon fill="#000000" stroke="#000000" points="2303.3857,-300.4948 2312.3799,-294.8954 2301.8569,-293.6638 2303.3857,-300.4948"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="2150.2872" y="-783.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N8 -->
<g id="edge54" class="edge">
<title>N18&#45;&gt;N8</title>
<g id="a_edge54"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.25s)">
<path fill="none" stroke="#000000" d="M2978.8885,-1262.9873C2990.4579,-1241.6126 3003.563,-1211.0002 3003.563,-1182 3003.563,-1182 3003.563,-1182 3003.563,-571 3003.563,-531.71 3040.6268,-507.7317 3077.7834,-493.565"/>
<polygon fill="#000000" stroke="#000000" points="3078.9863,-496.852 3087.2095,-490.1714 3076.615,-490.2658 3078.9863,-496.852"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.25s)">
<text text-anchor="middle" x="3020.2872" y="-879.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N36 -->
<g id="edge104" class="edge">
<title>N18&#45;&gt;N36</title>
<g id="a_edge104"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.05s)">
<path fill="none" stroke="#000000" d="M2891.2264,-1265.8951C2802.5554,-1234.1829 2661.563,-1183.5196 2661.563,-1182 2661.563,-1182 2661.563,-1182 2661.563,-379 2661.563,-333.3724 2529.8193,-305.5503 2444.5404,-292.3204"/>
<polygon fill="#000000" stroke="#000000" points="2445.0525,-288.8581 2434.6404,-290.8173 2444.0017,-295.7788 2445.0525,-288.8581"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.05s)">
<text text-anchor="middle" x="2678.2872" y="-783.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="strings.IndexRune (0.69s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1587.024,-1101 1476.1021,-1101 1476.1021,-1054 1587.024,-1054 1587.024,-1101"/>
<text text-anchor="middle" x="1531.563" y="-1086.6" font-family="Times,serif" font-size="13.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="1531.563" y="-1073.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.29s(1.38%)</text>
<text text-anchor="middle" x="1531.563" y="-1060.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.69s(3.28%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N25 -->
<g id="edge25" class="edge">
<title>N20&#45;&gt;N25</title>
<g id="a_edge25"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.69s)">
<path fill="none" stroke="#000000" d="M1531.563,-1158.2873C1531.563,-1144.3919 1531.563,-1126.6122 1531.563,-1111.2717"/>
<polygon fill="#000000" stroke="#000000" points="1535.0631,-1111.1188 1531.563,-1101.1188 1528.0631,-1111.1189 1535.0631,-1111.1188"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.69s)">
<text text-anchor="middle" x="1548.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.69s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N8 -->
<g id="edge28" class="edge">
<title>N21&#45;&gt;N8</title>
<g id="a_edge28"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.61s)">
<path fill="none" stroke="#000000" d="M3662.0705,-1267.2724C3653.4194,-1245.531 3642.563,-1212.226 3642.563,-1182 3642.563,-1182 3642.563,-1182 3642.563,-571 3642.563,-529.2698 3365.3386,-496.0029 3227.9312,-482.077"/>
<polygon fill="#000000" stroke="#000000" points="3228.1843,-478.5849 3217.8845,-481.068 3227.4847,-485.5499 3228.1843,-478.5849"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.61s)">
<text text-anchor="middle" x="3659.2872" y="-879.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.61s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="strconv.ParseInt (0.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1919.218,-1099.5 1825.9081,-1099.5 1825.9081,-1055.5 1919.218,-1055.5 1919.218,-1099.5"/>
<text text-anchor="middle" x="1872.563" y="-1085.9" font-family="Times,serif" font-size="12.00" fill="#000000">strconv.ParseInt</text>
<text text-anchor="middle" x="1872.563" y="-1073.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.19s(0.9%)</text>
<text text-anchor="middle" x="1872.563" y="-1061.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.65s(3.09%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N27 -->
<g id="edge27" class="edge">
<title>N24&#45;&gt;N27</title>
<g id="a_edge27"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.65s)">
<path fill="none" stroke="#000000" d="M1870.9582,-1161.3542C1871.2383,-1146.7162 1871.6199,-1126.7772 1871.9407,-1110.0149"/>
<polygon fill="#000000" stroke="#000000" points="1875.449,-1109.6112 1872.1411,-1099.546 1868.4503,-1109.4772 1875.449,-1109.6112"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="strconv.Atoi &#45;&gt; strconv.ParseInt (0.65s)">
<text text-anchor="middle" x="1888.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.65s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.indexbytebody (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1604.8152,-998.5 1458.3109,-998.5 1458.3109,-962.5 1604.8152,-962.5 1604.8152,-998.5"/>
<text text-anchor="middle" x="1531.563" y="-983.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.indexbytebody</text>
<text text-anchor="middle" x="1531.563" y="-969.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.33s(1.57%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N42 -->
<g id="edge45" class="edge">
<title>N25&#45;&gt;N42</title>
<g id="a_edge45"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.33s)">
<path fill="none" stroke="#000000" d="M1531.563,-1053.5225C1531.563,-1040.0211 1531.563,-1023.079 1531.563,-1008.9136"/>
<polygon fill="#000000" stroke="#000000" points="1535.0631,-1008.7253 1531.563,-998.7254 1528.0631,-1008.7254 1535.0631,-1008.7253"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.33s)">
<text text-anchor="middle" x="1548.2872" y="-1024.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N6 -->
<g id="edge48" class="edge">
<title>N26&#45;&gt;N6</title>
<g id="a_edge48"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.29s)">
<path fill="none" stroke="#000000" d="M1712.4832,-1161.4101C1699.9426,-1141.0381 1683.563,-1108.4968 1683.563,-1077.5 1683.563,-1077.5 1683.563,-1077.5 1683.563,-883.5 1683.563,-817.9536 1470.6857,-797.0821 1361.5186,-790.6881"/>
<polygon fill="#000000" stroke="#000000" points="1361.469,-787.1799 1351.2884,-790.1135 1361.0763,-794.1689 1361.469,-787.1799"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="strconv.atof64 &#45;&gt; runtime.newobject (0.29s)">
<text text-anchor="middle" x="1700.2872" y="-976.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="strconv.ParseUint (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1933.5089,-1004 1825.6172,-1004 1825.6172,-957 1933.5089,-957 1933.5089,-1004"/>
<text text-anchor="middle" x="1879.563" y="-989.6" font-family="Times,serif" font-size="13.00" fill="#000000">strconv.ParseUint</text>
<text text-anchor="middle" x="1879.563" y="-976.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.22s(1.05%)</text>
<text text-anchor="middle" x="1879.563" y="-963.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.44s(2.09%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N32 -->
<g id="edge35" class="edge">
<title>N27&#45;&gt;N32</title>
<g id="a_edge35"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.44s)">
<path fill="none" stroke="#000000" d="M1874.1514,-1055.4892C1875.0322,-1043.2845 1876.1459,-1027.8516 1877.1337,-1014.1634"/>
<polygon fill="#000000" stroke="#000000" points="1880.6297,-1014.3444 1877.8586,-1004.1184 1873.6478,-1013.8405 1880.6297,-1014.3444"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="strconv.ParseInt &#45;&gt; strconv.ParseUint (0.44s)">
<text text-anchor="middle" x="1892.2872" y="-1024.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N36 -->
<g id="edge94" class="edge">
<title>N29&#45;&gt;N36</title>
<g id="a_edge94"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.11s)">
<path fill="none" stroke="#000000" d="M2726.5592,-358.4469C2711.907,-347.0321 2692.255,-333.6339 2672.563,-326 2632.2831,-310.3848 2520.012,-297.059 2445.0935,-289.5431"/>
<polygon fill="#000000" stroke="#000000" points="2445.0778,-286.0245 2434.7815,-288.5216 2444.3877,-292.9904 2445.0778,-286.0245"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.11s)">
<text text-anchor="middle" x="2716.0308" y="-328.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.newdefer (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2808.1842,-308 2692.9419,-308 2692.9419,-258 2808.1842,-258 2808.1842,-308"/>
<text text-anchor="middle" x="2750.563" y="-292.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2750.563" y="-278.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.39s(1.85%)</text>
<text text-anchor="middle" x="2750.563" y="-264.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.40s(1.90%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N37 -->
<g id="edge38" class="edge">
<title>N29&#45;&gt;N37</title>
<g id="a_edge38"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.40s)">
<path fill="none" stroke="#000000" d="M2750.563,-358.1694C2750.563,-346.595 2750.563,-331.8778 2750.563,-318.5397"/>
<polygon fill="#000000" stroke="#000000" points="2754.0631,-318.2248 2750.563,-308.2248 2747.0631,-318.2249 2754.0631,-318.2248"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.40s)">
<text text-anchor="middle" x="2767.2872" y="-328.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N41 -->
<g id="edge69" class="edge">
<title>N30&#45;&gt;N41</title>
<g id="a_edge69"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.17s)">
<path fill="none" stroke="#000000" d="M456.3481,-1162.863C414.9748,-1149.0963 356.7476,-1130.9269 304.563,-1119 256.5828,-1108.034 240.6507,-1114.0988 189.0332,-1100.7983"/>
<polygon fill="#000000" stroke="#000000" points="189.9012,-1097.4074 179.335,-1098.1852 188.0801,-1104.1664 189.9012,-1097.4074"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; runtime.assertI2I (0.17s)">
<text text-anchor="middle" x="373.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="main.(*Integer).Add (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="678.7556,-1096.5 580.3705,-1096.5 580.3705,-1058.5 678.7556,-1058.5 678.7556,-1096.5"/>
<text text-anchor="middle" x="629.563" y="-1084.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="629.563" y="-1074.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.095%)</text>
<text text-anchor="middle" x="629.563" y="-1064.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.14s(0.67%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N69 -->
<g id="edge79" class="edge">
<title>N30&#45;&gt;N69</title>
<g id="a_edge79"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.14s)">
<path fill="none" stroke="#000000" d="M529.5853,-1162.8744C541.9875,-1150.0329 559.0593,-1132.9727 575.1148,-1119 581.2927,-1113.6235 588.0897,-1108.1346 594.7248,-1102.9835"/>
<polygon fill="#000000" stroke="#000000" points="597.1627,-1105.5255 602.984,-1096.6731 592.9129,-1099.9632 597.1627,-1105.5255"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Add (0.14s)">
<text text-anchor="middle" x="592.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="main.(*Integer).Negate (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="562.6927,-1095.5 472.4334,-1095.5 472.4334,-1059.5 562.6927,-1059.5 562.6927,-1095.5"/>
<text text-anchor="middle" x="517.563" y="-1079.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="517.563" y="-1071.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(0.57%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N76 -->
<g id="edge88" class="edge">
<title>N30&#45;&gt;N76</title>
<g id="a_edge88"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.12s)">
<path fill="none" stroke="#000000" d="M512.6635,-1162.8331C513.5798,-1146.8743 514.8977,-1123.9207 515.9359,-1105.8385"/>
<polygon fill="#000000" stroke="#000000" points="519.4307,-1106.0288 516.5098,-1095.8445 512.4422,-1105.6274 519.4307,-1106.0288"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="main.(*machine).executeSubtract &#45;&gt; main.(*Integer).Negate (0.12s)">
<text text-anchor="middle" x="532.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="unicode.IsSpace (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3583.8933,-1200 3483.2328,-1200 3483.2328,-1164 3583.8933,-1164 3583.8933,-1200"/>
<text text-anchor="middle" x="3533.563" y="-1184.6" font-family="Times,serif" font-size="13.00" fill="#000000">unicode.IsSpace</text>
<text text-anchor="middle" x="3533.563" y="-1171.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.26s(1.24%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N50 -->
<g id="edge52" class="edge">
<title>N31&#45;&gt;N50</title>
<g id="a_edge52"><a xlink:title="main.wordIsWhitespace &#45;&gt; unicode.IsSpace (0.26s)">
<path fill="none" stroke="#000000" d="M3533.563,-1268.9422C3533.563,-1251.9898 3533.563,-1228.4529 3533.563,-1210.1434"/>
<polygon fill="#000000" stroke="#000000" points="3537.0631,-1210.0564 3533.563,-1200.0565 3530.0631,-1210.0565 3537.0631,-1210.0564"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; unicode.IsSpace (0.26s)">
<text text-anchor="middle" x="3550.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N6 -->
<g id="edge60" class="edge">
<title>N32&#45;&gt;N6</title>
<g id="a_edge60"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.22s)">
<path fill="none" stroke="#000000" d="M1876.5597,-956.9794C1870.7633,-922.3133 1854.5494,-858.3384 1811.563,-828 1775.5881,-802.6101 1490.7428,-792.6029 1361.7049,-789.3441"/>
<polygon fill="#000000" stroke="#000000" points="1361.6556,-785.8419 1351.5722,-789.094 1361.4828,-792.8398 1361.6556,-785.8419"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="strconv.ParseUint &#45;&gt; runtime.newobject (0.22s)">
<text text-anchor="middle" x="1880.2872" y="-879.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.stkbucket (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1275.7636,-500 1159.3625,-500 1159.3625,-450 1275.7636,-450 1275.7636,-500"/>
<text text-anchor="middle" x="1217.563" y="-484.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="1217.563" y="-470.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.31s(1.47%)</text>
<text text-anchor="middle" x="1217.563" y="-456.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.32s(1.52%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N43 -->
<g id="edge46" class="edge">
<title>N33&#45;&gt;N43</title>
<g id="a_edge46"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.32s)">
<path fill="none" stroke="#000000" d="M1215.9678,-551.573C1216.2134,-539.785 1216.5342,-524.3822 1216.8238,-510.4843"/>
<polygon fill="#000000" stroke="#000000" points="1220.3282,-510.3054 1217.0373,-500.2346 1213.3297,-510.1595 1220.3282,-510.3054"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.32s)">
<text text-anchor="middle" x="1234.2872" y="-520.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N36 -->
<g id="edge66" class="edge">
<title>N34&#45;&gt;N36</title>
<g id="a_edge66"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.19s)">
<path fill="none" stroke="#000000" d="M906.2484,-765.9324C962.4622,-691.6445 1141.9096,-455.0062 1150.563,-450 1349.1182,-335.1314 2070.8809,-295.5942 2301.9091,-285.7266"/>
<polygon fill="#000000" stroke="#000000" points="2302.3662,-289.2105 2312.2099,-285.2925 2302.0714,-282.2167 2302.3662,-289.2105"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.19s)">
<text text-anchor="middle" x="1111.2872" y="-520.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N8 -->
<g id="edge41" class="edge">
<title>N35&#45;&gt;N8</title>
<g id="a_edge41"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.38s)">
<path fill="none" stroke="#000000" d="M1945.9268,-566.4985C2153.4334,-550.7634 2846.2309,-498.229 3077.0279,-480.7278"/>
<polygon fill="#000000" stroke="#000000" points="3077.6319,-484.1921 3087.3386,-479.9459 3077.1026,-477.2122 3077.6319,-484.1921"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.38s)">
<text text-anchor="middle" x="2573.2872" y="-520.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N10 -->
<g id="edge63" class="edge">
<title>N38&#45;&gt;N10</title>
<g id="a_edge63"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.19s)">
<path fill="none" stroke="#000000" d="M2285.5346,-1270.4979C2279.5868,-1256.9914 2271.5964,-1238.8465 2264.3992,-1222.503"/>
<polygon fill="#000000" stroke="#000000" points="2267.5082,-1220.8783 2260.2747,-1213.137 2261.1018,-1223.6995 2267.5082,-1220.8783"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.19s)">
<text text-anchor="middle" x="2289.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime._System (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3189.3329,-589 3115.7931,-589 3115.7931,-553 3189.3329,-553 3189.3329,-589"/>
<text text-anchor="middle" x="3152.563" y="-572.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="3152.563" y="-564.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.36s(1.71%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N8 -->
<g id="edge42" class="edge">
<title>N39&#45;&gt;N8</title>
<g id="a_edge42"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.36s)">
<path fill="none" stroke="#000000" d="M3152.563,-552.9431C3152.563,-540.9677 3152.563,-524.8521 3152.563,-510.383"/>
<polygon fill="#000000" stroke="#000000" points="3156.0631,-510.2209 3152.563,-500.2209 3149.0631,-510.2209 3156.0631,-510.2209"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.36s)">
<text text-anchor="middle" x="3169.2872" y="-520.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.mapassign1 (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2045.0474,-1204 1932.0787,-1204 1932.0787,-1160 2045.0474,-1160 2045.0474,-1204"/>
<text text-anchor="middle" x="1988.563" y="-1190.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="1988.563" y="-1178.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.11s(0.52%)</text>
<text text-anchor="middle" x="1988.563" y="-1166.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.28s(1.33%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N46 -->
<g id="edge49" class="edge">
<title>N40&#45;&gt;N46</title>
<g id="a_edge49"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.28s)">
<path fill="none" stroke="#000000" d="M1918.739,-1270.4979C1931.7086,-1254.0597 1950.0989,-1230.751 1964.7505,-1212.181"/>
<polygon fill="#000000" stroke="#000000" points="1967.5333,-1214.3045 1970.9797,-1204.2858 1962.0379,-1209.9686 1967.5333,-1214.3045"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.28s)">
<text text-anchor="middle" x="1964.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.getitab (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="180.6886,-1004 80.4375,-1004 80.4375,-957 180.6886,-957 180.6886,-1004"/>
<text text-anchor="middle" x="130.563" y="-989.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="130.563" y="-976.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.24s(1.14%)</text>
<text text-anchor="middle" x="130.563" y="-963.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.29s(1.38%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N45 -->
<g id="edge59" class="edge">
<title>N41&#45;&gt;N45</title>
<g id="a_edge59"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.22s)">
<path fill="none" stroke="#000000" d="M130.563,-1055.4892C130.563,-1043.2845 130.563,-1027.8516 130.563,-1014.1634"/>
<polygon fill="#000000" stroke="#000000" points="134.0631,-1014.1184 130.563,-1004.1184 127.0631,-1014.1184 134.0631,-1014.1184"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.22s)">
<text text-anchor="middle" x="147.2872" y="-1024.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.(*mcentral).cacheSpan (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3071.562,-302 2929.5641,-302 2929.5641,-264 3071.562,-264 3071.562,-302"/>
<text text-anchor="middle" x="3000.563" y="-290" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="3000.563" y="-280" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="3000.563" y="-270" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.27s(1.28%)</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N47 -->
<g id="edge50" class="edge">
<title>N44&#45;&gt;N47</title>
<g id="a_edge50"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.27s)">
<path fill="none" stroke="#000000" d="M3000.563,-359.573C3000.563,-345.9513 3000.563,-327.5027 3000.563,-312.1271"/>
<polygon fill="#000000" stroke="#000000" points="3004.0631,-312.0705 3000.563,-302.0705 2997.0631,-312.0706 3004.0631,-312.0705"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.27s)">
<text text-anchor="middle" x="3017.2872" y="-328.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.newarray (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2025.864,-1096.5 1939.262,-1096.5 1939.262,-1058.5 2025.864,-1058.5 2025.864,-1096.5"/>
<text text-anchor="middle" x="1982.563" y="-1084.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="1982.563" y="-1074.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.14%)</text>
<text text-anchor="middle" x="1982.563" y="-1064.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.15s(0.71%)</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N66 -->
<g id="edge76" class="edge">
<title>N46&#45;&gt;N66</title>
<g id="a_edge76"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.15s)">
<path fill="none" stroke="#000000" d="M1987.2906,-1159.8382C1986.4102,-1144.5045 1985.2287,-1123.9262 1984.2671,-1107.1783"/>
<polygon fill="#000000" stroke="#000000" points="1987.7398,-1106.6021 1983.6723,-1096.8192 1980.7513,-1107.0034 1987.7398,-1106.6021"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.15s)">
<text text-anchor="middle" x="2002.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.(*mcentral).grow (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2159.0294,-208 2050.0967,-208 2050.0967,-172 2159.0294,-172 2159.0294,-208"/>
<text text-anchor="middle" x="2104.563" y="-196.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="2104.563" y="-187.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.048%)</text>
<text text-anchor="middle" x="2104.563" y="-178.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.20s(0.95%)</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N56 -->
<g id="edge61" class="edge">
<title>N47&#45;&gt;N56</title>
<g id="a_edge61"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.20s)">
<path fill="none" stroke="#000000" d="M2945.0163,-263.9275C2936.8871,-261.6386 2928.5604,-259.5631 2920.563,-258 2776.8172,-229.9054 2335.7913,-202.9814 2169.1947,-193.5461"/>
<polygon fill="#000000" stroke="#000000" points="2169.2779,-190.0454 2159.0967,-192.9766 2168.8837,-197.0343 2169.2779,-190.0454"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.20s)">
<text text-anchor="middle" x="2802.2872" y="-228.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.gcFlushBgCredit (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3901.5015,-1310 3783.6245,-1310 3783.6245,-1272 3901.5015,-1272 3901.5015,-1310"/>
<text text-anchor="middle" x="3842.563" y="-1298" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="3842.563" y="-1288" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.095%)</text>
<text text-anchor="middle" x="3842.563" y="-1278" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.12s(0.57%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N79 -->
<g id="edge91" class="edge">
<title>N49&#45;&gt;N79</title>
<g id="a_edge91"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.gcFlushBgCredit (0.12s)">
<path fill="none" stroke="#000000" d="M3342.6093,-1407.0275C3438.491,-1401.5033 3692.6546,-1384.0762 3769.563,-1351 3787.7041,-1343.198 3804.9252,-1329.4671 3818.0805,-1317.1081"/>
<polygon fill="#000000" stroke="#000000" points="3820.6108,-1319.5295 3825.3325,-1310.045 3815.7267,-1314.5148 3820.6108,-1319.5295"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.gcFlushBgCredit (0.12s)">
<text text-anchor="middle" x="3808.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.freedefer (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3448.1771,-305 3348.949,-305 3348.949,-261 3448.1771,-261 3448.1771,-305"/>
<text text-anchor="middle" x="3398.563" y="-291.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="3398.563" y="-279.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.18s(0.86%)</text>
<text text-anchor="middle" x="3398.563" y="-267.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.19s(0.9%)</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N60 -->
<g id="edge65" class="edge">
<title>N51&#45;&gt;N60</title>
<g id="a_edge65"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.19s)">
<path fill="none" stroke="#000000" d="M3398.563,-358.1694C3398.563,-345.6894 3398.563,-329.5556 3398.563,-315.4364"/>
<polygon fill="#000000" stroke="#000000" points="3402.0631,-315.126 3398.563,-305.126 3395.0631,-315.1261 3402.0631,-315.126"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.19s)">
<text text-anchor="middle" x="3415.2872" y="-328.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N11 -->
<g id="edge99" class="edge">
<title>N52&#45;&gt;N11</title>
<g id="a_edge99"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.convT2I (0.07s)">
<path fill="none" stroke="#000000" d="M333.2815,-1162.949C343.6023,-1154.9765 354.1189,-1144.8006 360.563,-1133 384.4098,-1089.3315 363.0515,-1070.2709 375.1148,-1022 386.2807,-977.32 374.8145,-952.7584 411.563,-925 445.9233,-899.0456 724.5725,-888.463 851.2657,-884.9623"/>
<polygon fill="#000000" stroke="#000000" points="851.6798,-888.4525 861.5816,-884.6837 851.4907,-881.4551 851.6798,-888.4525"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.convT2I (0.07s)">
<text text-anchor="middle" x="392.2872" y="-1024.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N41 -->
<g id="edge101" class="edge">
<title>N52&#45;&gt;N41</title>
<g id="a_edge101"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.assertI2I (0.06s)">
<path fill="none" stroke="#000000" d="M271.0156,-1162.8331C244.2701,-1146.5836 205.5882,-1123.0822 175.588,-1104.8553"/>
<polygon fill="#000000" stroke="#000000" points="177.341,-1101.825 166.9774,-1099.6238 173.7063,-1107.8075 177.341,-1101.825"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; runtime.assertI2I (0.06s)">
<text text-anchor="middle" x="239.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="main.(*machine).popValue (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="343.5181,-1095.5 197.608,-1095.5 197.608,-1059.5 343.5181,-1059.5 343.5181,-1095.5"/>
<text text-anchor="middle" x="270.563" y="-1079.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="270.563" y="-1067.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.13s(0.62%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N72 -->
<g id="edge105" class="edge">
<title>N52&#45;&gt;N72</title>
<g id="a_edge105"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; main.(*machine).popValue (0.04s)">
<path fill="none" stroke="#000000" d="M286.6492,-1162.7619C280.551,-1154.1991 274.2972,-1143.654 271.1148,-1133 268.5463,-1124.4012 267.7737,-1114.7135 267.8301,-1105.8671"/>
<polygon fill="#000000" stroke="#000000" points="271.3373,-1105.7571 268.2452,-1095.6236 264.3431,-1105.4737 271.3373,-1105.7571"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.(*machine).executeLessThan &#45;&gt; main.(*machine).popValue (0.04s)">
<text text-anchor="middle" x="288.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.schedule (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4005.6529,-1096.5 3921.4732,-1096.5 3921.4732,-1058.5 4005.6529,-1058.5 4005.6529,-1096.5"/>
<text text-anchor="middle" x="3963.563" y="-1084.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="3963.563" y="-1074.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.095%)</text>
<text text-anchor="middle" x="3963.563" y="-1064.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.22s(1.05%)</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.usleep (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3888.9586,-1095.5 3796.1675,-1095.5 3796.1675,-1059.5 3888.9586,-1059.5 3888.9586,-1095.5"/>
<text text-anchor="middle" x="3842.563" y="-1080.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="3842.563" y="-1067.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.22s(1.05%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N34 -->
<g id="edge90" class="edge">
<title>N55&#45;&gt;N34</title>
<g id="a_edge90"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.12s)">
<path fill="none" stroke="#000000" d="M696.5587,-1057.6337C693.5191,-1056.3927 690.5008,-1055.1724 687.563,-1054 629.297,-1030.7477 591.2107,-1055.6222 555.563,-1004 543.6933,-986.8112 544.6236,-974.7953 555.563,-957 611.3729,-866.2134 732.7332,-822.3914 812.7639,-802.6182"/>
<polygon fill="#000000" stroke="#000000" points="813.8898,-805.9475 822.7974,-800.2113 812.2568,-799.1406 813.8898,-805.9475"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.12s)">
<text text-anchor="middle" x="595.2872" y="-927.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.(*mheap).alloc (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1224.0314,-122 1123.0947,-122 1123.0947,-86 1224.0314,-86 1224.0314,-122"/>
<text text-anchor="middle" x="1173.563" y="-110.3" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="1173.563" y="-101.3" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.048%)</text>
<text text-anchor="middle" x="1173.563" y="-92.3" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.18s(0.86%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N61 -->
<g id="edge68" class="edge">
<title>N56&#45;&gt;N61</title>
<g id="a_edge68"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.18s)">
<path fill="none" stroke="#000000" d="M2049.8005,-184.9414C1886.6025,-169.8662 1404.3429,-125.318 1233.9953,-109.5824"/>
<polygon fill="#000000" stroke="#000000" points="1234.2309,-106.0893 1223.9513,-108.6546 1233.5869,-113.0596 1234.2309,-106.0893"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.18s)">
<text text-anchor="middle" x="1711.2872" y="-142.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N41 -->
<g id="edge103" class="edge">
<title>N58&#45;&gt;N41</title>
<g id="a_edge103"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.06s)">
<path fill="none" stroke="#000000" d="M130.563,-1162.8331C130.563,-1148.097 130.563,-1127.3967 130.563,-1110.0749"/>
<polygon fill="#000000" stroke="#000000" points="134.0631,-1109.8097 130.563,-1099.8097 127.0631,-1109.8097 134.0631,-1109.8097"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.(*machine).executeMultiply &#45;&gt; runtime.assertI2I (0.06s)">
<text text-anchor="middle" x="147.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.makemap (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1391.2866,-1098 1295.8395,-1098 1295.8395,-1057 1391.2866,-1057 1391.2866,-1098"/>
<text text-anchor="middle" x="1343.563" y="-1085.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="1343.563" y="-1074.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.33%)</text>
<text text-anchor="middle" x="1343.563" y="-1063.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.18s(0.86%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N63 -->
<g id="edge67" class="edge">
<title>N59&#45;&gt;N63</title>
<g id="a_edge67"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.18s)">
<path fill="none" stroke="#000000" d="M1364.2084,-1163.7975C1360.5427,-1148.4748 1355.2216,-1126.2329 1350.8997,-1108.1673"/>
<polygon fill="#000000" stroke="#000000" points="1354.2853,-1107.2758 1348.5546,-1098.3647 1347.4774,-1108.9046 1354.2853,-1107.2758"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.18s)">
<text text-anchor="middle" x="1374.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N57 -->
<g id="edge71" class="edge">
<title>N61&#45;&gt;N57</title>
<g id="a_edge71"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.17s)">
<path fill="none" stroke="#000000" d="M1159.9903,-85.7616C1151.0809,-73.7896 1139.2805,-57.9328 1129.335,-44.5685"/>
<polygon fill="#000000" stroke="#000000" points="1131.8942,-42.1449 1123.1162,-36.2121 1126.2786,-46.324 1131.8942,-42.1449"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.17s)">
<text text-anchor="middle" x="1162.2872" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N6 -->
<g id="edge96" class="edge">
<title>N63&#45;&gt;N6</title>
<g id="a_edge96"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.10s)">
<path fill="none" stroke="#000000" d="M1340.3267,-1056.6799C1332.5702,-1006.7796 1312.8743,-880.069 1303.5729,-820.2301"/>
<polygon fill="#000000" stroke="#000000" points="1307.0093,-819.5497 1302.0147,-810.206 1300.0923,-820.6249 1307.0093,-819.5497"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.10s)">
<text text-anchor="middle" x="1339.2872" y="-927.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N8 -->
<g id="edge98" class="edge">
<title>N64&#45;&gt;N8</title>
<g id="a_edge98"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.08s)">
<path fill="none" stroke="#000000" d="M2996.2764,-1402.426C3055.3223,-1393.5649 3165.2829,-1377.8788 3259.563,-1369 3397.4067,-1356.0186 3433.1747,-1368.1413 3570.563,-1351 3656.3365,-1340.2984 3755.563,-1377.4384 3755.563,-1291 3755.563,-1291 3755.563,-1291 3755.563,-571 3755.563,-518.1957 3390.2753,-489.4336 3228.3222,-479.2765"/>
<polygon fill="#000000" stroke="#000000" points="3228.152,-475.7594 3217.9548,-478.6344 3227.7192,-482.746 3228.152,-475.7594"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.08s)">
<text text-anchor="middle" x="3772.2872" y="-927.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.osyield (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3879.3329,-1200 3805.7931,-1200 3805.7931,-1164 3879.3329,-1164 3879.3329,-1200"/>
<text text-anchor="middle" x="3842.563" y="-1183.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="3842.563" y="-1175.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.17s(0.81%)</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N54 -->
<g id="edge74" class="edge">
<title>N65&#45;&gt;N54</title>
<g id="a_edge74"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.17s)">
<path fill="none" stroke="#000000" d="M3842.563,-1163.7975C3842.563,-1147.8617 3842.563,-1124.442 3842.563,-1106.0195"/>
<polygon fill="#000000" stroke="#000000" points="3846.0631,-1105.8445 3842.563,-1095.8445 3839.0631,-1105.8446 3846.0631,-1105.8445"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.17s)">
<text text-anchor="middle" x="3859.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N5 -->
<g id="edge92" class="edge">
<title>N66&#45;&gt;N5</title>
<g id="a_edge92"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.12s)">
<path fill="none" stroke="#000000" d="M1980.3482,-1058.2053C1978.2974,-1038.6515 1975.563,-1007.5145 1975.563,-980.5 1975.563,-980.5 1975.563,-980.5 1975.563,-788 1975.563,-729.8069 1580.629,-696.9211 1394.0459,-684.6316"/>
<polygon fill="#000000" stroke="#000000" points="1394.1691,-681.1323 1383.9625,-683.9742 1393.7136,-688.1175 1394.1691,-681.1323"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.12s)">
<text text-anchor="middle" x="1992.2872" y="-879.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.semasleep1 (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2911.3212,-301 2831.8049,-301 2831.8049,-265 2911.3212,-265 2911.3212,-301"/>
<text text-anchor="middle" x="2871.563" y="-284.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="2871.563" y="-276.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(0.71%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N68 -->
<g id="edge77" class="edge">
<title>N67&#45;&gt;N68</title>
<g id="a_edge77"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.15s)">
<path fill="none" stroke="#000000" d="M2876.4345,-360.9431C2875.5684,-347.0862 2874.3559,-327.6861 2873.3573,-311.7075"/>
<polygon fill="#000000" stroke="#000000" points="2876.824,-311.0645 2872.7069,-301.3023 2869.8376,-311.5012 2876.824,-311.0645"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.semasleep.func1 &#45;&gt; runtime.semasleep1 (0.15s)">
<text text-anchor="middle" x="2891.2872" y="-328.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="main.Integer.Add (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="732.5484,-999.5 646.5777,-999.5 646.5777,-961.5 732.5484,-961.5 732.5484,-999.5"/>
<text text-anchor="middle" x="689.563" y="-987.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="689.563" y="-977.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.095%)</text>
<text text-anchor="middle" x="689.563" y="-967.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.12s(0.57%)</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N78 -->
<g id="edge86" class="edge">
<title>N69&#45;&gt;N78</title>
<g id="a_edge86"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.12s)">
<path fill="none" stroke="#000000" d="M641.4171,-1058.3359C650.2102,-1044.1204 662.3347,-1024.5191 672.2166,-1008.5434"/>
<polygon fill="#000000" stroke="#000000" points="675.4496,-1009.97 677.7336,-999.6243 669.4964,-1006.2876 675.4496,-1009.97"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.12s)">
<text text-anchor="middle" x="680.2872" y="-1024.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.goschedImpl (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4005.7703,-1200 3921.3558,-1200 3921.3558,-1164 4005.7703,-1164 4005.7703,-1200"/>
<text text-anchor="middle" x="3963.563" y="-1183.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="3963.563" y="-1175.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(0.67%)</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N53 -->
<g id="edge80" class="edge">
<title>N70&#45;&gt;N53</title>
<g id="a_edge80"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.14s)">
<path fill="none" stroke="#000000" d="M3963.563,-1163.7975C3963.563,-1148.0573 3963.563,-1125.0155 3963.563,-1106.6999"/>
<polygon fill="#000000" stroke="#000000" points="3967.0631,-1106.553 3963.563,-1096.553 3960.0631,-1106.553 3967.0631,-1106.553"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.14s)">
<text text-anchor="middle" x="3980.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.gopreempt_m (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4007.38,-1309 3919.7461,-1309 3919.7461,-1273 4007.38,-1273 4007.38,-1309"/>
<text text-anchor="middle" x="3963.563" y="-1292.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="3963.563" y="-1284.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(0.62%)</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N70 -->
<g id="edge82" class="edge">
<title>N73&#45;&gt;N70</title>
<g id="a_edge82"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.13s)">
<path fill="none" stroke="#000000" d="M3963.563,-1272.5096C3963.563,-1255.4952 3963.563,-1230.0055 3963.563,-1210.4076"/>
<polygon fill="#000000" stroke="#000000" points="3967.0631,-1210.2173 3963.563,-1200.2173 3960.0631,-1210.2173 3967.0631,-1210.2173"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.13s)">
<text text-anchor="middle" x="3980.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.morestack (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4001.3212,-1617 3925.8048,-1617 3925.8048,-1581 4001.3212,-1581 4001.3212,-1617"/>
<text text-anchor="middle" x="3963.563" y="-1600.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="3963.563" y="-1592.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(0.62%)</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.newstack (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4000.3329,-1427 3926.7931,-1427 3926.7931,-1391 4000.3329,-1391 4000.3329,-1427"/>
<text text-anchor="middle" x="3963.563" y="-1410.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="3963.563" y="-1402.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(0.62%)</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N75 -->
<g id="edge84" class="edge">
<title>N74&#45;&gt;N75</title>
<g id="a_edge84"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.13s)">
<path fill="none" stroke="#000000" d="M3963.563,-1580.782C3963.563,-1547.5153 3963.563,-1476.7296 3963.563,-1437.1957"/>
<polygon fill="#000000" stroke="#000000" points="3967.0631,-1437.1628 3963.563,-1427.1628 3960.0631,-1437.1629 3967.0631,-1437.1628"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.13s)">
<text text-anchor="middle" x="3980.2872" y="-1469.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N73 -->
<g id="edge85" class="edge">
<title>N75&#45;&gt;N73</title>
<g id="a_edge85"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.13s)">
<path fill="none" stroke="#000000" d="M3963.563,-1390.8211C3963.563,-1371.7094 3963.563,-1341.3891 3963.563,-1319.1751"/>
<polygon fill="#000000" stroke="#000000" points="3967.0631,-1319.0059 3963.563,-1309.0059 3960.0631,-1319.006 3967.0631,-1319.0059"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.13s)">
<text text-anchor="middle" x="3980.2872" y="-1339.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N11 -->
<g id="edge87" class="edge">
<title>N76&#45;&gt;N11</title>
<g id="a_edge87"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.12s)">
<path fill="none" stroke="#000000" d="M525.5253,-1059.2167C538.1579,-1032.4478 565.39,-982.9596 604.1148,-957 644.1143,-930.1859 773.2552,-905.7911 851.5013,-892.9661"/>
<polygon fill="#000000" stroke="#000000" points="852.4091,-896.3647 861.7201,-891.3095 851.2888,-889.4549 852.4091,-896.3647"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.12s)">
<text text-anchor="middle" x="621.2872" y="-976.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N11 -->
<g id="edge110" class="edge">
<title>N77&#45;&gt;N11</title>
<g id="a_edge110"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.03s)">
<path fill="none" stroke="#000000" d="M785.9796,-1161.4829C809.3347,-1110.596 870.0844,-978.2326 898.4989,-916.3223"/>
<polygon fill="#000000" stroke="#000000" points="901.7805,-917.5627 902.7709,-907.0143 895.4186,-914.6428 901.7805,-917.5627"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.03s)">
<text text-anchor="middle" x="867.2872" y="-1024.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N55 -->
<g id="edge109" class="edge">
<title>N77&#45;&gt;N55</title>
<g id="a_edge109"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M770.0433,-1161.3542C765.2071,-1146.0396 758.5386,-1124.9226 753.1036,-1107.7117"/>
<polygon fill="#000000" stroke="#000000" points="756.4182,-1106.5848 750.0692,-1098.1029 749.7431,-1108.6928 756.4182,-1106.5848"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="778.2872" y="-1121.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N11 -->
<g id="edge97" class="edge">
<title>N78&#45;&gt;N11</title>
<g id="a_edge97"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.08s)">
<path fill="none" stroke="#000000" d="M730.1607,-961.4295C753.6912,-950.5103 783.9483,-936.6978 811.1148,-925 824.433,-919.2652 838.8147,-913.3002 852.4717,-907.7406"/>
<polygon fill="#000000" stroke="#000000" points="853.8358,-910.9643 861.7887,-903.9642 851.2063,-904.4769 853.8358,-910.9643"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.08s)">
<text text-anchor="middle" x="828.2872" y="-927.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N65 -->
<g id="edge100" class="edge">
<title>N79&#45;&gt;N65</title>
<g id="a_edge100"><a xlink:title="runtime.gcFlushBgCredit ... runtime.osyield (0.07s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3842.563,-1271.7639C3842.563,-1254.7467 3842.563,-1229.6911 3842.563,-1210.3728"/>
<polygon fill="#000000" stroke="#000000" points="3846.0631,-1210.318 3842.563,-1200.3181 3839.0631,-1210.3181 3846.0631,-1210.318"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.gcFlushBgCredit ... runtime.osyield (0.07s)">
<text text-anchor="middle" x="3859.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N10 -->
<g id="edge111" class="edge">
<title>N80&#45;&gt;N10</title>
<g id="a_edge111"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.03s)">
<path fill="none" stroke="#000000" d="M2443.0447,-1270.4979C2409.8348,-1255.5398 2363.9944,-1234.8926 2324.9439,-1217.3038"/>
<polygon fill="#000000" stroke="#000000" points="2326.2481,-1214.0526 2315.6929,-1213.137 2323.3733,-1220.4351 2326.2481,-1214.0526"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.03s)">
<text text-anchor="middle" x="2398.2872" y="-1233.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion7.svg.

































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1555)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1555 4081.9761,-1555 4081.9761,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="1404.0708,-1327 1404.0708,-1543 2064.0708,-1543 2064.0708,-1327 1404.0708,-1327"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="2056.2428,-1535 1411.8988,-1535 1411.8988,-1335 2056.2428,-1335 2056.2428,-1535"/>
<text text-anchor="start" x="1419.7349" y="-1505.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="1419.7349" y="-1473.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="1419.7349" y="-1441.4" font-family="Times,serif" font-size="32.00" fill="#000000">10.99s of 11.84s total (92.82%)</text>
<text text-anchor="start" x="1419.7349" y="-1409.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 68 nodes (cum &lt;= 0.06s)</text>
<text text-anchor="start" x="1419.7349" y="-1377.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 15 edges (freq &lt;= 0.01s)</text>
<text text-anchor="start" x="1419.7349" y="-1345.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 115 (cum &gt;= 0.07s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (10.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2232.4021,-1285 1993.7395,-1285 1993.7395,-1211 2232.4021,-1211 2232.4021,-1285"/>
<text text-anchor="middle" x="2113.0708" y="-1263.4" font-family="Times,serif" font-size="22.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="2113.0708" y="-1241.4" font-family="Times,serif" font-size="22.00" fill="#000000">1.20s(10.14%)</text>
<text text-anchor="middle" x="2113.0708" y="-1219.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 10.91s(92.15%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute.func6 (10.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1874.665,-1153.5 1707.4766,-1153.5 1707.4766,-1109.5 1874.665,-1109.5 1874.665,-1153.5"/>
<text text-anchor="middle" x="1791.0708" y="-1139.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).execute.func6</text>
<text text-anchor="middle" x="1791.0708" y="-1127.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.76%)</text>
<text text-anchor="middle" x="1791.0708" y="-1115.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 10.91s(92.15%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge8" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge8"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func6 (1.62s)">
<path fill="none" stroke="#000000" d="M1993.7054,-1226.8522C1958.4315,-1218.5297 1920.273,-1207.429 1886.6226,-1193 1866.2418,-1184.2609 1845.3367,-1171.3393 1828.2972,-1159.5929"/>
<polygon fill="#000000" stroke="#000000" points="1829.9543,-1156.4792 1819.7622,-1153.5858 1825.9254,-1162.2036 1829.9543,-1156.4792"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func6 (1.62s)">
<text text-anchor="middle" x="1903.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.62s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).execute.func3 (10.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2678.5317,-1152 2523.6099,-1152 2523.6099,-1111 2678.5317,-1111 2678.5317,-1152"/>
<text text-anchor="middle" x="2601.0708" y="-1139.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).execute.func3</text>
<text text-anchor="middle" x="2601.0708" y="-1128.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="2601.0708" y="-1117.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 10.27s(86.74%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N3 -->
<g id="edge38" class="edge">
<title>N1&#45;&gt;N3</title>
<g id="a_edge38"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func3 (0.25s)">
<path fill="none" stroke="#000000" d="M2232.4418,-1213.3154C2235.6808,-1212.518 2238.895,-1211.7444 2242.0708,-1211 2362.1675,-1182.8506 2395.7328,-1192.2097 2515.0708,-1161 2521.6373,-1159.2827 2528.4242,-1157.31 2535.1723,-1155.2162"/>
<polygon fill="#000000" stroke="#000000" points="2536.5396,-1158.4537 2545.0009,-1152.0774 2534.4101,-1151.7855 2536.5396,-1158.4537"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func3 (0.25s)">
<text text-anchor="middle" x="2448.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.(*machine).loadLoopWords.func1 (7.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2209.0547,-1152 2017.0869,-1152 2017.0869,-1111 2209.0547,-1111 2209.0547,-1152"/>
<text text-anchor="middle" x="2113.0708" y="-1139.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="2113.0708" y="-1128.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.51%)</text>
<text text-anchor="middle" x="2113.0708" y="-1117.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 7.42s(62.67%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N5 -->
<g id="edge39" class="edge">
<title>N1&#45;&gt;N5</title>
<g id="a_edge39"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.25s)">
<path fill="none" stroke="#000000" d="M2083.5254,-1210.7545C2080.2889,-1205.0733 2077.4934,-1199.0718 2075.6226,-1193 2072.0854,-1181.5201 2076.4802,-1169.9932 2083.3505,-1160.0721"/>
<polygon fill="#000000" stroke="#000000" points="2086.1494,-1162.1751 2089.584,-1152.1524 2080.6488,-1157.8456 2086.1494,-1162.1751"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.25s)">
<text text-anchor="middle" x="2092.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.(*machine).execute.func7 (2.75s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1480.2975,-1155 1299.8441,-1155 1299.8441,-1108 1480.2975,-1108 1480.2975,-1155"/>
<text text-anchor="middle" x="1390.0708" y="-1140.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).execute.func7</text>
<text text-anchor="middle" x="1390.0708" y="-1127.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.13s(1.10%)</text>
<text text-anchor="middle" x="1390.0708" y="-1114.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 2.75s(23.23%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N10 -->
<g id="edge9" class="edge">
<title>N1&#45;&gt;N10</title>
<g id="a_edge9"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (1.54s)">
<path fill="none" stroke="#000000" d="M1993.7486,-1242.6533C1885.5262,-1236.1472 1722.0693,-1222.1736 1582.6226,-1193 1542.1201,-1184.5265 1498.078,-1170.8113 1462.3498,-1158.4808"/>
<polygon fill="#000000" stroke="#000000" points="1463.0977,-1155.0349 1452.5029,-1155.0452 1460.7917,-1161.6442 1463.0977,-1155.0349"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (1.54s)">
<text text-anchor="middle" x="1599.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.54s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.NilWord.func1 (1.71s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1999.3372,-1152 1892.8044,-1152 1892.8044,-1111 1999.3372,-1111 1999.3372,-1152"/>
<text text-anchor="middle" x="1946.0708" y="-1139.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="1946.0708" y="-1128.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.51%)</text>
<text text-anchor="middle" x="1946.0708" y="-1117.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 1.71s(14.44%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N12 -->
<g id="edge20" class="edge">
<title>N1&#45;&gt;N12</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.58s)">
<path fill="none" stroke="#000000" d="M2059.7718,-1210.8184C2035.056,-1193.5765 2006.2603,-1173.4885 1983.8319,-1157.8424"/>
<polygon fill="#000000" stroke="#000000" points="1985.7737,-1154.9294 1975.5696,-1152.0785 1981.7686,-1160.6705 1985.7737,-1154.9294"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.58s)">
<text text-anchor="middle" x="2046.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="runtime.convT2I (1.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1113.6548,-858 1000.4868,-858 1000.4868,-808 1113.6548,-808 1113.6548,-858"/>
<text text-anchor="middle" x="1057.0708" y="-842.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1057.0708" y="-828.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.18s(1.52%)</text>
<text text-anchor="middle" x="1057.0708" y="-814.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.39s(11.74%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N13 -->
<g id="edge22" class="edge">
<title>N1&#45;&gt;N13</title>
<g id="a_edge22"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.56s)">
<path fill="none" stroke="#000000" d="M1993.4424,-1242.5356C1740.0141,-1230.2889 1165.6067,-1198.7384 1085.0708,-1161 1032.7058,-1136.4622 1039.2498,-1103.4416 992.0708,-1070 977.3311,-1059.5522 965.1588,-1067.3452 955.6226,-1052 916.7346,-989.4234 979.1219,-909.496 1022.0117,-865.5713"/>
<polygon fill="#000000" stroke="#000000" points="1024.6578,-867.8743 1029.2363,-858.3198 1019.6989,-862.9337 1024.6578,-867.8743"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.56s)">
<text text-anchor="middle" x="972.7949" y="-1024.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.56s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.deferreturn (0.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="372.2011,-1161 223.9405,-1161 223.9405,-1102 372.2011,-1102 372.2011,-1161"/>
<text text-anchor="middle" x="298.0708" y="-1143.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="298.0708" y="-1126.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.45s(3.80%)</text>
<text text-anchor="middle" x="298.0708" y="-1109.4" font-family="Times,serif" font-size="17.00" fill="#000000">of 0.77s(6.50%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N16 -->
<g id="edge17" class="edge">
<title>N1&#45;&gt;N16</title>
<g id="a_edge17"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.77s)">
<path fill="none" stroke="#000000" d="M1993.8308,-1247.1792C1672.8011,-1244.4474 795.2161,-1233.3978 508.6226,-1193 466.0382,-1186.9974 420.0517,-1174.3229 381.9514,-1162.031"/>
<polygon fill="#000000" stroke="#000000" points="383.0343,-1158.7028 372.4417,-1158.9185 380.8568,-1165.3556 383.0343,-1158.7028"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.77s)">
<text text-anchor="middle" x="525.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.77s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.growslice (0.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2883.2956,-1155 2772.846,-1155 2772.846,-1108 2883.2956,-1108 2883.2956,-1155"/>
<text text-anchor="middle" x="2828.0708" y="-1140.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="2828.0708" y="-1127.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.13s(1.10%)</text>
<text text-anchor="middle" x="2828.0708" y="-1114.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.64s(5.41%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N18 -->
<g id="edge19" class="edge">
<title>N1&#45;&gt;N18</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.64s)">
<path fill="none" stroke="#000000" d="M2232.3203,-1212.6972C2235.5951,-1212.082 2238.8497,-1211.5138 2242.0708,-1211 2348.7958,-1193.9769 2624.6402,-1224.3385 2728.0708,-1193 2750.3654,-1186.2449 2772.6859,-1173.2625 2790.565,-1160.96"/>
<polygon fill="#000000" stroke="#000000" points="2792.8313,-1163.6437 2798.9657,-1155.0054 2788.7833,-1157.9328 2792.8313,-1163.6437"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.64s)">
<text text-anchor="middle" x="2777.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.64s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.deferproc (0.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3011.0538,-1155 2901.0878,-1155 2901.0878,-1108 3011.0538,-1108 3011.0538,-1155"/>
<text text-anchor="middle" x="2956.0708" y="-1140.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="2956.0708" y="-1127.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(0.93%)</text>
<text text-anchor="middle" x="2956.0708" y="-1114.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.57s(4.81%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N19 -->
<g id="edge21" class="edge">
<title>N1&#45;&gt;N19</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.57s)">
<path fill="none" stroke="#000000" d="M2232.3171,-1212.6771C2235.5928,-1212.0678 2238.8485,-1211.5063 2242.0708,-1211 2486.3151,-1172.6251 2554.8354,-1237.3221 2798.0708,-1193 2833.2163,-1186.5958 2870.5492,-1172.4415 2900.0965,-1159.3247"/>
<polygon fill="#000000" stroke="#000000" points="2901.7355,-1162.4248 2909.4035,-1155.1137 2898.8499,-1156.0472 2901.7355,-1162.4248"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.57s)">
<text text-anchor="middle" x="2864.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.57s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="main.executeSubtract (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="733.5586,-1152 622.583,-1152 622.583,-1111 733.5586,-1111 733.5586,-1152"/>
<text text-anchor="middle" x="678.0708" y="-1139.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeSubtract</text>
<text text-anchor="middle" x="678.0708" y="-1128.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.42%)</text>
<text text-anchor="middle" x="678.0708" y="-1117.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.43s(3.63%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N21 -->
<g id="edge26" class="edge">
<title>N1&#45;&gt;N21</title>
<g id="a_edge26"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.43s)">
<path fill="none" stroke="#000000" d="M1993.8555,-1247.1572C1720.8628,-1244.5309 1057.0558,-1234.0004 837.6226,-1193 799.5407,-1185.8845 758.8232,-1170.0421 728.0532,-1156.2191"/>
<polygon fill="#000000" stroke="#000000" points="729.3871,-1152.9805 718.8372,-1152.0059 726.4767,-1159.3468 729.3871,-1152.9805"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.43s)">
<text text-anchor="middle" x="854.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="main.(*CodeQuotation).nextWord (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3247.146,-1150.5 3028.9956,-1150.5 3028.9956,-1112.5 3247.146,-1112.5 3247.146,-1150.5"/>
<text text-anchor="middle" x="3138.0708" y="-1134.5" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="3138.0708" y="-1119.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.33s(2.79%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N24 -->
<g id="edge30" class="edge">
<title>N1&#45;&gt;N24</title>
<g id="a_edge30"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.33s)">
<path fill="none" stroke="#000000" d="M2232.3141,-1212.6582C2235.5907,-1212.0545 2238.8474,-1211.4992 2242.0708,-1211 2524.5923,-1167.2443 2601.6069,-1230.1643 2885.0708,-1193 2947.1523,-1184.8606 3016.1214,-1167.5243 3066.3494,-1153.3265"/>
<polygon fill="#000000" stroke="#000000" points="3067.4824,-1156.643 3076.1375,-1150.5324 3065.5609,-1149.9118 3067.4824,-1156.643"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.33s)">
<text text-anchor="middle" x="2979.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.mapassign1 (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="978.4732,-1152 873.6684,-1152 873.6684,-1111 978.4732,-1111 978.4732,-1152"/>
<text text-anchor="middle" x="926.0708" y="-1139.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="926.0708" y="-1128.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.51%)</text>
<text text-anchor="middle" x="926.0708" y="-1117.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.28s(2.36%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N27 -->
<g id="edge34" class="edge">
<title>N1&#45;&gt;N27</title>
<g id="a_edge34"><a xlink:title="main.(*machine).execute ... runtime.mapassign1 (0.28s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1993.819,-1245.4855C1707.5226,-1239.0231 1001.7623,-1220.3961 958.6226,-1193 947.389,-1185.8661 939.7958,-1173.4845 934.7901,-1161.6922"/>
<polygon fill="#000000" stroke="#000000" points="937.9627,-1160.1848 931.1707,-1152.0534 931.4095,-1162.6456 937.9627,-1160.1848"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="main.(*machine).execute ... runtime.mapassign1 (0.28s)">
<text text-anchor="middle" x="975.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1281.704,-1153.5 1094.4376,-1153.5 1094.4376,-1109.5 1281.704,-1109.5 1281.704,-1153.5"/>
<text text-anchor="middle" x="1188.0708" y="-1139.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(intPusher).(main.pushInt)&#45;fm</text>
<text text-anchor="middle" x="1188.0708" y="-1127.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.59%)</text>
<text text-anchor="middle" x="1188.0708" y="-1115.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.25s(2.11%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N31 -->
<g id="edge40" class="edge">
<title>N1&#45;&gt;N31</title>
<g id="a_edge40"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.25s)">
<path fill="none" stroke="#000000" d="M1993.625,-1243.8191C1832.4327,-1236.2638 1537.1053,-1215.6522 1291.0708,-1161 1284.4827,-1159.5366 1277.6932,-1157.8954 1270.8917,-1156.1563"/>
<polygon fill="#000000" stroke="#000000" points="1271.5008,-1152.6978 1260.9401,-1153.5476 1269.7257,-1159.469 1271.5008,-1152.6978"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.25s)">
<text text-anchor="middle" x="1463.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2506.0396,-1153.5 2296.102,-1153.5 2296.102,-1109.5 2506.0396,-1109.5 2506.0396,-1153.5"/>
<text text-anchor="middle" x="2401.0708" y="-1139.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2401.0708" y="-1127.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.76%)</text>
<text text-anchor="middle" x="2401.0708" y="-1115.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.22s(1.86%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N34 -->
<g id="edge43" class="edge">
<title>N1&#45;&gt;N34</title>
<g id="a_edge43"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.22s)">
<path fill="none" stroke="#000000" d="M2213.4559,-1210.9159C2228.7829,-1205.0425 2244.3823,-1198.9434 2259.0708,-1193 2286.6852,-1181.8264 2317.0182,-1168.7944 2342.5341,-1157.6101"/>
<polygon fill="#000000" stroke="#000000" points="2343.9564,-1160.8081 2351.7027,-1153.58 2341.1397,-1154.3998 2343.9564,-1160.8081"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.22s)">
<text text-anchor="middle" x="2307.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.memeqbody (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3397.323,-1149.5 3264.8186,-1149.5 3264.8186,-1113.5 3397.323,-1113.5 3397.323,-1149.5"/>
<text text-anchor="middle" x="3331.0708" y="-1134.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="3331.0708" y="-1120.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.20s(1.69%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N39 -->
<g id="edge46" class="edge">
<title>N1&#45;&gt;N39</title>
<g id="a_edge46"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.20s)">
<path fill="none" stroke="#000000" d="M2232.3113,-1212.6399C2235.5888,-1212.0416 2238.8463,-1211.4924 2242.0708,-1211 2408.632,-1185.5656 2832.0406,-1205.4652 3000.0708,-1193 3114.4198,-1184.5171 3144.9594,-1189.3182 3256.0708,-1161 3264.2567,-1158.9137 3272.753,-1156.1707 3280.958,-1153.1967"/>
<polygon fill="#000000" stroke="#000000" points="3282.3005,-1156.4311 3290.4201,-1149.625 3279.8284,-1149.8821 3282.3005,-1156.4311"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.20s)">
<text text-anchor="middle" x="3185.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="main.executeMultiply (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="856.103,-1150.5 752.0386,-1150.5 752.0386,-1112.5 856.103,-1112.5 856.103,-1150.5"/>
<text text-anchor="middle" x="804.0708" y="-1138.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.executeMultiply</text>
<text text-anchor="middle" x="804.0708" y="-1128.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.17%)</text>
<text text-anchor="middle" x="804.0708" y="-1118.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(1.52%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N45 -->
<g id="edge49" class="edge">
<title>N1&#45;&gt;N45</title>
<g id="a_edge49"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.18s)">
<path fill="none" stroke="#000000" d="M1993.7158,-1245.8136C1709.8648,-1240.1477 1010.584,-1223.2795 908.6226,-1193 882.7724,-1185.3233 856.624,-1169.9391 836.9434,-1156.4787"/>
<polygon fill="#000000" stroke="#000000" points="838.8491,-1153.5403 828.653,-1150.6606 834.8279,-1159.2701 838.8491,-1153.5403"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.18s)">
<text text-anchor="middle" x="925.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.ifaceeq (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3515.1964,-1155 3414.9452,-1155 3414.9452,-1108 3515.1964,-1108 3515.1964,-1155"/>
<text text-anchor="middle" x="3465.0708" y="-1140.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="3465.0708" y="-1127.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.16s(1.35%)</text>
<text text-anchor="middle" x="3465.0708" y="-1114.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.18s(1.52%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N46 -->
<g id="edge50" class="edge">
<title>N1&#45;&gt;N46</title>
<g id="a_edge50"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.18s)">
<path fill="none" stroke="#000000" d="M2232.308,-1212.618C2235.5864,-1212.0261 2238.8451,-1211.4842 2242.0708,-1211 2453.9565,-1179.194 2992.6528,-1211.9719 3206.0708,-1193 3295.7367,-1185.0291 3320.3739,-1188.5599 3406.0708,-1161 3407.9923,-1160.382 3409.9289,-1159.7094 3411.8694,-1158.9924"/>
<polygon fill="#000000" stroke="#000000" points="3413.5875,-1162.0735 3421.5524,-1155.0871 3410.9691,-1155.5816 3413.5875,-1162.0735"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.18s)">
<text text-anchor="middle" x="3355.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="main.executeLessThan (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="604.9751,-1150.5 497.1665,-1150.5 497.1665,-1112.5 604.9751,-1112.5 604.9751,-1150.5"/>
<text text-anchor="middle" x="551.0708" y="-1138.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.executeLessThan</text>
<text text-anchor="middle" x="551.0708" y="-1128.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.17%)</text>
<text text-anchor="middle" x="551.0708" y="-1118.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.17s(1.44%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N48 -->
<g id="edge54" class="edge">
<title>N1&#45;&gt;N48</title>
<g id="a_edge54"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeLessThan (0.17s)">
<path fill="none" stroke="#000000" d="M1993.7312,-1246.0892C1707.6785,-1241.0393 989.0006,-1225.4431 750.6226,-1193 688.8581,-1184.5939 672.9588,-1181.4381 614.0708,-1161 608.7939,-1159.1686 603.3674,-1157.036 598.0175,-1154.7709"/>
<polygon fill="#000000" stroke="#000000" points="599.082,-1151.4153 588.5196,-1150.587 596.2601,-1157.8213 599.082,-1151.4153"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeLessThan (0.17s)">
<text text-anchor="middle" x="767.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="main.isZeroPred (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="479.5801,-1152 390.5615,-1152 390.5615,-1111 479.5801,-1111 479.5801,-1152"/>
<text text-anchor="middle" x="435.0708" y="-1139.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.isZeroPred</text>
<text text-anchor="middle" x="435.0708" y="-1128.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="435.0708" y="-1117.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(1.01%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N56 -->
<g id="edge62" class="edge">
<title>N1&#45;&gt;N56</title>
<g id="a_edge62"><a xlink:title="main.(*machine).execute &#45;&gt; main.isZeroPred (0.12s)">
<path fill="none" stroke="#000000" d="M1993.8219,-1246.2741C1690.9002,-1241.4538 897.2898,-1225.9828 635.6226,-1193 569.0463,-1184.6081 550.855,-1184.6847 488.0708,-1161 484.6161,-1159.6968 481.1135,-1158.1971 477.641,-1156.5793"/>
<polygon fill="#000000" stroke="#000000" points="479.0857,-1153.389 468.5727,-1152.0748 475.9715,-1159.6581 479.0857,-1153.389"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.isZeroPred (0.12s)">
<text text-anchor="middle" x="652.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="main.tryParseFloat (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3632.974,-1152 3533.1676,-1152 3533.1676,-1111 3632.974,-1111 3632.974,-1152"/>
<text text-anchor="middle" x="3583.0708" y="-1139.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="3583.0708" y="-1128.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="3583.0708" y="-1117.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(0.76%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N67 -->
<g id="edge74" class="edge">
<title>N1&#45;&gt;N67</title>
<g id="a_edge74"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.09s)">
<path fill="none" stroke="#000000" d="M2232.3062,-1212.6059C2235.5851,-1212.0176 2238.8444,-1211.4797 2242.0708,-1211 2491.3623,-1173.9357 3125.6866,-1221.7708 3376.0708,-1193 3442.9286,-1185.3176 3460.5873,-1183.3346 3524.0708,-1161 3528.0207,-1159.6104 3532.0457,-1158.0159 3536.044,-1156.3035"/>
<polygon fill="#000000" stroke="#000000" points="3537.603,-1159.4399 3545.2766,-1152.1347 3534.7223,-1153.0601 3537.603,-1159.4399"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.09s)">
<text text-anchor="middle" x="3483.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="main.(*machine).execute.func2 (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3805.5317,-1152 3650.6099,-1152 3650.6099,-1111 3805.5317,-1111 3805.5317,-1152"/>
<text text-anchor="middle" x="3728.0708" y="-1139.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).execute.func2</text>
<text text-anchor="middle" x="3728.0708" y="-1128.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="3728.0708" y="-1117.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.08s(0.68%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N72 -->
<g id="edge81" class="edge">
<title>N1&#45;&gt;N72</title>
<g id="a_edge81"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func2 (0.08s)">
<path fill="none" stroke="#000000" d="M2232.3051,-1212.5989C2235.5844,-1212.0127 2238.844,-1211.4771 2242.0708,-1211 2519.5274,-1169.9763 3225.6505,-1226.8711 3504.0708,-1193 3558.223,-1186.4121 3617.689,-1169.6153 3661.7337,-1155.2376"/>
<polygon fill="#000000" stroke="#000000" points="3663.0586,-1158.4859 3671.4535,-1152.0224 3660.8602,-1151.8401 3663.0586,-1158.4859"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func2 (0.08s)">
<text text-anchor="middle" x="3588.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="main.(*CodeQuotation).getcodePosition (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1689.9212,-1152 1498.2204,-1152 1498.2204,-1111 1689.9212,-1111 1689.9212,-1152"/>
<text text-anchor="middle" x="1594.0708" y="-1139.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*CodeQuotation).getcodePosition</text>
<text text-anchor="middle" x="1594.0708" y="-1128.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.34%)</text>
<text text-anchor="middle" x="1594.0708" y="-1117.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.07s(0.59%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N76 -->
<g id="edge85" class="edge">
<title>N1&#45;&gt;N76</title>
<g id="a_edge85"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).getcodePosition (0.07s)">
<path fill="none" stroke="#000000" d="M1993.8081,-1226.9C1941.7148,-1217.2608 1879.995,-1205.2685 1824.6226,-1193 1767.9807,-1180.4502 1754.106,-1176.0285 1698.0708,-1161 1690.6146,-1159.0002 1682.8695,-1156.8815 1675.1208,-1154.7337"/>
<polygon fill="#000000" stroke="#000000" points="1675.898,-1151.317 1665.3255,-1152.0043 1674.019,-1158.0601 1675.898,-1151.317"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).getcodePosition (0.07s)">
<text text-anchor="middle" x="1841.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="main.(*machine).execute.func1 (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3978.5317,-1152 3823.6099,-1152 3823.6099,-1111 3978.5317,-1111 3978.5317,-1152"/>
<text text-anchor="middle" x="3901.0708" y="-1139.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="3901.0708" y="-1128.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.51%)</text>
<text text-anchor="middle" x="3901.0708" y="-1117.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.07s(0.59%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N77 -->
<g id="edge86" class="edge">
<title>N1&#45;&gt;N77</title>
<g id="a_edge86"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.07s)">
<path fill="none" stroke="#000000" d="M2232.3044,-1212.5942C2235.5839,-1212.0093 2238.8438,-1211.4753 2242.0708,-1211 2392.3513,-1188.8642 3457.7044,-1205.7459 3609.0708,-1193 3700.9601,-1185.2624 3724.5187,-1182.9985 3814.0708,-1161 3820.9922,-1159.2998 3828.1482,-1157.2942 3835.2459,-1155.1417"/>
<polygon fill="#000000" stroke="#000000" points="3836.3643,-1158.4592 3844.8612,-1152.1304 3834.2722,-1151.7791 3836.3643,-1158.4592"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.07s)">
<text text-anchor="middle" x="3745.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).execute.func6 &#45;&gt; main.(*machine).execute (9.29s)">
<path fill="none" stroke="#000000" stroke-width="4" d="M1852.3196,-1153.6599C1894.3068,-1168.8509 1951.2309,-1189.4461 2001.1807,-1207.518"/>
<polygon fill="#000000" stroke="#000000" stroke-width="4" points="2000.1513,-1210.8676 2010.7456,-1210.9786 2002.5329,-1204.2851 2000.1513,-1210.8676"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).execute.func6 &#45;&gt; main.(*machine).execute (9.29s)">
<text text-anchor="middle" x="1968.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.29s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.(*CodeQuotation).cloneCode (2.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1442.8492,-1052 1247.2924,-1052 1247.2924,-1005 1442.8492,-1005 1442.8492,-1052"/>
<text text-anchor="middle" x="1345.0708" y="-1037.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="1345.0708" y="-1024.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(1.27%)</text>
<text text-anchor="middle" x="1345.0708" y="-1011.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 2.65s(22.38%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N11 -->
<g id="edge10" class="edge">
<title>N2&#45;&gt;N11</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute.func6 &#45;&gt; main.(*CodeQuotation).cloneCode (1.53s)">
<path fill="none" stroke="#000000" d="M1725.2367,-1109.4566C1716.4803,-1106.7995 1707.5875,-1104.2385 1699.0708,-1102 1592.8512,-1074.082 1564.592,-1074.3876 1457.0708,-1052 1455.7852,-1051.7323 1454.4914,-1051.4628 1453.1906,-1051.1917"/>
<polygon fill="#000000" stroke="#000000" points="1453.606,-1047.7031 1443.102,-1049.0872 1452.1765,-1054.5556 1453.606,-1047.7031"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute.func6 &#45;&gt; main.(*CodeQuotation).cloneCode (1.53s)">
<text text-anchor="middle" x="1637.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.53s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (10.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2799.731,-1049 2628.4106,-1049 2628.4106,-1008 2799.731,-1008 2799.731,-1049"/>
<text text-anchor="middle" x="2714.0708" y="-1036.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="2714.0708" y="-1025.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="2714.0708" y="-1014.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 10.27s(86.74%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N4 -->
<g id="edge1" class="edge">
<title>N3&#45;&gt;N4</title>
<g id="a_edge1"><a xlink:title="main.(*machine).execute.func3 &#45;&gt; main.(*machine).executeQuotation (10.24s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2619.2874,-1110.7651C2630.4732,-1098.4485 2645.3491,-1082.7891 2659.6226,-1070 2665.1606,-1065.0379 2671.2437,-1060.0226 2677.2746,-1055.2764"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2680.1639,-1058.5731 2685.4103,-1049.0014 2674.8199,-1051.6445 2680.1639,-1058.5731"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).execute.func3 &#45;&gt; main.(*machine).executeQuotation (10.24s)">
<text text-anchor="middle" x="2680.2949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 10.24s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge2" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge2"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (10.05s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2716.4967,-1049.4117C2718.6334,-1078.8456 2717.5949,-1132.1181 2687.0708,-1161 2616.9059,-1227.39 2355.9157,-1195.2878 2242.2326,-1211.294"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2241.5322,-1206.9753 2232.3512,-1212.8787 2242.9178,-1215.6149 2241.5322,-1206.9753"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (10.05s)">
<text text-anchor="middle" x="2735.2949" y="-1127.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 10.05s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.newobject (3.95s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1437.6773,-758 1324.4643,-758 1324.4643,-711 1437.6773,-711 1437.6773,-758"/>
<text text-anchor="middle" x="1381.0708" y="-743.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="1381.0708" y="-730.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.13s(1.10%)</text>
<text text-anchor="middle" x="1381.0708" y="-717.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 3.95s(33.36%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N8 -->
<g id="edge51" class="edge">
<title>N4&#45;&gt;N8</title>
<g id="a_edge51"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.18s)">
<path fill="none" stroke="#000000" d="M2676.7068,-1007.9776C2598.8845,-965.8771 2412.93,-868.6133 2248.0708,-808 2196.6673,-789.1006 2183.1472,-784.6746 2129.0708,-776 1998.8556,-755.1117 1605.544,-741.2747 1447.6898,-736.4257"/>
<polygon fill="#000000" stroke="#000000" points="1447.74,-732.9257 1437.638,-736.1193 1447.5267,-739.9224 1447.74,-732.9257"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.18s)">
<text text-anchor="middle" x="2455.7949" y="-878.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N1 -->
<g id="edge4" class="edge">
<title>N5&#45;&gt;N1</title>
<g id="a_edge4"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.17s)">
<path fill="none" stroke="#000000" stroke-width="4" d="M2113.0708,-1152.0785C2113.0708,-1165.5197 2113.0708,-1183.6473 2113.0708,-1200.5245"/>
<polygon fill="#000000" stroke="#000000" stroke-width="4" points="2109.5709,-1200.8183 2113.0708,-1210.8184 2116.5709,-1200.8184 2109.5709,-1200.8183"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.17s)">
<text text-anchor="middle" x="2129.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.17s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N8 -->
<g id="edge63" class="edge">
<title>N5&#45;&gt;N8</title>
<g id="a_edge63"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.12s)">
<path fill="none" stroke="#000000" d="M2101.6105,-1110.8927C2091.403,-1090.5811 2078.0708,-1058.3401 2078.0708,-1028.5 2078.0708,-1028.5 2078.0708,-1028.5 2078.0708,-833 2078.0708,-769.7562 1622.3491,-744.3877 1447.8984,-736.9934"/>
<polygon fill="#000000" stroke="#000000" points="1447.9509,-733.4927 1437.8137,-736.5728 1447.6591,-740.4866 1447.9509,-733.4927"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.12s)">
<text text-anchor="middle" x="2094.7949" y="-927.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="main.(*machine).popValue (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2296.6855,-949.5 2129.4561,-949.5 2129.4561,-913.5 2296.6855,-913.5 2296.6855,-949.5"/>
<text text-anchor="middle" x="2213.0708" y="-934.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="2213.0708" y="-920.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.19s(1.60%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N40 -->
<g id="edge98" class="edge">
<title>N5&#45;&gt;N40</title>
<g id="a_edge98"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).popValue (0.05s)">
<path fill="none" stroke="#000000" d="M2112.4098,-1110.9254C2112.4317,-1084.7615 2115.4168,-1038.9145 2133.6226,-1005 2143.9909,-985.6854 2161.4089,-968.7104 2177.298,-955.9538"/>
<polygon fill="#000000" stroke="#000000" points="2179.6484,-958.5609 2185.4222,-949.6775 2175.3689,-953.0214 2179.6484,-958.5609"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).popValue (0.05s)">
<text text-anchor="middle" x="2150.7949" y="-1024.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.assertI2T (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2050.5435,-1050.5 1949.5981,-1050.5 1949.5981,-1006.5 2050.5435,-1006.5 2050.5435,-1050.5"/>
<text text-anchor="middle" x="2000.0708" y="-1036.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="2000.0708" y="-1024.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.59%)</text>
<text text-anchor="middle" x="2000.0708" y="-1012.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.13s(1.10%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N52 -->
<g id="edge110" class="edge">
<title>N5&#45;&gt;N52</title>
<g id="a_edge110"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M2067.1599,-1110.8741C2054.3135,-1103.6368 2041.0327,-1094.6147 2030.6226,-1084 2023.7792,-1077.0222 2018.0056,-1068.2016 2013.3837,-1059.6583"/>
<polygon fill="#000000" stroke="#000000" points="2016.4457,-1057.9567 2008.8243,-1050.597 2010.1926,-1061.1031 2016.4457,-1057.9567"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="2047.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.goexit (6.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2151.8407,-1453 2074.3009,-1453 2074.3009,-1417 2151.8407,-1417 2151.8407,-1453"/>
<text text-anchor="middle" x="2113.0708" y="-1436.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="2113.0708" y="-1428.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 6.29s(53.12%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N1 -->
<g id="edge5" class="edge">
<title>N6&#45;&gt;N1</title>
<g id="a_edge5"><a xlink:title="runtime.goexit ... main.(*machine).execute (5.92s)">
<path fill="none" stroke="#000000" stroke-width="3" stroke-dasharray="1,5" d="M2113.0708,-1416.7292C2113.0708,-1388.8892 2113.0708,-1334.9273 2113.0708,-1295.4997"/>
<polygon fill="#000000" stroke="#000000" stroke-width="3" points="2116.5709,-1295.3069 2113.0708,-1285.307 2109.5709,-1295.307 2116.5709,-1295.3069"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (5.92s)">
<text text-anchor="middle" x="2129.7949" y="-1305.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.92s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.gcBgMarkWorker (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2351.4615,-1266 2250.6801,-1266 2250.6801,-1230 2351.4615,-1230 2351.4615,-1266"/>
<text text-anchor="middle" x="2301.0708" y="-1249.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="2301.0708" y="-1241.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.33s(2.79%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N25 -->
<g id="edge31" class="edge">
<title>N6&#45;&gt;N25</title>
<g id="a_edge31"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.33s)">
<path fill="none" stroke="#000000" d="M2131.4393,-1416.7292C2165.2209,-1383.1273 2237.2593,-1311.4721 2275.6881,-1273.2476"/>
<polygon fill="#000000" stroke="#000000" points="2278.2828,-1275.6034 2282.9045,-1266.0697 2273.3463,-1270.6404 2278.2828,-1275.6034"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.33s)">
<text text-anchor="middle" x="2262.7949" y="-1305.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.mallocgc (4.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1473.1806,-661 1288.961,-661 1288.961,-581 1473.1806,-581 1473.1806,-661"/>
<text text-anchor="middle" x="1381.0708" y="-637.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="1381.0708" y="-613.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.73s(14.61%)</text>
<text text-anchor="middle" x="1381.0708" y="-589.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 4.48s(37.84%)</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.heapBitsSetType (0.69s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1485.3997,-529 1276.7419,-529 1276.7419,-483 1485.3997,-483 1485.3997,-529"/>
<text text-anchor="middle" x="1381.0708" y="-509.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1381.0708" y="-490.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.69s(5.83%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N17 -->
<g id="edge18" class="edge">
<title>N7&#45;&gt;N17</title>
<g id="a_edge18"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.69s)">
<path fill="none" stroke="#000000" d="M1381.0708,-580.7786C1381.0708,-567.3184 1381.0708,-552.4656 1381.0708,-539.5681"/>
<polygon fill="#000000" stroke="#000000" points="1384.5709,-539.2676 1381.0708,-529.2676 1377.5709,-539.2677 1384.5709,-539.2676"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.69s)">
<text text-anchor="middle" x="1397.7949" y="-551.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.69s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.(*mcache).nextFree (0.53s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1779.1807,-526.5 1638.9609,-526.5 1638.9609,-485.5 1779.1807,-485.5 1779.1807,-526.5"/>
<text text-anchor="middle" x="1709.0708" y="-513.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="1709.0708" y="-502.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.34%)</text>
<text text-anchor="middle" x="1709.0708" y="-491.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.53s(4.48%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N20 -->
<g id="edge23" class="edge">
<title>N7&#45;&gt;N20</title>
<g id="a_edge23"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.53s)">
<path fill="none" stroke="#000000" d="M1473.31,-588.6601C1526.6015,-569.9755 1592.4857,-546.8759 1641.0472,-529.8497"/>
<polygon fill="#000000" stroke="#000000" points="1642.2409,-533.1402 1650.5196,-526.5286 1639.9248,-526.5344 1642.2409,-533.1402"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.53s)">
<text text-anchor="middle" x="1601.7949" y="-551.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.53s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.stkbucket (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1620.2714,-531 1503.8702,-531 1503.8702,-481 1620.2714,-481 1620.2714,-531"/>
<text text-anchor="middle" x="1562.0708" y="-515.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="1562.0708" y="-501.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.22s(1.86%)</text>
<text text-anchor="middle" x="1562.0708" y="-487.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.23s(1.94%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N33 -->
<g id="edge42" class="edge">
<title>N7&#45;&gt;N33</title>
<g id="a_edge42"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.23s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1444.1217,-580.94C1467.0772,-566.3551 1492.6352,-550.1166 1514.0751,-536.4945"/>
<polygon fill="#000000" stroke="#000000" points="1516.1214,-539.3411 1522.6849,-531.0242 1512.3675,-533.4328 1516.1214,-539.3411"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.23s)">
<text text-anchor="middle" x="1510.7949" y="-551.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.memclr (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1886.8747,-36 1781.2669,-36 1781.2669,0 1886.8747,0 1886.8747,-36"/>
<text text-anchor="middle" x="1834.0708" y="-20.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="1834.0708" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.22s(1.86%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N36 -->
<g id="edge116" class="edge">
<title>N7&#45;&gt;N36</title>
<g id="a_edge116"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.02s)">
<path fill="none" stroke="#000000" d="M1473.2293,-615.946C1804.314,-597.1887 2914.0708,-528.8809 2914.0708,-456 2914.0708,-456 2914.0708,-456 2914.0708,-106.5 2914.0708,-55.1425 2128.07,-27.0027 1897.142,-19.8435"/>
<polygon fill="#000000" stroke="#000000" points="1896.9954,-16.3374 1886.8925,-19.5282 1896.7802,-23.3341 1896.9954,-16.3374"/>
</a>
</g>
<g id="a_edge116&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.02s)">
<text text-anchor="middle" x="2930.7949" y="-299.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N7 -->
<g id="edge6" class="edge">
<title>N8&#45;&gt;N7</title>
<g id="a_edge6"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.82s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M1381.0708,-710.9827C1381.0708,-699.496 1381.0708,-685.2045 1381.0708,-671.4179"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1384.5709,-671.0283 1381.0708,-661.0283 1377.5709,-671.0284 1384.5709,-671.0283"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.82s)">
<text text-anchor="middle" x="1397.7949" y="-681.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.82s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.systemstack (3.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1899.2713,-431 1768.8703,-431 1768.8703,-381 1899.2713,-381 1899.2713,-431"/>
<text text-anchor="middle" x="1834.0708" y="-415.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="1834.0708" y="-401.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.24s(2.03%)</text>
<text text-anchor="middle" x="1834.0708" y="-387.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 3.07s(25.93%)</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="runtime.mach_semaphore_signal (1.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2243.2311,-331 1922.9105,-331 1922.9105,-277 2243.2311,-277 2243.2311,-331"/>
<text text-anchor="middle" x="2083.0708" y="-308.6" font-family="Times,serif" font-size="23.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2083.0708" y="-285.6" font-family="Times,serif" font-size="23.00" fill="#000000">1.35s(11.40%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N15 -->
<g id="edge12" class="edge">
<title>N9&#45;&gt;N15</title>
<g id="a_edge12"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (1.27s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1895.302,-380.9174C1929.1413,-367.0555 1971.4738,-349.7144 2007.3742,-335.0082"/>
<polygon fill="#000000" stroke="#000000" points="2008.9069,-338.1627 2016.8338,-331.1332 2006.2534,-331.6851 2008.9069,-338.1627"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (1.27s)">
<text text-anchor="middle" x="1982.7949" y="-351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.27s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.deferproc.func1 (0.41s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1160.4022,-327.5 1017.7394,-327.5 1017.7394,-280.5 1160.4022,-280.5 1160.4022,-327.5"/>
<text text-anchor="middle" x="1089.0708" y="-313.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="1089.0708" y="-300.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(0.93%)</text>
<text text-anchor="middle" x="1089.0708" y="-287.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.41s(3.46%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N22 -->
<g id="edge28" class="edge">
<title>N9&#45;&gt;N22</title>
<g id="a_edge28"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.41s)">
<path fill="none" stroke="#000000" d="M1768.3986,-404.3122C1647.8992,-399.9613 1384.1121,-384.5958 1169.0708,-331 1168.1685,-330.7751 1167.2618,-330.5448 1166.3515,-330.3094"/>
<polygon fill="#000000" stroke="#000000" points="1167.063,-326.8756 1156.4939,-327.6141 1165.2167,-333.6277 1167.063,-326.8756"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.41s)">
<text text-anchor="middle" x="1329.7949" y="-351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.(*mcentral).cacheSpan (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1905.0697,-323 1763.0719,-323 1763.0719,-285 1905.0697,-285 1905.0697,-323"/>
<text text-anchor="middle" x="1834.0708" y="-311" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="1834.0708" y="-301" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.17%)</text>
<text text-anchor="middle" x="1834.0708" y="-291" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.36s(3.04%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N23 -->
<g id="edge29" class="edge">
<title>N9&#45;&gt;N23</title>
<g id="a_edge29"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).cacheSpan (0.36s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1834.0708,-380.7865C1834.0708,-366.45 1834.0708,-348.4241 1834.0708,-333.4409"/>
<polygon fill="#000000" stroke="#000000" points="1837.5709,-333.1648 1834.0708,-323.1648 1830.5709,-333.1649 1837.5709,-333.1648"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcentral).cacheSpan (0.36s)">
<text text-anchor="middle" x="1850.7949" y="-351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.deferreturn.func1 (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1307.6861,-324.5 1178.4555,-324.5 1178.4555,-283.5 1307.6861,-283.5 1307.6861,-324.5"/>
<text text-anchor="middle" x="1243.0708" y="-311.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="1243.0708" y="-300.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.42%)</text>
<text text-anchor="middle" x="1243.0708" y="-289.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.26s(2.20%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N30 -->
<g id="edge37" class="edge">
<title>N9&#45;&gt;N30</title>
<g id="a_edge37"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.26s)">
<path fill="none" stroke="#000000" d="M1768.7552,-400.8657C1669.8491,-392.1209 1476.6906,-371.241 1317.0708,-331 1313.0428,-329.9845 1308.9289,-328.8299 1304.8062,-327.5835"/>
<polygon fill="#000000" stroke="#000000" points="1305.7971,-324.226 1295.2067,-324.5308 1303.6757,-330.8968 1305.7971,-324.226"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.26s)">
<text text-anchor="middle" x="1474.7949" y="-351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.mach_semaphore_wait (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1518.1783,-322 1325.9633,-322 1325.9633,-286 1518.1783,-286 1518.1783,-322"/>
<text text-anchor="middle" x="1422.0708" y="-306.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="1422.0708" y="-292.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.17s(1.44%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N49 -->
<g id="edge56" class="edge">
<title>N9&#45;&gt;N49</title>
<g id="a_edge56"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.17s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1768.736,-390.2807C1706.5466,-375.261 1610.3585,-351.8812 1527.0708,-331 1518.7802,-328.9215 1510.127,-326.7307 1501.5007,-324.5331"/>
<polygon fill="#000000" stroke="#000000" points="1502.3487,-321.1374 1491.7936,-322.0545 1500.6168,-327.9198 1502.3487,-321.1374"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.17s)">
<text text-anchor="middle" x="1670.7949" y="-351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.mach_semaphore_timedwait (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1745.7046,-322 1536.437,-322 1536.437,-286 1745.7046,-286 1745.7046,-322"/>
<text text-anchor="middle" x="1641.0708" y="-306.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_timedwait</text>
<text text-anchor="middle" x="1641.0708" y="-293.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.12s(1.01%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N57 -->
<g id="edge66" class="edge">
<title>N9&#45;&gt;N57</title>
<g id="a_edge66"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.12s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1786.3629,-380.7865C1755.104,-364.2662 1714.5758,-342.8472 1684.2685,-326.8299"/>
<polygon fill="#000000" stroke="#000000" points="1685.6891,-323.622 1675.2125,-322.0438 1682.4183,-329.8108 1685.6891,-323.622"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.12s)">
<text text-anchor="middle" x="1766.7949" y="-351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.(*mheap).alloc.func1 (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2396.6919,-323 2261.4497,-323 2261.4497,-285 2396.6919,-285 2396.6919,-323"/>
<text text-anchor="middle" x="2329.0708" y="-311" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="2329.0708" y="-301" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.084%)</text>
<text text-anchor="middle" x="2329.0708" y="-291" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(0.93%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N59 -->
<g id="edge71" class="edge">
<title>N9&#45;&gt;N59</title>
<g id="a_edge71"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.11s)">
<path fill="none" stroke="#000000" d="M1899.5776,-397.5512C1982.4736,-386.1072 2129.2575,-363.3286 2252.0708,-331 2257.4649,-329.5801 2263.0213,-327.9582 2268.5625,-326.2301"/>
<polygon fill="#000000" stroke="#000000" points="2270.042,-329.4303 2278.4817,-323.0255 2267.89,-322.7693 2270.042,-329.4303"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.11s)">
<text text-anchor="middle" x="2190.5386" y="-351.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N1 -->
<g id="edge13" class="edge">
<title>N10&#45;&gt;N1</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (1.21s)">
<path fill="none" stroke="#000000" d="M1464.6265,-1155.0194C1472.8302,-1157.2173 1481.0969,-1159.2665 1489.0708,-1161 1495.0985,-1162.3104 1802.714,-1205.0065 1983.7226,-1230.0886"/>
<polygon fill="#000000" stroke="#000000" points="1983.4643,-1233.5862 1993.8501,-1231.4919 1984.4251,-1226.6525 1983.4643,-1233.5862"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (1.21s)">
<text text-anchor="middle" x="1729.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.21s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N11 -->
<g id="edge15" class="edge">
<title>N10&#45;&gt;N11</title>
<g id="a_edge15"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (1.12s)">
<path fill="none" stroke="#000000" d="M1379.7469,-1107.8697C1373.7443,-1094.1305 1366.0872,-1076.6043 1359.496,-1061.5177"/>
<polygon fill="#000000" stroke="#000000" points="1362.5575,-1059.7827 1355.3467,-1052.0203 1356.143,-1062.5852 1362.5575,-1059.7827"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (1.12s)">
<text text-anchor="middle" x="1385.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.12s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N13 -->
<g id="edge32" class="edge">
<title>N10&#45;&gt;N13</title>
<g id="a_edge32"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; runtime.convT2I (0.29s)">
<path fill="none" stroke="#000000" d="M1311.1814,-1107.972C1304.3801,-1105.9498 1297.6046,-1103.9375 1291.0708,-1102 1263.9704,-1093.9639 1255.6169,-1096.1 1230.0708,-1084 1207.2323,-1073.1825 1200.2513,-1070.5323 1183.0708,-1052 1155.501,-1022.261 1102.0273,-921.2373 1074.4504,-867.4146"/>
<polygon fill="#000000" stroke="#000000" points="1077.4389,-865.5708 1069.7744,-858.2559 1071.2044,-868.7538 1077.4389,-865.5708"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; runtime.convT2I (0.29s)">
<text text-anchor="middle" x="1155.7949" y="-975.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N8 -->
<g id="edge7" class="edge">
<title>N11&#45;&gt;N8</title>
<g id="a_edge7"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (2.43s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M1347.956,-1004.9377C1354.3149,-953.0067 1369.5555,-828.5417 1376.9319,-768.3011"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1380.4304,-768.5258 1378.1719,-758.1745 1373.4823,-767.6749 1380.4304,-768.5258"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (2.43s)">
<text text-anchor="middle" x="1380.7949" y="-878.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.43s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.duffcopy (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1246.0034,-949.5 1146.1382,-949.5 1146.1382,-913.5 1246.0034,-913.5 1246.0034,-949.5"/>
<text text-anchor="middle" x="1196.0708" y="-933.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.duffcopy</text>
<text text-anchor="middle" x="1196.0708" y="-921.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.68%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N75 -->
<g id="edge97" class="edge">
<title>N11&#45;&gt;N75</title>
<g id="a_edge97"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.duffcopy (0.05s)">
<path fill="none" stroke="#000000" d="M1308.6213,-1004.7711C1285.3972,-989.6521 1255.4296,-970.143 1232.2568,-955.0573"/>
<polygon fill="#000000" stroke="#000000" points="1234.0266,-952.0332 1223.7365,-949.5105 1230.2075,-957.8996 1234.0266,-952.0332"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.duffcopy (0.05s)">
<text text-anchor="middle" x="1296.7949" y="-975.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (1.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2374.5127,-1047.5 2175.6289,-1047.5 2175.6289,-1009.5 2374.5127,-1009.5 2374.5127,-1047.5"/>
<text text-anchor="middle" x="2275.0708" y="-1035.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="2275.0708" y="-1025.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.17%)</text>
<text text-anchor="middle" x="2275.0708" y="-1015.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 1.35s(11.40%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N14 -->
<g id="edge11" class="edge">
<title>N12&#45;&gt;N14</title>
<g id="a_edge11"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.35s)">
<path fill="none" stroke="#000000" d="M1986.6538,-1110.9477C1993.7041,-1107.7369 2001.0329,-1104.6199 2008.0708,-1102 2025.6877,-1095.4419 2121.4285,-1069.4653 2193.2643,-1050.2438"/>
<polygon fill="#000000" stroke="#000000" points="2194.4746,-1053.5433 2203.2313,-1047.5792 2192.6666,-1046.7808 2194.4746,-1053.5433"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.35s)">
<text text-anchor="middle" x="2131.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.35s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1931.7118,-1047.5 1754.4298,-1047.5 1754.4298,-1009.5 1931.7118,-1009.5 1931.7118,-1047.5"/>
<text text-anchor="middle" x="1843.0708" y="-1035.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="1843.0708" y="-1025.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.17%)</text>
<text text-anchor="middle" x="1843.0708" y="-1015.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.12s(1.01%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N55 -->
<g id="edge65" class="edge">
<title>N12&#45;&gt;N55</title>
<g id="a_edge65"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.12s)">
<path fill="none" stroke="#000000" d="M1925.2272,-1110.6564C1909.0766,-1094.5058 1886.6015,-1072.0307 1869.2405,-1054.6697"/>
<polygon fill="#000000" stroke="#000000" points="1871.6925,-1052.1719 1862.1465,-1047.5757 1866.7427,-1057.1217 1871.6925,-1052.1719"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.12s)">
<text text-anchor="middle" x="1914.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="main.(*machine).loadBooleanWords.func2 (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1735.9936,-1049 1530.148,-1049 1530.148,-1008 1735.9936,-1008 1735.9936,-1049"/>
<text text-anchor="middle" x="1633.0708" y="-1036.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadBooleanWords.func2</text>
<text text-anchor="middle" x="1633.0708" y="-1025.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="1633.0708" y="-1014.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.07s(0.59%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N78 -->
<g id="edge87" class="edge">
<title>N12&#45;&gt;N78</title>
<g id="a_edge87"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.07s)">
<path fill="none" stroke="#000000" d="M1905.1154,-1110.8916C1898.1728,-1107.7232 1890.9758,-1104.6345 1884.0708,-1102 1832.3758,-1082.2767 1773.0244,-1064.6767 1725.0181,-1051.6475"/>
<polygon fill="#000000" stroke="#000000" points="1725.83,-1048.2415 1715.2638,-1049.0205 1724.0096,-1055.0007 1725.83,-1048.2415"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func2 (0.07s)">
<text text-anchor="middle" x="1846.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N8 -->
<g id="edge16" class="edge">
<title>N13&#45;&gt;N8</title>
<g id="a_edge16"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.02s)">
<path fill="none" stroke="#000000" d="M1100.0883,-807.9423C1120.8313,-796.7712 1146.4154,-784.2905 1170.6226,-776 1184.2283,-771.3403 1258.0412,-757.1934 1314.447,-746.7054"/>
<polygon fill="#000000" stroke="#000000" points="1315.2082,-750.124 1324.402,-744.8587 1313.9314,-743.2414 1315.2082,-750.124"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.02s)">
<text text-anchor="middle" x="1187.7949" y="-778.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.02s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.typedmemmove (0.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1110.0134,-758 966.1282,-758 966.1282,-711 1110.0134,-711 1110.0134,-758"/>
<text text-anchor="middle" x="1038.0708" y="-743.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="1038.0708" y="-730.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(1.27%)</text>
<text text-anchor="middle" x="1038.0708" y="-717.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.27s(2.28%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N29 -->
<g id="edge48" class="edge">
<title>N13&#45;&gt;N29</title>
<g id="a_edge48"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.19s)">
<path fill="none" stroke="#000000" d="M1044.2346,-807.6208C1041.9258,-801.9567 1039.8616,-795.8822 1038.6226,-790 1037.168,-783.0947 1036.5005,-775.5983 1036.2888,-768.4141"/>
<polygon fill="#000000" stroke="#000000" points="1039.7884,-768.2091 1036.2662,-758.2169 1032.7885,-768.2247 1039.7884,-768.2091"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.19s)">
<text text-anchor="middle" x="1055.7949" y="-778.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N1 -->
<g id="edge14" class="edge">
<title>N14&#45;&gt;N1</title>
<g id="a_edge14"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (1.13s)">
<path fill="none" stroke="#000000" d="M2267.4072,-1047.6672C2253.5867,-1082.0201 2225.2551,-1151.4023 2218.0708,-1161 2206.1714,-1176.8968 2190.7973,-1191.7164 2175.5031,-1204.458"/>
<polygon fill="#000000" stroke="#000000" points="2173.0913,-1201.9076 2167.5313,-1210.9263 2177.5019,-1207.3433 2173.0913,-1201.9076"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (1.13s)">
<text text-anchor="middle" x="2261.7949" y="-1127.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.13s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N8 -->
<g id="edge55" class="edge">
<title>N14&#45;&gt;N8</title>
<g id="a_edge55"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.17s)">
<path fill="none" stroke="#000000" d="M2288.2132,-1009.4325C2303.4843,-984.6937 2324.3884,-940.8207 2306.0708,-908 2251.6101,-810.4196 2198.6457,-809.6108 2092.0708,-776 2031.6839,-756.9556 1612.7318,-741.8182 1447.6819,-736.5283"/>
<polygon fill="#000000" stroke="#000000" points="1447.7607,-733.0291 1437.6544,-736.209 1447.5379,-740.0256 1447.7607,-733.0291"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.17s)">
<text text-anchor="middle" x="2311.7949" y="-878.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N40 -->
<g id="edge111" class="edge">
<title>N14&#45;&gt;N40</title>
<g id="a_edge111"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M2262.8216,-1009.3359C2253.4718,-994.7081 2240.4769,-974.3774 2230.1128,-958.1625"/>
<polygon fill="#000000" stroke="#000000" points="2233.0002,-956.181 2224.6655,-949.64 2227.1021,-959.9509 2233.0002,-956.181"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="2264.7949" y="-975.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N9 -->
<g id="edge36" class="edge">
<title>N16&#45;&gt;N9</title>
<g id="a_edge36"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.26s)">
<path fill="none" stroke="#000000" d="M223.9155,-1121.1353C170.966,-1109.0641 109.0708,-1083.2452 109.0708,-1028.5 109.0708,-1028.5 109.0708,-1028.5 109.0708,-506 109.0708,-422.1009 1426.7625,-408.4698 1758.8159,-406.3668"/>
<polygon fill="#000000" stroke="#000000" points="1758.8382,-409.8668 1768.8163,-406.3051 1758.7949,-402.8669 1758.8382,-409.8668"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.26s)">
<text text-anchor="middle" x="125.7949" y="-778.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.memmove (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="122.2125,-220 -.0709,-220 -.0709,-184 122.2125,-184 122.2125,-220"/>
<text text-anchor="middle" x="61.0708" y="-204.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="61.0708" y="-190.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.19s(1.60%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N44 -->
<g id="edge99" class="edge">
<title>N16&#45;&gt;N44</title>
<g id="a_edge99"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.05s)">
<path fill="none" stroke="#000000" d="M223.6518,-1118.6804C142.2094,-1102.4848 23.0708,-1071.4523 23.0708,-1028.5 23.0708,-1028.5 23.0708,-1028.5 23.0708,-304 23.0708,-277.2455 34.6932,-248.8866 45.0827,-228.8809"/>
<polygon fill="#000000" stroke="#000000" points="48.1845,-230.5031 49.8751,-220.044 42.0311,-227.166 48.1845,-230.5031"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.05s)">
<text text-anchor="middle" x="39.7949" y="-681.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N7 -->
<g id="edge24" class="edge">
<title>N18&#45;&gt;N7</title>
<g id="a_edge24"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.50s)">
<path fill="none" stroke="#000000" d="M2828.0708,-1107.7722C2828.0708,-1086.8957 2828.0708,-1055.6806 2828.0708,-1028.5 2828.0708,-1028.5 2828.0708,-1028.5 2828.0708,-734.5 2828.0708,-666.9663 1813.1005,-632.9411 1483.2648,-623.6669"/>
<polygon fill="#000000" stroke="#000000" points="1483.3298,-620.1675 1473.2359,-623.3867 1483.1342,-627.1648 1483.3298,-620.1675"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.50s)">
<text text-anchor="middle" x="2844.7949" y="-878.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N9 -->
<g id="edge27" class="edge">
<title>N19&#45;&gt;N9</title>
<g id="a_edge27"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.41s)">
<path fill="none" stroke="#000000" d="M2923.0699,-1107.937C2901.033,-1089.2227 2876.0708,-1060.8782 2876.0708,-1028.5 2876.0708,-1028.5 2876.0708,-1028.5 2876.0708,-506 2876.0708,-457.4307 2149.2631,-420.2376 1909.6665,-409.2962"/>
<polygon fill="#000000" stroke="#000000" points="1909.7959,-405.7986 1899.6473,-408.8411 1909.4781,-412.7914 1909.7959,-405.7986"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.41s)">
<text text-anchor="middle" x="2892.7949" y="-778.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N9 -->
<g id="edge25" class="edge">
<title>N20&#45;&gt;N9</title>
<g id="a_edge25"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.47s)">
<path fill="none" stroke="#000000" d="M1734.9709,-485.2799C1752.192,-471.503 1775.1371,-453.1469 1794.6118,-437.5672"/>
<polygon fill="#000000" stroke="#000000" points="1796.8174,-440.2849 1802.4397,-431.3049 1792.4445,-434.8188 1796.8174,-440.2849"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.47s)">
<text text-anchor="middle" x="1795.7949" y="-451.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.47s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.assertI2I (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="427.4064,-1049 336.7352,-1049 336.7352,-1008 427.4064,-1008 427.4064,-1049"/>
<text text-anchor="middle" x="382.0708" y="-1036.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="382.0708" y="-1025.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.42%)</text>
<text text-anchor="middle" x="382.0708" y="-1014.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.19s(1.60%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N41 -->
<g id="edge76" class="edge">
<title>N21&#45;&gt;N41</title>
<g id="a_edge76"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.09s)">
<path fill="none" stroke="#000000" d="M638.8995,-1110.9612C630.8669,-1107.4634 622.3364,-1104.2419 614.0708,-1102 535.0035,-1080.5544 503.4792,-1121.4628 430.6226,-1084 418.7928,-1077.9171 408.5675,-1067.629 400.5931,-1057.5514"/>
<polygon fill="#000000" stroke="#000000" points="403.1997,-1055.1898 394.4383,-1049.2326 397.5725,-1059.3533 403.1997,-1055.1898"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.09s)">
<text text-anchor="middle" x="447.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="main.Integer.Add (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="630.0562,-1047.5 544.0854,-1047.5 544.0854,-1009.5 630.0562,-1009.5 630.0562,-1047.5"/>
<text text-anchor="middle" x="587.0708" y="-1035.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="587.0708" y="-1025.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.084%)</text>
<text text-anchor="middle" x="587.0708" y="-1015.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.15s(1.27%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N50 -->
<g id="edge59" class="edge">
<title>N21&#45;&gt;N50</title>
<g id="a_edge59"><a xlink:title="main.executeSubtract ... main.Integer.Add (0.15s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M629.2715,-1110.8799C617.695,-1103.8924 606.4503,-1094.9978 598.6226,-1084 593.249,-1076.4503 590.2655,-1066.9464 588.6409,-1057.947"/>
<polygon fill="#000000" stroke="#000000" points="592.0751,-1057.2174 587.2962,-1047.7616 585.1353,-1058.1337 592.0751,-1057.2174"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="main.executeSubtract ... main.Integer.Add (0.15s)">
<text text-anchor="middle" x="615.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="main.(*Integer).Negate (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="757.8573,-1047.5 648.2843,-1047.5 648.2843,-1009.5 757.8573,-1009.5 757.8573,-1047.5"/>
<text text-anchor="middle" x="703.0708" y="-1035.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="703.0708" y="-1025.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.084%)</text>
<text text-anchor="middle" x="703.0708" y="-1015.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.08s(0.68%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N71 -->
<g id="edge83" class="edge">
<title>N21&#45;&gt;N71</title>
<g id="a_edge83"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.08s)">
<path fill="none" stroke="#000000" d="M683.1299,-1110.6564C686.84,-1095.371 691.925,-1074.4206 696.0314,-1057.5021"/>
<polygon fill="#000000" stroke="#000000" points="699.4832,-1058.1191 698.4408,-1047.5757 692.6808,-1056.468 699.4832,-1058.1191"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.08s)">
<text text-anchor="middle" x="709.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.convI2I (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="526.2832,-1047.5 445.8584,-1047.5 445.8584,-1009.5 526.2832,-1009.5 526.2832,-1047.5"/>
<text text-anchor="middle" x="486.0708" y="-1035.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="486.0708" y="-1025.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.17%)</text>
<text text-anchor="middle" x="486.0708" y="-1015.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.08s(0.68%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N74 -->
<g id="edge92" class="edge">
<title>N21&#45;&gt;N74</title>
<g id="a_edge92"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.06s)">
<path fill="none" stroke="#000000" d="M635.7314,-1110.9927C628.5724,-1107.8122 621.1621,-1104.6932 614.0708,-1102 588.2633,-1092.1987 579.0154,-1096.9261 554.6226,-1084 539.8912,-1076.1937 525.2909,-1064.9888 513.3747,-1054.6881"/>
<polygon fill="#000000" stroke="#000000" points="515.3817,-1051.7888 505.5852,-1047.7541 510.7274,-1057.0174 515.3817,-1051.7888"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.06s)">
<text text-anchor="middle" x="571.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.newdefer (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1150.2721,-221 1027.8695,-221 1027.8695,-183 1150.2721,-183 1150.2721,-221"/>
<text text-anchor="middle" x="1089.0708" y="-205" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="1089.0708" y="-190" font-family="Times,serif" font-size="15.00" fill="#000000">0.28s(2.36%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N28 -->
<g id="edge35" class="edge">
<title>N22&#45;&gt;N28</title>
<g id="a_edge35"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.28s)">
<path fill="none" stroke="#000000" d="M1089.0708,-280.3428C1089.0708,-265.7109 1089.0708,-246.8159 1089.0708,-231.2483"/>
<polygon fill="#000000" stroke="#000000" points="1092.5709,-231.0956 1089.0708,-221.0957 1085.5709,-231.0957 1092.5709,-231.0956"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.28s)">
<text text-anchor="middle" x="1105.7949" y="-247.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N44 -->
<g id="edge115" class="edge">
<title>N22&#45;&gt;N44</title>
<g id="a_edge115"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<path fill="none" stroke="#000000" d="M1017.6,-296.9085C829.1469,-278.2099 320.3189,-227.7231 132.2251,-209.0601"/>
<polygon fill="#000000" stroke="#000000" points="132.4694,-205.5672 122.1727,-208.0626 131.7782,-212.533 132.4694,-205.5672"/>
</a>
</g>
<g id="a_edge115&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<text text-anchor="middle" x="622.7949" y="-247.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.(*mcentral).grow (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1898.6968,-222.5 1769.4448,-222.5 1769.4448,-181.5 1898.6968,-181.5 1898.6968,-222.5"/>
<text text-anchor="middle" x="1834.0708" y="-209.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="1834.0708" y="-198.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.34%)</text>
<text text-anchor="middle" x="1834.0708" y="-187.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.29s(2.45%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N26 -->
<g id="edge33" class="edge">
<title>N23&#45;&gt;N26</title>
<g id="a_edge33"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.29s)">
<path fill="none" stroke="#000000" d="M1834.0708,-284.8146C1834.0708,-270.3288 1834.0708,-250.1414 1834.0708,-233.3249"/>
<polygon fill="#000000" stroke="#000000" points="1837.5709,-232.8546 1834.0708,-222.8546 1830.5709,-232.8546 1837.5709,-232.8546"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.29s)">
<text text-anchor="middle" x="1850.7949" y="-247.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.lock (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3365.7541,-222.5 3278.3875,-222.5 3278.3875,-181.5 3365.7541,-181.5 3365.7541,-222.5"/>
<text text-anchor="middle" x="3322.0708" y="-209.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="3322.0708" y="-198.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="3322.0708" y="-187.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.13s(1.10%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N53 -->
<g id="edge103" class="edge">
<title>N23&#45;&gt;N53</title>
<g id="a_edge103"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.04s)">
<path fill="none" stroke="#000000" d="M1884.3465,-284.9864C1894.0926,-281.8857 1904.3117,-279.0294 1914.0708,-277 2078.9462,-242.7146 2123.5556,-255.6242 2291.6226,-245 2665.0066,-221.397 3115.3515,-207.6775 3268.2792,-203.4317"/>
<polygon fill="#000000" stroke="#000000" points="3268.4454,-206.9286 3278.3451,-203.1541 3268.2524,-199.9313 3268.4454,-206.9286"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.04s)">
<text text-anchor="middle" x="2308.7949" y="-247.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.gcDrain (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4077.8816,-1150.5 3996.26,-1150.5 3996.26,-1112.5 4077.8816,-1112.5 4077.8816,-1150.5"/>
<text text-anchor="middle" x="4037.0708" y="-1138.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.gcDrain</text>
<text text-anchor="middle" x="4037.0708" y="-1128.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.084%)</text>
<text text-anchor="middle" x="4037.0708" y="-1118.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.19s(1.60%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N42 -->
<g id="edge57" class="edge">
<title>N25&#45;&gt;N42</title>
<g id="a_edge57"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcDrain (0.16s)">
<path fill="none" stroke="#000000" d="M2351.6659,-1247.8536C2610.8125,-1246.8959 3783.3137,-1239.9795 3938.0708,-1193 3962.7521,-1185.5075 3987.401,-1170.2274 4005.9298,-1156.7732"/>
<polygon fill="#000000" stroke="#000000" points="4008.0717,-1159.542 4013.9906,-1150.7546 4003.8837,-1153.933 4008.0717,-1159.542"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcDrain (0.16s)">
<text text-anchor="middle" x="3986.7949" y="-1181.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.(*mheap).alloc (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1888.9234,-125.5 1779.2182,-125.5 1779.2182,-87.5 1888.9234,-87.5 1888.9234,-125.5"/>
<text text-anchor="middle" x="1834.0708" y="-113.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="1834.0708" y="-103.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.084%)</text>
<text text-anchor="middle" x="1834.0708" y="-93.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.21s(1.77%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N37 -->
<g id="edge44" class="edge">
<title>N26&#45;&gt;N37</title>
<g id="a_edge44"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.21s)">
<path fill="none" stroke="#000000" d="M1834.0708,-181.2779C1834.0708,-167.9466 1834.0708,-150.4242 1834.0708,-135.6926"/>
<polygon fill="#000000" stroke="#000000" points="1837.5709,-135.5587 1834.0708,-125.5588 1830.5709,-135.5588 1837.5709,-135.5587"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.21s)">
<text text-anchor="middle" x="1850.7949" y="-147.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N29 -->
<g id="edge117" class="edge">
<title>N27&#45;&gt;N29</title>
<g id="a_edge117"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.02s)">
<path fill="none" stroke="#000000" d="M924.8994,-1110.8967C922.1152,-1082.5047 912.7241,-1031.826 881.0708,-1005 832.9438,-964.2126 642.1125,-1003.3775 601.6226,-955 588.2156,-938.9813 589.8932,-925.2849 601.6226,-908 681.0484,-790.9546 853.2411,-752.868 956.0064,-740.4757"/>
<polygon fill="#000000" stroke="#000000" points="956.5015,-743.9419 966.0356,-739.3212 955.7009,-736.9878 956.5015,-743.9419"/>
</a>
</g>
<g id="a_edge117&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.02s)">
<text text-anchor="middle" x="618.7949" y="-927.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.newarray (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1084.3718,-1047.5 997.7698,-1047.5 997.7698,-1009.5 1084.3718,-1009.5 1084.3718,-1047.5"/>
<text text-anchor="middle" x="1041.0708" y="-1035.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="1041.0708" y="-1025.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.17%)</text>
<text text-anchor="middle" x="1041.0708" y="-1015.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(1.52%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N47 -->
<g id="edge53" class="edge">
<title>N27&#45;&gt;N47</title>
<g id="a_edge53"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.18s)">
<path fill="none" stroke="#000000" d="M949.0664,-1110.904C967.1557,-1094.7022 992.475,-1072.0249 1011.9745,-1054.5602"/>
<polygon fill="#000000" stroke="#000000" points="1014.5548,-1056.9478 1019.6687,-1047.6688 1009.8845,-1051.7334 1014.5548,-1056.9478"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.18s)">
<text text-anchor="middle" x="1010.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N44 -->
<g id="edge78" class="edge">
<title>N29&#45;&gt;N44</title>
<g id="a_edge78"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.09s)">
<path fill="none" stroke="#000000" d="M966.0305,-725.6374C759.6104,-698.6226 173.6238,-610.0689 61.6226,-463 34.4209,-427.2814 49.0015,-290.4678 56.9777,-230.4745"/>
<polygon fill="#000000" stroke="#000000" points="60.4943,-230.5895 58.3786,-220.2081 53.5586,-229.6431 60.4943,-230.5895"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.09s)">
<text text-anchor="middle" x="78.7949" y="-451.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.freedefer (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1299.6205,-227 1186.5211,-227 1186.5211,-177 1299.6205,-177 1299.6205,-227"/>
<text text-anchor="middle" x="1243.0708" y="-211.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="1243.0708" y="-197.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.20s(1.69%)</text>
<text text-anchor="middle" x="1243.0708" y="-183.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.21s(1.77%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N38 -->
<g id="edge45" class="edge">
<title>N30&#45;&gt;N38</title>
<g id="a_edge45"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.21s)">
<path fill="none" stroke="#000000" d="M1243.0708,-283.3588C1243.0708,-270.2101 1243.0708,-252.8284 1243.0708,-237.5077"/>
<polygon fill="#000000" stroke="#000000" points="1246.5709,-237.3076 1243.0708,-227.3077 1239.5709,-237.3077 1246.5709,-237.3076"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.21s)">
<text text-anchor="middle" x="1259.7949" y="-247.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N13 -->
<g id="edge52" class="edge">
<title>N31&#45;&gt;N13</title>
<g id="a_edge52"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.18s)">
<path fill="none" stroke="#000000" d="M1159.9162,-1109.3564C1151.5648,-1101.8958 1142.8488,-1093.1305 1136.0708,-1084 1086.9034,-1017.7681 1067.793,-920.1002 1060.7995,-868.2891"/>
<polygon fill="#000000" stroke="#000000" points="1064.2574,-867.7361 1059.5207,-858.259 1057.3136,-868.6214 1064.2574,-867.7361"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.18s)">
<text text-anchor="middle" x="1104.7949" y="-975.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime._System (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1870.8407,-524 1797.3009,-524 1797.3009,-488 1870.8407,-488 1870.8407,-524"/>
<text text-anchor="middle" x="1834.0708" y="-507.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="1834.0708" y="-499.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.24s(2.03%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N9 -->
<g id="edge41" class="edge">
<title>N32&#45;&gt;N9</title>
<g id="a_edge41"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.24s)">
<path fill="none" stroke="#000000" d="M1834.0708,-487.6585C1834.0708,-474.7392 1834.0708,-457.0296 1834.0708,-441.4044"/>
<polygon fill="#000000" stroke="#000000" points="1837.5709,-441.0044 1834.0708,-431.0044 1830.5709,-441.0045 1837.5709,-441.0044"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.24s)">
<text text-anchor="middle" x="1850.7949" y="-451.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N40 -->
<g id="edge108" class="edge">
<title>N34&#45;&gt;N40</title>
<g id="a_edge108"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M2404.0068,-1109.3744C2406.39,-1082.0066 2406.2231,-1035.3275 2383.0708,-1005 2364.1388,-980.2008 2335.1357,-963.6416 2306.4158,-952.6387"/>
<polygon fill="#000000" stroke="#000000" points="2307.296,-949.2349 2296.7018,-949.1165 2304.9098,-955.8157 2307.296,-949.2349"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="2418.7949" y="-1024.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N52 -->
<g id="edge109" class="edge">
<title>N34&#45;&gt;N52</title>
<g id="a_edge109"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M2315.0462,-1109.4039C2238.5428,-1089.7534 2128.5996,-1061.5136 2060.8923,-1044.1225"/>
<polygon fill="#000000" stroke="#000000" points="2061.3656,-1040.6305 2050.8093,-1041.5326 2059.6241,-1047.4104 2061.3656,-1040.6305"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="2229.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.mapaccess2_faststr (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2610.5259,-1050.5 2461.6157,-1050.5 2461.6157,-1006.5 2610.5259,-1006.5 2610.5259,-1050.5"/>
<text text-anchor="middle" x="2536.0708" y="-1036.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="2536.0708" y="-1024.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.68%)</text>
<text text-anchor="middle" x="2536.0708" y="-1012.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.09s(0.76%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N69 -->
<g id="edge75" class="edge">
<title>N34&#45;&gt;N69</title>
<g id="a_edge75"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.09s)">
<path fill="none" stroke="#000000" d="M2430.0317,-1109.4039C2450.2292,-1093.994 2477.3499,-1073.3019 2499.1073,-1056.7018"/>
<polygon fill="#000000" stroke="#000000" points="2501.3306,-1059.4079 2507.1578,-1050.5595 2497.0845,-1053.8427 2501.3306,-1059.4079"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.09s)">
<text text-anchor="middle" x="2497.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="runtime.getitab (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="437.1964,-955 336.9452,-955 336.9452,-908 437.1964,-908 437.1964,-955"/>
<text text-anchor="middle" x="387.0708" y="-940.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="387.0708" y="-927.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.16s(1.35%)</text>
<text text-anchor="middle" x="387.0708" y="-914.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.22s(1.86%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N36 -->
<g id="edge47" class="edge">
<title>N37&#45;&gt;N36</title>
<g id="a_edge47"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.20s)">
<path fill="none" stroke="#000000" d="M1834.0708,-87.2968C1834.0708,-75.343 1834.0708,-59.7529 1834.0708,-46.3879"/>
<polygon fill="#000000" stroke="#000000" points="1837.5709,-46.2584 1834.0708,-36.2584 1830.5709,-46.2585 1837.5709,-46.2584"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.20s)">
<text text-anchor="middle" x="1850.7949" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N35 -->
<g id="edge60" class="edge">
<title>N41&#45;&gt;N35</title>
<g id="a_edge60"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.14s)">
<path fill="none" stroke="#000000" d="M383.1312,-1007.9288C383.7662,-995.6089 384.5893,-979.6419 385.3187,-965.4902"/>
<polygon fill="#000000" stroke="#000000" points="388.8341,-965.2795 385.8537,-955.1126 381.8434,-964.9191 388.8341,-965.2795"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.14s)">
<text text-anchor="middle" x="401.7949" y="-975.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.gcFlushBgCredit (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3935.0093,-1047.5 3817.1323,-1047.5 3817.1323,-1009.5 3935.0093,-1009.5 3935.0093,-1047.5"/>
<text text-anchor="middle" x="3876.0708" y="-1035.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="3876.0708" y="-1025.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.084%)</text>
<text text-anchor="middle" x="3876.0708" y="-1015.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(0.93%)</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N60 -->
<g id="edge67" class="edge">
<title>N42&#45;&gt;N60</title>
<g id="a_edge67"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.gcFlushBgCredit (0.11s)">
<path fill="none" stroke="#000000" d="M4007.1653,-1112.3679C3980.9582,-1095.6019 3942.7202,-1071.139 3914.2977,-1052.9557"/>
<polygon fill="#000000" stroke="#000000" points="3916.1261,-1049.9705 3905.8162,-1047.5297 3912.3537,-1055.867 3916.1261,-1049.9705"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.gcFlushBgCredit (0.11s)">
<text text-anchor="middle" x="3977.5386" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.mcall (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1962.8407,-524 1889.3009,-524 1889.3009,-488 1962.8407,-488 1962.8407,-524"/>
<text text-anchor="middle" x="1926.0708" y="-507.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="1926.0708" y="-499.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.19s(1.60%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N9 -->
<g id="edge79" class="edge">
<title>N43&#45;&gt;N9</title>
<g id="a_edge79"><a xlink:title="runtime.mcall ... runtime.systemstack (0.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1909.1966,-487.6585C1896.6252,-473.9939 1879.1235,-454.9703 1864.1752,-438.7222"/>
<polygon fill="#000000" stroke="#000000" points="1866.4213,-435.9941 1857.0749,-431.0044 1861.2697,-440.7335 1866.4213,-435.9941"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.mcall ... runtime.systemstack (0.09s)">
<text text-anchor="middle" x="1902.7949" y="-451.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N40 -->
<g id="edge113" class="edge">
<title>N45&#45;&gt;N40</title>
<g id="a_edge113"><a xlink:title="main.executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M838.0538,-1112.372C846.6347,-1108.3038 855.9951,-1104.4894 865.0708,-1102 928.1975,-1084.6847 1394.7544,-1083.6169 1452.0708,-1052 1475.0048,-1039.3492 1464.6542,-1017.5883 1487.6226,-1005 1610.2831,-937.7736 1976.9257,-976.9305 2115.0708,-955 2121.1943,-954.0279 2127.5004,-952.8746 2133.8212,-951.6089"/>
<polygon fill="#000000" stroke="#000000" points="2134.6684,-955.0076 2143.7418,-949.5374 2133.2375,-948.1554 2134.6684,-955.0076"/>
</a>
</g>
<g id="a_edge113&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="1504.7949" y="-1024.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N41 -->
<g id="edge101" class="edge">
<title>N45&#45;&gt;N41</title>
<g id="a_edge101"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.04s)">
<path fill="none" stroke="#000000" d="M769.849,-1112.4553C761.0389,-1108.3317 751.4046,-1104.471 742.0708,-1102 636.761,-1074.1201 602.8812,-1112.0726 497.6226,-1084 490.5468,-1082.1129 460.2014,-1067.4951 432.3848,-1053.7364"/>
<polygon fill="#000000" stroke="#000000" points="433.5992,-1050.4318 423.0856,-1049.1229 430.4882,-1056.7026 433.5992,-1050.4318"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.04s)">
<text text-anchor="middle" x="514.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="main.(*Integer).Multiply (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="872.0513,-1046.5 776.0903,-1046.5 776.0903,-1010.5 872.0513,-1010.5 872.0513,-1046.5"/>
<text text-anchor="middle" x="824.0708" y="-1030.1" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="824.0708" y="-1022.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.08s(0.68%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N70 -->
<g id="edge82" class="edge">
<title>N45&#45;&gt;N70</title>
<g id="a_edge82"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.08s)">
<path fill="none" stroke="#000000" d="M807.8326,-1112.1265C810.85,-1096.5872 815.1289,-1074.5507 818.5369,-1056.9996"/>
<polygon fill="#000000" stroke="#000000" points="822.0568,-1057.2332 820.5272,-1046.7494 815.1852,-1055.8988 822.0568,-1057.2332"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.08s)">
<text text-anchor="middle" x="832.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N74 -->
<g id="edge114" class="edge">
<title>N45&#45;&gt;N74</title>
<g id="a_edge114"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.02s)">
<path fill="none" stroke="#000000" d="M767.968,-1112.5C759.6228,-1108.6237 750.6664,-1104.8613 742.0708,-1102 703.5948,-1089.1921 690.0001,-1099.7277 652.6226,-1084 642.4356,-1079.7135 642.2898,-1074.2094 632.0708,-1070 591.5286,-1053.2998 576.7559,-1065.5985 535.0708,-1052 534.2075,-1051.7184 533.3398,-1051.4247 532.4694,-1051.1203"/>
<polygon fill="#000000" stroke="#000000" points="533.6958,-1047.8421 523.1063,-1047.5072 531.1757,-1054.3727 533.6958,-1047.8421"/>
</a>
</g>
<g id="a_edge114&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.02s)">
<text text-anchor="middle" x="669.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N7 -->
<g id="edge58" class="edge">
<title>N47&#45;&gt;N7</title>
<g id="a_edge58"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.16s)">
<path fill="none" stroke="#000000" d="M1051.9831,-1009.2032C1067.6923,-982.9873 1099.0169,-936.1651 1137.0708,-908 1164.892,-887.4085 1176.1182,-889.3062 1208.0708,-876 1228.7203,-867.4008 1239.0827,-873.6437 1255.0708,-858 1305.5088,-808.6486 1280.6137,-772.5814 1315.0708,-711 1322.9096,-696.9905 1332.5875,-682.6223 1342.0931,-669.5949"/>
<polygon fill="#000000" stroke="#000000" points="1345.1418,-671.3601 1348.2936,-661.2449 1339.5218,-667.1868 1345.1418,-671.3601"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.16s)">
<text text-anchor="middle" x="1303.7949" y="-828.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N13 -->
<g id="edge112" class="edge">
<title>N48&#45;&gt;N13</title>
<g id="a_edge112"><a xlink:title="main.executeLessThan &#45;&gt; runtime.convT2I (0.02s)">
<path fill="none" stroke="#000000" d="M515.7345,-1112.4639C507.1988,-1108.4942 497.9677,-1104.7006 489.0708,-1102 417.3743,-1080.2367 359.6764,-1119.9346 328.0708,-1052 301.0743,-993.9725 285.1942,-955.5141 328.0708,-908 372.0292,-859.2871 818.4985,-840.3813 990.2456,-834.8755"/>
<polygon fill="#000000" stroke="#000000" points="990.5368,-838.3681 1000.4215,-834.5547 990.3162,-831.3716 990.5368,-838.3681"/>
</a>
</g>
<g id="a_edge112&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; runtime.convT2I (0.02s)">
<text text-anchor="middle" x="320.7949" y="-975.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N41 -->
<g id="edge91" class="edge">
<title>N48&#45;&gt;N41</title>
<g id="a_edge91"><a xlink:title="main.executeLessThan &#45;&gt; runtime.assertI2I (0.06s)">
<path fill="none" stroke="#000000" d="M515.3848,-1112.3801C506.9421,-1108.4627 497.8393,-1104.7129 489.0708,-1102 464.4755,-1094.3904 391.3536,-1103.568 374.6226,-1084 368.747,-1077.1281 368.1234,-1067.9246 369.7112,-1058.9904"/>
<polygon fill="#000000" stroke="#000000" points="373.139,-1059.7166 372.2816,-1049.1565 366.3665,-1057.9463 373.139,-1059.7166"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; runtime.assertI2I (0.06s)">
<text text-anchor="middle" x="391.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.assertI2T2 (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="281.5435,-1046.5 174.5981,-1046.5 174.5981,-1010.5 281.5435,-1010.5 281.5435,-1046.5"/>
<text text-anchor="middle" x="228.0708" y="-1030.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2T2</text>
<text text-anchor="middle" x="228.0708" y="-1018.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.59%)</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N79 -->
<g id="edge106" class="edge">
<title>N48&#45;&gt;N79</title>
<g id="a_edge106"><a xlink:title="main.executeLessThan ... runtime.assertI2T2 (0.03s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M516.8395,-1112.491C508.0296,-1108.3666 498.3978,-1104.4966 489.0708,-1102 440.0929,-1088.89 304.7673,-1110.6314 261.6226,-1084 251.2062,-1077.5704 243.5859,-1066.5922 238.2654,-1056.0884"/>
<polygon fill="#000000" stroke="#000000" points="241.3327,-1054.3779 234.0116,-1046.7195 234.9589,-1057.2719 241.3327,-1054.3779"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.executeLessThan ... runtime.assertI2T2 (0.03s)">
<text text-anchor="middle" x="278.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N13 -->
<g id="edge64" class="edge">
<title>N50&#45;&gt;N13</title>
<g id="a_edge64"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.12s)">
<path fill="none" stroke="#000000" d="M598.4921,-1009.3004C615.2345,-982.7617 648.9113,-935.0848 689.6226,-908 738.0837,-875.7593 898.0931,-851.9691 990.1948,-840.5523"/>
<polygon fill="#000000" stroke="#000000" points="990.7563,-844.0098 1000.257,-839.3208 989.9058,-837.0617 990.7563,-844.0098"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.12s)">
<text text-anchor="middle" x="706.7949" y="-927.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.usleep (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3368.4664,-36 3275.6752,-36 3275.6752,0 3368.4664,0 3368.4664,-36"/>
<text text-anchor="middle" x="3322.0708" y="-20.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="3322.0708" y="-7.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(1.27%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N29 -->
<g id="edge94" class="edge">
<title>N52&#45;&gt;N29</title>
<g id="a_edge94"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.06s)">
<path fill="none" stroke="#000000" d="M1949.5504,-1007.1798C1946.7085,-1006.3568 1943.8696,-1005.6202 1941.0708,-1005 1804.1632,-974.6632 1765.597,-1001.0161 1626.0708,-987 1526.8836,-977.0361 1497.6629,-989.3206 1404.0708,-955 1367.138,-941.4566 1364.9165,-924.2031 1329.0708,-908 1311.3238,-899.978 1175.4698,-871.1141 1161.0708,-858 1132.0265,-831.5475 1155.1542,-804.4569 1128.0708,-776 1123.7115,-771.4196 1118.7491,-767.2991 1113.4465,-763.6007"/>
<polygon fill="#000000" stroke="#000000" points="1115.1849,-760.5582 1104.8718,-758.1312 1111.4204,-766.4598 1115.1849,-760.5582"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.06s)">
<text text-anchor="middle" x="1279.7949" y="-878.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="runtime.osyield (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3358.8407,-124.5 3285.3009,-124.5 3285.3009,-88.5 3358.8407,-88.5 3358.8407,-124.5"/>
<text text-anchor="middle" x="3322.0708" y="-108.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="3322.0708" y="-100.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(1.10%)</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N54 -->
<g id="edge88" class="edge">
<title>N53&#45;&gt;N54</title>
<g id="a_edge88"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.07s)">
<path fill="none" stroke="#000000" d="M3322.0708,-181.2779C3322.0708,-167.6817 3322.0708,-149.7263 3322.0708,-134.8179"/>
<polygon fill="#000000" stroke="#000000" points="3325.5709,-134.6067 3322.0708,-124.6067 3318.5709,-134.6067 3325.5709,-134.6067"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.07s)">
<text text-anchor="middle" x="3338.7949" y="-147.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N51 -->
<g id="edge61" class="edge">
<title>N54&#45;&gt;N51</title>
<g id="a_edge61"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.13s)">
<path fill="none" stroke="#000000" d="M3322.0708,-88.1627C3322.0708,-76.0979 3322.0708,-60.065 3322.0708,-46.3712"/>
<polygon fill="#000000" stroke="#000000" points="3325.5709,-46.0109 3322.0708,-36.011 3318.5709,-46.011 3325.5709,-46.0109"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.13s)">
<text text-anchor="middle" x="3338.7949" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.makemap (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1508.7943,-952 1413.3473,-952 1413.3473,-911 1508.7943,-911 1508.7943,-952"/>
<text text-anchor="middle" x="1461.0708" y="-939.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="1461.0708" y="-928.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.42%)</text>
<text text-anchor="middle" x="1461.0708" y="-917.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.10s(0.84%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N66 -->
<g id="edge72" class="edge">
<title>N55&#45;&gt;N66</title>
<g id="a_edge72"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.10s)">
<path fill="none" stroke="#000000" d="M1768.0557,-1009.4517C1694.9968,-990.9001 1585.5003,-963.096 1518.9332,-946.1928"/>
<polygon fill="#000000" stroke="#000000" points="1519.5856,-942.7475 1509.0318,-943.6786 1517.8627,-949.5321 1519.5856,-942.7475"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.10s)">
<text text-anchor="middle" x="1691.7949" y="-975.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N13 -->
<g id="edge102" class="edge">
<title>N56&#45;&gt;N13</title>
<g id="a_edge102"><a xlink:title="main.isZeroPred &#45;&gt; runtime.convT2I (0.04s)">
<path fill="none" stroke="#000000" d="M401.9425,-1110.9332C395.2315,-1107.4827 388.0785,-1104.2859 381.0708,-1102 287.8021,-1071.5757 220.7132,-1133.4795 166.0708,-1052 154.4362,-1034.6512 156.6044,-1023.6207 166.0708,-1005 214.006,-910.7102 263.686,-902.5648 366.0708,-876 482.6714,-845.7467 840.2916,-836.5075 990.0304,-833.9221"/>
<polygon fill="#000000" stroke="#000000" points="990.5063,-837.4147 1000.4461,-833.7472 990.3888,-830.4156 990.5063,-837.4147"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.isZeroPred &#45;&gt; runtime.convT2I (0.04s)">
<text text-anchor="middle" x="200.7949" y="-975.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="strings.ContainsRune (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3638.4901,-1049 3527.6515,-1049 3527.6515,-1008 3638.4901,-1008 3638.4901,-1049"/>
<text text-anchor="middle" x="3583.0708" y="-1036.2" font-family="Times,serif" font-size="11.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="3583.0708" y="-1025.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.42%)</text>
<text text-anchor="middle" x="3583.0708" y="-1014.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(1.01%)</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="strings.IndexRune (0.07s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3631.423,-952 3534.7186,-952 3534.7186,-911 3631.423,-911 3631.423,-952"/>
<text text-anchor="middle" x="3583.0708" y="-939.2" font-family="Times,serif" font-size="11.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="3583.0708" y="-928.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="3583.0708" y="-917.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.07s(0.59%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N80 -->
<g id="edge89" class="edge">
<title>N58&#45;&gt;N80</title>
<g id="a_edge89"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.07s)">
<path fill="none" stroke="#000000" d="M3583.0708,-1007.9288C3583.0708,-994.6827 3583.0708,-977.2202 3583.0708,-962.3312"/>
<polygon fill="#000000" stroke="#000000" points="3586.5709,-962.0415 3583.0708,-952.0416 3579.5709,-962.0416 3586.5709,-962.0415"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.07s)">
<text text-anchor="middle" x="3599.7949" y="-975.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.(*mheap).alloc_m (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2379.8759,-220 2278.2657,-220 2278.2657,-184 2379.8759,-184 2379.8759,-220"/>
<text text-anchor="middle" x="2329.0708" y="-203.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="2329.0708" y="-195.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(0.84%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N65 -->
<g id="edge73" class="edge">
<title>N59&#45;&gt;N65</title>
<g id="a_edge73"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.10s)">
<path fill="none" stroke="#000000" d="M2329.0708,-284.8146C2329.0708,-269.4262 2329.0708,-247.6036 2329.0708,-230.2229"/>
<polygon fill="#000000" stroke="#000000" points="2332.5709,-230.0721 2329.0708,-220.0722 2325.5709,-230.0722 2332.5709,-230.0721"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.10s)">
<text text-anchor="middle" x="2345.7949" y="-247.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N53 -->
<g id="edge96" class="edge">
<title>N60&#45;&gt;N53</title>
<g id="a_edge96"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.06s)">
<path fill="none" stroke="#000000" d="M3817.0474,-1022.8301C3761.5927,-1013.8647 3687.0708,-990.7872 3687.0708,-931.5 3687.0708,-931.5 3687.0708,-931.5 3687.0708,-304 3687.0708,-240.1502 3477.2761,-214.4873 3375.7952,-205.8087"/>
<polygon fill="#000000" stroke="#000000" points="3375.991,-202.313 3365.7358,-204.9738 3375.412,-209.289 3375.991,-202.313"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.06s)">
<text text-anchor="middle" x="3703.7949" y="-616.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.gopreempt_m (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1251.8878,-639 1164.2538,-639 1164.2538,-603 1251.8878,-603 1251.8878,-639"/>
<text text-anchor="middle" x="1208.0708" y="-622.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="1208.0708" y="-614.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.93%)</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.goschedImpl (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1258.8299,-525 1157.3117,-525 1157.3117,-487 1258.8299,-487 1258.8299,-525"/>
<text text-anchor="middle" x="1208.0708" y="-513" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="1208.0708" y="-503" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.084%)</text>
<text text-anchor="middle" x="1208.0708" y="-493" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(0.93%)</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N62 -->
<g id="edge68" class="edge">
<title>N61&#45;&gt;N62</title>
<g id="a_edge68"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.11s)">
<path fill="none" stroke="#000000" d="M1208.0708,-602.7779C1208.0708,-584.6818 1208.0708,-556.6435 1208.0708,-535.3954"/>
<polygon fill="#000000" stroke="#000000" points="1211.5709,-535.2879 1208.0708,-525.2879 1204.5709,-535.2879 1211.5709,-535.2879"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.11s)">
<text text-anchor="middle" x="1224.5386" y="-551.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N9 -->
<g id="edge100" class="edge">
<title>N62&#45;&gt;N9</title>
<g id="a_edge100"><a xlink:title="runtime.goschedImpl ... runtime.systemstack (0.05s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1249.8693,-486.9531C1255.8908,-484.6903 1262.0781,-482.6152 1268.0708,-481 1439.5967,-434.77 1648.3593,-416.5111 1758.1564,-409.7171"/>
<polygon fill="#000000" stroke="#000000" points="1758.6974,-413.1909 1768.4684,-409.0948 1758.2757,-406.2036 1758.6974,-413.1909"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.goschedImpl ... runtime.systemstack (0.05s)">
<text text-anchor="middle" x="1422.7949" y="-451.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.morestack (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1245.829,-851 1170.3126,-851 1170.3126,-815 1245.829,-815 1245.829,-851"/>
<text text-anchor="middle" x="1208.0708" y="-834.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="1208.0708" y="-826.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.93%)</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.newstack (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1245.0489,-752.5 1171.0927,-752.5 1171.0927,-716.5 1245.0489,-716.5 1245.0489,-752.5"/>
<text text-anchor="middle" x="1208.0708" y="-736.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="1208.0708" y="-728.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.93%)</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N64 -->
<g id="edge69" class="edge">
<title>N63&#45;&gt;N64</title>
<g id="a_edge69"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.11s)">
<path fill="none" stroke="#000000" d="M1208.0708,-814.9336C1208.0708,-800.4456 1208.0708,-779.8416 1208.0708,-763.1145"/>
<polygon fill="#000000" stroke="#000000" points="1211.5709,-762.7854 1208.0708,-752.7855 1204.5709,-762.7855 1211.5709,-762.7854"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.11s)">
<text text-anchor="middle" x="1224.5386" y="-778.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N61 -->
<g id="edge70" class="edge">
<title>N64&#45;&gt;N61</title>
<g id="a_edge70"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.11s)">
<path fill="none" stroke="#000000" d="M1208.0708,-716.2643C1208.0708,-698.2279 1208.0708,-670.3641 1208.0708,-649.4221"/>
<polygon fill="#000000" stroke="#000000" points="1211.5709,-649.1904 1208.0708,-639.1905 1204.5709,-649.1905 1211.5709,-649.1904"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.11s)">
<text text-anchor="middle" x="1224.5386" y="-681.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.(*mheap).allocSpanLocked (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2416.2926,-127 2241.849,-127 2241.849,-86 2416.2926,-86 2416.2926,-127"/>
<text text-anchor="middle" x="2329.0708" y="-114.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).allocSpanLocked</text>
<text text-anchor="middle" x="2329.0708" y="-103.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.25%)</text>
<text text-anchor="middle" x="2329.0708" y="-92.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(0.76%)</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N68 -->
<g id="edge77" class="edge">
<title>N65&#45;&gt;N68</title>
<g id="a_edge77"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.09s)">
<path fill="none" stroke="#000000" d="M2329.0708,-183.5866C2329.0708,-170.4631 2329.0708,-152.5126 2329.0708,-137.2353"/>
<polygon fill="#000000" stroke="#000000" points="2332.5709,-137.1779 2329.0708,-127.178 2325.5709,-137.178 2332.5709,-137.1779"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.09s)">
<text text-anchor="middle" x="2345.7949" y="-147.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N8 -->
<g id="edge107" class="edge">
<title>N66&#45;&gt;N8</title>
<g id="a_edge107"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.03s)">
<path fill="none" stroke="#000000" d="M1452.6606,-910.7899C1438.8369,-876.7491 1411.1932,-808.6764 1394.5935,-767.7996"/>
<polygon fill="#000000" stroke="#000000" points="1397.732,-766.2256 1390.7266,-758.2774 1391.2463,-768.8594 1397.732,-766.2256"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.03s)">
<text text-anchor="middle" x="1447.7949" y="-828.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N58 -->
<g id="edge93" class="edge">
<title>N67&#45;&gt;N58</title>
<g id="a_edge93"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.06s)">
<path fill="none" stroke="#000000" d="M3583.0708,-1110.6564C3583.0708,-1095.9974 3583.0708,-1076.1282 3583.0708,-1059.6018"/>
<polygon fill="#000000" stroke="#000000" points="3586.5709,-1059.3126 3583.0708,-1049.3126 3579.5709,-1059.3126 3586.5709,-1059.3126"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.06s)">
<text text-anchor="middle" x="3599.7949" y="-1072.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="main.Integer.Multiply (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="906.8396,-950.5 803.302,-950.5 803.302,-912.5 906.8396,-912.5 906.8396,-950.5"/>
<text text-anchor="middle" x="855.0708" y="-938.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="855.0708" y="-928.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.084%)</text>
<text text-anchor="middle" x="855.0708" y="-918.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.08s(0.68%)</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N73 -->
<g id="edge80" class="edge">
<title>N70&#45;&gt;N73</title>
<g id="a_edge80"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.08s)">
<path fill="none" stroke="#000000" d="M829.9017,-1010.255C834.4042,-996.1663 840.7193,-976.4064 845.8972,-960.2044"/>
<polygon fill="#000000" stroke="#000000" points="849.2376,-961.2495 848.9479,-950.6586 842.5698,-959.1185 849.2376,-961.2495"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.08s)">
<text text-anchor="middle" x="858.7949" y="-975.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N13 -->
<g id="edge84" class="edge">
<title>N71&#45;&gt;N13</title>
<g id="a_edge84"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.07s)">
<path fill="none" stroke="#000000" d="M707.0128,-1009.1131C713.4769,-982.3518 728.9152,-934.4123 760.6226,-908 795.2196,-879.1807 914.1312,-855.6235 990.4275,-843.0087"/>
<polygon fill="#000000" stroke="#000000" points="991.1289,-846.4407 1000.4349,-841.3763 990.0019,-839.532 991.1289,-846.4407"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.07s)">
<text text-anchor="middle" x="777.7949" y="-927.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N13 -->
<g id="edge90" class="edge">
<title>N73&#45;&gt;N13</title>
<g id="a_edge90"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.06s)">
<path fill="none" stroke="#000000" d="M865.655,-912.4134C873.3137,-900.2896 884.7373,-885.2011 898.6226,-876 925.8399,-857.9642 960.4249,-847.4595 990.3343,-841.3573"/>
<polygon fill="#000000" stroke="#000000" points="991.1179,-844.771 1000.2809,-839.4521 989.801,-837.8959 991.1179,-844.771"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.06s)">
<text text-anchor="middle" x="915.7949" y="-878.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N35 -->
<g id="edge95" class="edge">
<title>N74&#45;&gt;N35</title>
<g id="a_edge95"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.06s)">
<path fill="none" stroke="#000000" d="M466.5116,-1009.3359C452.8553,-995.9555 434.329,-977.8035 418.6024,-962.3946"/>
<polygon fill="#000000" stroke="#000000" points="420.733,-959.5821 411.1406,-955.0835 415.834,-964.5821 420.733,-959.5821"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.06s)">
<text text-anchor="middle" x="459.7949" y="-975.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N75 -->
<g id="edge104" class="edge">
<title>N76&#45;&gt;N75</title>
<g id="a_edge104"><a xlink:title="main.(*CodeQuotation).getcodePosition &#45;&gt; runtime.duffcopy (0.03s)">
<path fill="none" stroke="#000000" d="M1526.0587,-1110.9492C1513.8161,-1107.6632 1501.1176,-1104.5207 1489.0708,-1102 1426.2514,-1088.8556 1246.9086,-1100.2798 1204.6226,-1052 1182.6644,-1026.9295 1184.6713,-986.5539 1189.3523,-959.5336"/>
<polygon fill="#000000" stroke="#000000" points="1192.821,-960.0325 1191.3079,-949.5463 1185.9514,-958.6873 1192.821,-960.0325"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.(*CodeQuotation).getcodePosition &#45;&gt; runtime.duffcopy (0.03s)">
<text text-anchor="middle" x="1221.7949" y="-1024.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N13 -->
<g id="edge105" class="edge">
<title>N78&#45;&gt;N13</title>
<g id="a_edge105"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.03s)">
<path fill="none" stroke="#000000" d="M1531.3048,-1007.9781C1526.1544,-1006.9651 1521.0537,-1005.9675 1516.0708,-1005 1417.4472,-985.8504 1380.9924,-1007.9652 1295.6226,-955 1272.1787,-940.4549 1277.6765,-923.8164 1255.0708,-908 1249.2609,-903.935 1178.5037,-877.5164 1123.2138,-857.1719"/>
<polygon fill="#000000" stroke="#000000" points="1124.3824,-853.8725 1113.7889,-853.7075 1121.9673,-860.4427 1124.3824,-853.8725"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="main.(*machine).loadBooleanWords.func2 &#45;&gt; runtime.convT2I (0.03s)">
<text text-anchor="middle" x="1312.7949" y="-927.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion8.svg.

















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1653)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1653 4050.5176,-1653 4050.5176,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="1922.1123,-1425 1922.1123,-1641 2582.1123,-1641 2582.1123,-1425 1922.1123,-1425"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="2574.2843,-1633 1929.9403,-1633 1929.9403,-1433 2574.2843,-1433 2574.2843,-1633"/>
<text text-anchor="start" x="1937.7764" y="-1603.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="1937.7764" y="-1571.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="1937.7764" y="-1539.4" font-family="Times,serif" font-size="32.00" fill="#000000">11.61s of 12.58s total (92.29%)</text>
<text text-anchor="start" x="1937.7764" y="-1507.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 78 nodes (cum &lt;= 0.06s)</text>
<text text-anchor="start" x="1937.7764" y="-1475.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 18 edges (freq &lt;= 0.01s)</text>
<text text-anchor="start" x="1937.7764" y="-1443.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 115 (cum &gt;= 0.09s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (11.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2750.5497,-1383 2501.6749,-1383 2501.6749,-1306 2750.5497,-1306 2750.5497,-1383"/>
<text text-anchor="middle" x="2626.1123" y="-1360.6" font-family="Times,serif" font-size="23.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="2626.1123" y="-1337.6" font-family="Times,serif" font-size="23.00" fill="#000000">1.28s(10.17%)</text>
<text text-anchor="middle" x="2626.1123" y="-1314.6" font-family="Times,serif" font-size="23.00" fill="#000000">of 11.45s(91.02%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute.func7 (11.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2716.339,-1251.5 2535.8856,-1251.5 2535.8856,-1204.5 2716.339,-1204.5 2716.339,-1251.5"/>
<text text-anchor="middle" x="2626.1123" y="-1237.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).execute.func7</text>
<text text-anchor="middle" x="2626.1123" y="-1224.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.12s(0.95%)</text>
<text text-anchor="middle" x="2626.1123" y="-1211.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 11.44s(90.94%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge10" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge10"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (1.24s)">
<path fill="none" stroke="#000000" d="M2658.8269,-1305.7874C2662.2098,-1300.1111 2665.1291,-1294.1096 2667.1123,-1288 2670.3298,-1278.0878 2667.2025,-1268.3255 2661.4897,-1259.6484"/>
<polygon fill="#000000" stroke="#000000" points="2664.2265,-1257.4659 2655.3431,-1251.6921 2658.687,-1261.7454 2664.2265,-1257.4659"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (1.24s)">
<text text-anchor="middle" x="2685.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.24s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).execute.func4 (10.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2876.4408,-1247 2733.7838,-1247 2733.7838,-1209 2876.4408,-1209 2876.4408,-1247"/>
<text text-anchor="middle" x="2805.1123" y="-1235" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).execute.func4</text>
<text text-anchor="middle" x="2805.1123" y="-1225" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.079%)</text>
<text text-anchor="middle" x="2805.1123" y="-1215" font-family="Times,serif" font-size="10.00" fill="#000000">of 10.66s(84.74%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N3 -->
<g id="edge62" class="edge">
<title>N1&#45;&gt;N3</title>
<g id="a_edge62"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func4 (0.15s)">
<path fill="none" stroke="#000000" d="M2685.7167,-1305.7072C2712.5906,-1288.2167 2743.5272,-1268.0819 2767.175,-1252.691"/>
<polygon fill="#000000" stroke="#000000" points="2769.3857,-1255.4283 2775.8577,-1247.04 2765.5672,-1249.5614 2769.3857,-1255.4283"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func4 (0.15s)">
<text text-anchor="middle" x="2748.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.(*machine).loadLoopWords.func1 (7.79s)">
<polygon fill="#f8f8f8" stroke="#000000" points="532.0947,-1250 324.1299,-1250 324.1299,-1206 532.0947,-1206 532.0947,-1250"/>
<text text-anchor="middle" x="428.1123" y="-1236.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="428.1123" y="-1224.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.79%)</text>
<text text-anchor="middle" x="428.1123" y="-1212.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 7.79s(61.92%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N5 -->
<g id="edge41" class="edge">
<title>N1&#45;&gt;N5</title>
<g id="a_edge41"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.31s)">
<path fill="none" stroke="#000000" d="M2501.6942,-1343.5904C2133.2092,-1340.4619 1051.4126,-1328.03 700.6641,-1288 638.8204,-1280.942 570.4081,-1265.8575 517.5947,-1252.58"/>
<polygon fill="#000000" stroke="#000000" points="518.1375,-1249.1068 507.5836,-1250.038 516.4146,-1255.8915 518.1375,-1249.1068"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.31s)">
<text text-anchor="middle" x="717.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.newobject (3.53s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2234.7188,-854.5 2121.5058,-854.5 2121.5058,-807.5 2234.7188,-807.5 2234.7188,-854.5"/>
<text text-anchor="middle" x="2178.1123" y="-840.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="2178.1123" y="-827.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.12s(0.95%)</text>
<text text-anchor="middle" x="2178.1123" y="-814.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 3.53s(28.06%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N8 -->
<g id="edge38" class="edge">
<title>N1&#45;&gt;N8</title>
<g id="a_edge38"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.34s)">
<path fill="none" stroke="#000000" d="M2501.6713,-1342.1261C2297.4916,-1337.3302 1878.7903,-1323.7119 1526.1123,-1288 1421.0065,-1277.3571 1296.1123,-1333.6432 1296.1123,-1228 1296.1123,-1228 1296.1123,-1228 1296.1123,-928 1296.1123,-839.5402 1982.2875,-874.3438 2111.2088,-855.71"/>
<polygon fill="#000000" stroke="#000000" points="2112.1116,-859.1033 2121.3247,-853.8719 2110.8601,-852.2161 2112.1116,-859.1033"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.34s)">
<text text-anchor="middle" x="1312.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.(*machine).execute.func8 (2.55s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2268.339,-1251.5 2087.8856,-1251.5 2087.8856,-1204.5 2268.339,-1204.5 2268.339,-1251.5"/>
<text text-anchor="middle" x="2178.1123" y="-1237.1" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).execute.func8</text>
<text text-anchor="middle" x="2178.1123" y="-1224.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.16s(1.27%)</text>
<text text-anchor="middle" x="2178.1123" y="-1211.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 2.55s(20.27%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N10 -->
<g id="edge9" class="edge">
<title>N1&#45;&gt;N10</title>
<g id="a_edge9"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func8 (1.26s)">
<path fill="none" stroke="#000000" d="M2501.8435,-1328.4401C2444.7149,-1319.3758 2376.5001,-1306.1581 2316.6641,-1288 2288.8619,-1279.563 2259.1615,-1267.1843 2234.4185,-1255.8586"/>
<polygon fill="#000000" stroke="#000000" points="2235.737,-1252.6121 2225.1925,-1251.58 2232.7919,-1258.9624 2235.737,-1252.6121"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func8 (1.26s)">
<text text-anchor="middle" x="2333.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.26s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.NilWord.func1 (1.58s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3262.6299,-1250 3147.5947,-1250 3147.5947,-1206 3262.6299,-1206 3262.6299,-1250"/>
<text text-anchor="middle" x="3205.1123" y="-1236.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="3205.1123" y="-1224.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.72%)</text>
<text text-anchor="middle" x="3205.1123" y="-1212.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.58s(12.56%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N12 -->
<g id="edge19" class="edge">
<title>N1&#45;&gt;N12</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.66s)">
<path fill="none" stroke="#000000" d="M2750.3576,-1307.7598C2753.6336,-1307.1275 2756.8893,-1306.5386 2760.1123,-1306 2836.9277,-1293.1633 3035.8813,-1311.5615 3110.1123,-1288 3131.487,-1281.2155 3152.8221,-1268.4248 3169.8428,-1256.3903"/>
<polygon fill="#000000" stroke="#000000" points="3172.3107,-1258.9224 3178.3276,-1250.2019 3168.1858,-1253.2669 3172.3107,-1258.9224"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.66s)">
<text text-anchor="middle" x="3157.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.66s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="runtime.convT2I (1.51s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2076.7672,-950 1977.4574,-950 1977.4574,-906 2076.7672,-906 2076.7672,-950"/>
<text text-anchor="middle" x="2027.1123" y="-936.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="2027.1123" y="-924.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.79%)</text>
<text text-anchor="middle" x="2027.1123" y="-912.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.51s(12.00%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N13 -->
<g id="edge25" class="edge">
<title>N1&#45;&gt;N13</title>
<g id="a_edge25"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.58s)">
<path fill="none" stroke="#000000" d="M2501.6932,-1342.2445C2315.6757,-1336.8296 1975.914,-1318.435 1873.1123,-1256 1860.2582,-1248.1933 1854.1123,-1243.039 1854.1123,-1228 1854.1123,-1228 1854.1123,-1228 1854.1123,-1025 1854.1123,-971.7354 1917.2773,-947.4246 1967.2727,-936.5248"/>
<polygon fill="#000000" stroke="#000000" points="1967.9783,-939.9531 1977.0735,-934.5191 1966.5748,-933.0952 1967.9783,-939.9531"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (0.58s)">
<text text-anchor="middle" x="1870.8364" y="-1120.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.growslice (0.79s)">
<polygon fill="#f8f8f8" stroke="#000000" points="110.3371,-1251.5 -.1125,-1251.5 -.1125,-1204.5 110.3371,-1204.5 110.3371,-1251.5"/>
<text text-anchor="middle" x="55.1123" y="-1237.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="55.1123" y="-1224.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.16s(1.27%)</text>
<text text-anchor="middle" x="55.1123" y="-1211.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.79s(6.28%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N16 -->
<g id="edge16" class="edge">
<title>N1&#45;&gt;N16</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.79s)">
<path fill="none" stroke="#000000" d="M2501.6257,-1342.9263C2093.8108,-1337.5249 800.3514,-1318.3812 383.6641,-1288 265.542,-1279.3876 233.3703,-1287.1785 119.1123,-1256 117.6863,-1255.6109 116.2511,-1255.1954 114.8107,-1254.7568"/>
<polygon fill="#000000" stroke="#000000" points="115.8667,-1251.4195 105.2728,-1251.5645 113.6449,-1258.0575 115.8667,-1251.4195"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.79s)">
<text text-anchor="middle" x="400.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.79s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.deferreturn (0.72s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3421.4405,-1256 3280.7841,-1256 3280.7841,-1200 3421.4405,-1200 3421.4405,-1256"/>
<text text-anchor="middle" x="3351.1123" y="-1239.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="3351.1123" y="-1223.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.40s(3.18%)</text>
<text text-anchor="middle" x="3351.1123" y="-1207.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.72s(5.72%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N17 -->
<g id="edge18" class="edge">
<title>N1&#45;&gt;N17</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.72s)">
<path fill="none" stroke="#000000" d="M2750.3516,-1307.7235C2753.6294,-1307.102 2756.8871,-1306.5251 2760.1123,-1306 2943.6453,-1276.1166 2995.3552,-1322.3104 3178.1123,-1288 3210.8159,-1281.8603 3245.6981,-1270.7106 3275.5099,-1259.6743"/>
<polygon fill="#000000" stroke="#000000" points="3276.8757,-1262.9 3285.0017,-1256.1016 3274.4097,-1256.3487 3276.8757,-1262.9"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.72s)">
<text text-anchor="middle" x="3248.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.72s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.deferproc (0.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3549.0953,-1251.5 3439.1293,-1251.5 3439.1293,-1204.5 3549.0953,-1204.5 3549.0953,-1251.5"/>
<text text-anchor="middle" x="3494.1123" y="-1237.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="3494.1123" y="-1224.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(1.19%)</text>
<text text-anchor="middle" x="3494.1123" y="-1211.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.64s(5.09%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N20 -->
<g id="edge21" class="edge">
<title>N1&#45;&gt;N20</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.64s)">
<path fill="none" stroke="#000000" d="M2750.3462,-1307.6902C2753.6256,-1307.0785 2756.8851,-1306.5127 2760.1123,-1306 2983.6719,-1270.4808 3044.264,-1314.1487 3269.1123,-1288 3341.5792,-1279.5725 3360.509,-1277.8596 3430.1123,-1256 3431.1537,-1255.6729 3432.2009,-1255.3343 3433.2523,-1254.9852"/>
<polygon fill="#000000" stroke="#000000" points="3434.533,-1258.2446 3442.7821,-1251.5962 3432.1874,-1251.6493 3434.533,-1258.2446"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.64s)">
<text text-anchor="middle" x="3381.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.64s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="main.executeSubtract (0.55s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1593.7359,-1250 1474.4887,-1250 1474.4887,-1206 1593.7359,-1206 1593.7359,-1250"/>
<text text-anchor="middle" x="1534.1123" y="-1236.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.executeSubtract</text>
<text text-anchor="middle" x="1534.1123" y="-1224.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.48%)</text>
<text text-anchor="middle" x="1534.1123" y="-1212.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.55s(4.37%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N21 -->
<g id="edge26" class="edge">
<title>N1&#45;&gt;N21</title>
<g id="a_edge26"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.55s)">
<path fill="none" stroke="#000000" d="M2501.815,-1341.4554C2283.9714,-1335.3753 1841.9811,-1319.5204 1690.6641,-1288 1655.8236,-1280.7425 1618.5524,-1266.7309 1589.1198,-1254.0724"/>
<polygon fill="#000000" stroke="#000000" points="1590.4168,-1250.8196 1579.8522,-1250.0203 1587.6125,-1257.2333 1590.4168,-1250.8196"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.55s)">
<text text-anchor="middle" x="1707.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.55s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.49s)">
<polygon fill="#f8f8f8" stroke="#000000" points="305.7533,-1247 128.4713,-1247 128.4713,-1209 305.7533,-1209 305.7533,-1247"/>
<text text-anchor="middle" x="217.1123" y="-1235" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="217.1123" y="-1225" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="217.1123" y="-1215" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.49s(3.90%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N22 -->
<g id="edge27" class="edge">
<title>N1&#45;&gt;N22</title>
<g id="a_edge27"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.49s)">
<path fill="none" stroke="#000000" d="M2501.6118,-1342.5701C2117.9641,-1336.3845 957.0885,-1315.8195 580.6641,-1288 462.1106,-1279.2384 431.6404,-1279.5138 315.1123,-1256 306.2595,-1254.2136 297.0413,-1252.0266 287.9553,-1249.6697"/>
<polygon fill="#000000" stroke="#000000" points="288.736,-1246.2555 278.1715,-1247.0564 286.9295,-1253.0184 288.736,-1246.2555"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.49s)">
<text text-anchor="middle" x="597.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.49s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="main.(*CodeQuotation).nextWord (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1267.6596,-1248 1036.565,-1248 1036.565,-1208 1267.6596,-1208 1267.6596,-1248"/>
<text text-anchor="middle" x="1152.1123" y="-1231.2" font-family="Times,serif" font-size="16.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="1152.1123" y="-1215.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.40s(3.18%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N28 -->
<g id="edge33" class="edge">
<title>N1&#45;&gt;N28</title>
<g id="a_edge33"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.40s)">
<path fill="none" stroke="#000000" d="M2501.6199,-1343.0129C2185.1191,-1338.719 1366.3665,-1324.2177 1248.6641,-1288 1225.6458,-1280.9171 1202.6331,-1266.9532 1184.8511,-1254.2778"/>
<polygon fill="#000000" stroke="#000000" points="1186.6971,-1251.2911 1176.5649,-1248.1946 1182.5547,-1256.9338 1186.6971,-1251.2911"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.40s)">
<text text-anchor="middle" x="1265.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2069.7455,-1250 1882.4791,-1250 1882.4791,-1206 2069.7455,-1206 2069.7455,-1250"/>
<text text-anchor="middle" x="1976.1123" y="-1236.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(intPusher).(main.pushInt)&#45;fm</text>
<text text-anchor="middle" x="1976.1123" y="-1224.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.64%)</text>
<text text-anchor="middle" x="1976.1123" y="-1212.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.30s(2.38%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N35 -->
<g id="edge42" class="edge">
<title>N1&#45;&gt;N35</title>
<g id="a_edge42"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.30s)">
<path fill="none" stroke="#000000" d="M2501.856,-1329.4509C2390.3508,-1314.7512 2222.6403,-1289.6802 2079.1123,-1256 2074.4527,-1254.9066 2069.6849,-1253.7488 2064.8781,-1252.5507"/>
<polygon fill="#000000" stroke="#000000" points="2065.5324,-1249.106 2054.9791,-1250.0427 2063.8132,-1255.8916 2065.5324,-1249.106"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.30s)">
<text text-anchor="middle" x="2244.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime.memeqbody (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1456.3645,-1246 1323.8601,-1246 1323.8601,-1210 1456.3645,-1210 1456.3645,-1246"/>
<text text-anchor="middle" x="1390.1123" y="-1230.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="1390.1123" y="-1216.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.22s(1.75%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N42 -->
<g id="edge52" class="edge">
<title>N1&#45;&gt;N42</title>
<g id="a_edge52"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.21s)">
<path fill="none" stroke="#000000" d="M2501.8094,-1340.2744C2268.7559,-1331.9123 1774.3688,-1311.9728 1604.6641,-1288 1541.6569,-1279.0995 1526.0632,-1274.2788 1465.1123,-1256 1458.5828,-1254.0418 1451.8022,-1251.8062 1445.1065,-1249.4713"/>
<polygon fill="#000000" stroke="#000000" points="1445.991,-1246.0706 1435.3964,-1246.0002 1443.6346,-1252.6621 1445.991,-1246.0706"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.21s)">
<text text-anchor="middle" x="1621.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1018.0811,-1250 808.1436,-1250 808.1436,-1206 1018.0811,-1206 1018.0811,-1250"/>
<text text-anchor="middle" x="913.1123" y="-1236.4" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="913.1123" y="-1224.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.64%)</text>
<text text-anchor="middle" x="913.1123" y="-1212.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.21s(1.67%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N43 -->
<g id="edge51" class="edge">
<title>N1&#45;&gt;N43</title>
<g id="a_edge51"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.21s)">
<path fill="none" stroke="#000000" d="M2501.7857,-1342.2993C2199.9472,-1336.5272 1434.6005,-1319.2027 1180.6641,-1288 1120.408,-1280.596 1053.7887,-1265.6786 1002.0998,-1252.5712"/>
<polygon fill="#000000" stroke="#000000" points="1002.8533,-1249.1512 992.2976,-1250.0619 1001.1173,-1255.9326 1002.8533,-1249.1512"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.21s)">
<text text-anchor="middle" x="1197.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.ifaceeq (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1718.2097,-1253 1612.0149,-1253 1612.0149,-1203 1718.2097,-1203 1718.2097,-1253"/>
<text text-anchor="middle" x="1665.1123" y="-1237.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="1665.1123" y="-1223.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.17s(1.35%)</text>
<text text-anchor="middle" x="1665.1123" y="-1209.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.19s(1.51%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N48 -->
<g id="edge55" class="edge">
<title>N1&#45;&gt;N48</title>
<g id="a_edge55"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.19s)">
<path fill="none" stroke="#000000" d="M2501.58,-1339.8816C2278.224,-1331.0842 1826.3253,-1310.7588 1757.6641,-1288 1738.4934,-1281.6456 1719.4098,-1270.3431 1703.5953,-1259.2481"/>
<polygon fill="#000000" stroke="#000000" points="1705.3169,-1256.1732 1695.1661,-1253.1383 1701.2088,-1261.841 1705.3169,-1256.1732"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.19s)">
<text text-anchor="middle" x="1774.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="main.executeMultiply (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="654.1445,-1247 550.0801,-1247 550.0801,-1209 654.1445,-1209 654.1445,-1247"/>
<text text-anchor="middle" x="602.1123" y="-1235" font-family="Times,serif" font-size="10.00" fill="#000000">main.executeMultiply</text>
<text text-anchor="middle" x="602.1123" y="-1225" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="602.1123" y="-1215" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(1.43%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N49 -->
<g id="edge57" class="edge">
<title>N1&#45;&gt;N49</title>
<g id="a_edge57"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.18s)">
<path fill="none" stroke="#000000" d="M2501.8124,-1343.3304C2166.018,-1339.6902 1245.7165,-1326.4062 944.6641,-1288 916.4045,-1284.3948 910.2763,-1278.2882 882.1123,-1274 785.5635,-1259.2997 757.587,-1280.7449 663.1123,-1256 658.0292,-1254.6686 652.8441,-1252.9375 647.7507,-1250.9888"/>
<polygon fill="#000000" stroke="#000000" points="648.6991,-1247.5941 638.1197,-1247.0209 646.0325,-1254.0664 648.6991,-1247.5941"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.18s)">
<text text-anchor="middle" x="961.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="main.executeLessThan (0.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="789.7071,-1248.5 672.5175,-1248.5 672.5175,-1207.5 789.7071,-1207.5 789.7071,-1248.5"/>
<text text-anchor="middle" x="731.1123" y="-1235.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeLessThan</text>
<text text-anchor="middle" x="731.1123" y="-1224.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.24%)</text>
<text text-anchor="middle" x="731.1123" y="-1213.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.17s(1.35%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N53 -->
<g id="edge60" class="edge">
<title>N1&#45;&gt;N53</title>
<g id="a_edge60"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeLessThan (0.17s)">
<path fill="none" stroke="#000000" d="M2501.6658,-1342.2272C2182.4015,-1336.0394 1339.8851,-1317.3635 1061.6641,-1288 1025.9627,-1284.2321 1017.6799,-1278.8717 982.1123,-1274 901.1425,-1262.9095 878.4109,-1275.7697 799.1123,-1256 794.552,-1254.8631 789.8971,-1253.4741 785.2691,-1251.9292"/>
<polygon fill="#000000" stroke="#000000" points="786.4409,-1248.6312 775.8463,-1248.5696 784.0901,-1255.2247 786.4409,-1248.6312"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeLessThan (0.17s)">
<text text-anchor="middle" x="1078.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="main.isZeroPred (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1825.6216,-1248.5 1736.603,-1248.5 1736.603,-1207.5 1825.6216,-1207.5 1825.6216,-1248.5"/>
<text text-anchor="middle" x="1781.1123" y="-1235.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.isZeroPred</text>
<text text-anchor="middle" x="1781.1123" y="-1224.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.4%)</text>
<text text-anchor="middle" x="1781.1123" y="-1213.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.15s(1.19%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N58 -->
<g id="edge63" class="edge">
<title>N1&#45;&gt;N58</title>
<g id="a_edge63"><a xlink:title="main.(*machine).execute &#45;&gt; main.isZeroPred (0.15s)">
<path fill="none" stroke="#000000" d="M2501.8016,-1343.0018C2286.5069,-1339.374 1861.8516,-1327.2755 1806.6641,-1288 1796.9179,-1281.0639 1790.8642,-1269.6329 1787.1152,-1258.5987"/>
<polygon fill="#000000" stroke="#000000" points="1790.4023,-1257.3642 1784.2803,-1248.7172 1783.6737,-1259.2946 1790.4023,-1257.3642"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.isZeroPred (0.15s)">
<text text-anchor="middle" x="1823.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="main.tryParseInt (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3059.6216,-1248.5 2970.603,-1248.5 2970.603,-1207.5 3059.6216,-1207.5 3059.6216,-1248.5"/>
<text text-anchor="middle" x="3015.1123" y="-1235.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="3015.1123" y="-1224.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.4%)</text>
<text text-anchor="middle" x="3015.1123" y="-1213.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.13s(1.03%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N63 -->
<g id="edge69" class="edge">
<title>N1&#45;&gt;N63</title>
<g id="a_edge69"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.13s)">
<path fill="none" stroke="#000000" d="M2750.4021,-1308.0048C2753.6649,-1307.2999 2756.9059,-1306.6296 2760.1123,-1306 2832.9319,-1291.701 2856.4163,-1313.4877 2926.1123,-1288 2946.8279,-1280.4243 2967.414,-1267.0269 2983.5616,-1254.811"/>
<polygon fill="#000000" stroke="#000000" points="2985.8392,-1257.4735 2991.5784,-1248.5677 2981.5381,-1251.9507 2985.8392,-1257.4735"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.13s)">
<text text-anchor="middle" x="2969.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.eqstring (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2387.6796,-1246 2286.545,-1246 2286.545,-1210 2387.6796,-1210 2387.6796,-1246"/>
<text text-anchor="middle" x="2337.1123" y="-1230.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="2337.1123" y="-1217.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.12s(0.95%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N72 -->
<g id="edge76" class="edge">
<title>N1&#45;&gt;N72</title>
<g id="a_edge76"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.12s)">
<path fill="none" stroke="#000000" d="M2522.0605,-1305.9969C2482.6791,-1290.978 2437.5997,-1273.247 2397.1123,-1256 2392.7796,-1254.1543 2388.2971,-1252.1823 2383.8235,-1250.1716"/>
<polygon fill="#000000" stroke="#000000" points="2385.2559,-1246.9781 2374.7046,-1246.0183 2382.3544,-1253.3485 2385.2559,-1246.9781"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.12s)">
<text text-anchor="middle" x="2488.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.makeslice (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2517.772,-1251.5 2406.4526,-1251.5 2406.4526,-1204.5 2517.772,-1204.5 2517.772,-1251.5"/>
<text text-anchor="middle" x="2462.1123" y="-1237.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.makeslice</text>
<text text-anchor="middle" x="2462.1123" y="-1224.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(0.87%)</text>
<text text-anchor="middle" x="2462.1123" y="-1211.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.12s(0.95%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N74 -->
<g id="edge77" class="edge">
<title>N1&#45;&gt;N74</title>
<g id="a_edge77"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.makeslice (0.12s)">
<path fill="none" stroke="#000000" d="M2571.5027,-1305.7072C2549.3908,-1289.9997 2524.2769,-1272.1596 2503.6938,-1257.5381"/>
<polygon fill="#000000" stroke="#000000" points="2505.6432,-1254.6297 2495.4638,-1251.6918 2501.5893,-1260.3364 2505.6432,-1254.6297"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.makeslice (0.12s)">
<text text-anchor="middle" x="2560.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (10.20s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2626.1123,-1251.6918C2626.1123,-1264.2948 2626.1123,-1280.2785 2626.1123,-1295.4152"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2621.7374,-1295.7071 2626.1123,-1305.7072 2630.4874,-1295.7072 2621.7374,-1295.7071"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (10.20s)">
<text text-anchor="middle" x="2646.3364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 10.20s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.(*CodeQuotation).cloneCode (1.89s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2282.7201,-1150 2073.5045,-1150 2073.5045,-1100 2282.7201,-1100 2282.7201,-1150"/>
<text text-anchor="middle" x="2178.1123" y="-1134.8" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="2178.1123" y="-1120.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.21s(1.67%)</text>
<text text-anchor="middle" x="2178.1123" y="-1106.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.89s(15.02%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N11 -->
<g id="edge12" class="edge">
<title>N2&#45;&gt;N11</title>
<g id="a_edge12"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (1.12s)">
<path fill="none" stroke="#000000" d="M2544.3759,-1204.4416C2538.5447,-1202.8966 2532.7459,-1201.4005 2527.1123,-1200 2449.2952,-1180.6551 2360.9875,-1161.7062 2292.6716,-1147.6946"/>
<polygon fill="#000000" stroke="#000000" points="2293.2394,-1144.2384 2282.7409,-1145.6637 2291.8368,-1151.0964 2293.2394,-1144.2384"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (1.12s)">
<text text-anchor="middle" x="2467.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.12s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (10.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2883.667,-1144 2726.5576,-1144 2726.5576,-1106 2883.667,-1106 2883.667,-1144"/>
<text text-anchor="middle" x="2805.1123" y="-1132" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="2805.1123" y="-1122" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="2805.1123" y="-1112" font-family="Times,serif" font-size="10.00" fill="#000000">of 10.66s(84.74%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N4 -->
<g id="edge1" class="edge">
<title>N3&#45;&gt;N4</title>
<g id="a_edge1"><a xlink:title="main.(*machine).execute.func4 &#45;&gt; main.(*machine).executeQuotation (10.65s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2805.1123,-1208.6265C2805.1123,-1193.3768 2805.1123,-1171.8697 2805.1123,-1154.4853"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2809.4874,-1154.2866 2805.1123,-1144.2866 2800.7374,-1154.2867 2809.4874,-1154.2866"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).execute.func4 &#45;&gt; main.(*machine).executeQuotation (10.65s)">
<text text-anchor="middle" x="2825.3364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 10.65s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge2" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge2"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (10.52s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M2835.7988,-1144.2133C2853.8469,-1157.4303 2875.0467,-1176.7662 2885.1123,-1200 2895.0064,-1222.8378 2899.5892,-1235.7546 2885.1123,-1256 2880.8408,-1261.9735 2820.2853,-1282.8192 2758.807,-1302.7786"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="2757.1075,-1298.7302 2748.9407,-1305.972 2759.802,-1307.055 2757.1075,-1298.7302"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (10.52s)">
<text text-anchor="middle" x="2915.3364" y="-1223.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 10.52s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N8 -->
<g id="edge83" class="edge">
<title>N4&#45;&gt;N8</title>
<g id="a_edge83"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.11s)">
<path fill="none" stroke="#000000" d="M2764.4562,-1105.9364C2656.8386,-1055.4745 2364.1593,-918.2373 2237.6665,-858.9249"/>
<polygon fill="#000000" stroke="#000000" points="2239.0277,-855.6976 2228.4877,-854.621 2236.0559,-862.0354 2239.0277,-855.6976"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.11s)">
<text text-anchor="middle" x="2515.5801" y="-970.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N1 -->
<g id="edge4" class="edge">
<title>N5&#45;&gt;N1</title>
<g id="a_edge4"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.48s)">
<path fill="none" stroke="#000000" stroke-width="3" d="M510.8143,-1250.0179C520.9718,-1252.2701 531.2469,-1254.3369 541.1123,-1256 627.8093,-1270.6151 650.7319,-1264.2713 738.1123,-1274 785.5824,-1279.2852 797.058,-1284.1271 844.6641,-1288 1164.2717,-1314.001 2134.025,-1334.9342 2491.7204,-1341.963"/>
<polygon fill="#000000" stroke="#000000" stroke-width="3" points="2491.7985,-1345.4651 2501.8652,-1342.1619 2491.9357,-1338.4665 2491.7985,-1345.4651"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.48s)">
<text text-anchor="middle" x="861.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.48s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N8 -->
<g id="edge78" class="edge">
<title>N5&#45;&gt;N8</title>
<g id="a_edge78"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.12s)">
<path fill="none" stroke="#000000" d="M413.5418,-1205.6968C401.7572,-1185.4867 387.1123,-1154.4473 387.1123,-1125 387.1123,-1125 387.1123,-1125 387.1123,-928 387.1123,-838.3545 1102.5507,-877.8769 1192.1123,-874 1291.5733,-869.6945 1973.8455,-875.3422 2111.1144,-855.8106"/>
<polygon fill="#000000" stroke="#000000" points="2112.0845,-859.1974 2121.3741,-854.1029 2110.9351,-852.2924 2112.0845,-859.1974"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.12s)">
<text text-anchor="middle" x="403.8364" y="-1020.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.assertI2T (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1142.585,-950 1041.6396,-950 1041.6396,-906 1142.585,-906 1142.585,-950"/>
<text text-anchor="middle" x="1092.1123" y="-936.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="1092.1123" y="-924.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.56%)</text>
<text text-anchor="middle" x="1092.1123" y="-912.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.19s(1.51%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N46 -->
<g id="edge102" class="edge">
<title>N5&#45;&gt;N46</title>
<g id="a_edge102"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.05s)">
<path fill="none" stroke="#000000" d="M432.5124,-1205.6221C439.288,-1177.0473 455.0066,-1127.9641 487.1123,-1100 569.8541,-1027.932 895.5402,-963.0148 1031.7347,-938.4359"/>
<polygon fill="#000000" stroke="#000000" points="1032.3718,-941.8775 1041.5968,-936.6669 1031.1359,-934.9875 1032.3718,-941.8775"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.05s)">
<text text-anchor="middle" x="554.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="main.(*machine).popValue (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="652.3971,-1143 495.8275,-1143 495.8275,-1107 652.3971,-1107 652.3971,-1143"/>
<text text-anchor="middle" x="574.1123" y="-1127.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="574.1123" y="-1114.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.16s(1.27%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N54 -->
<g id="edge106" class="edge">
<title>N5&#45;&gt;N54</title>
<g id="a_edge106"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).popValue (0.04s)">
<path fill="none" stroke="#000000" d="M475.6117,-1205.9711C488.8549,-1199.0179 502.9392,-1190.8247 515.1123,-1182 527.8246,-1172.7845 540.5294,-1160.9356 550.8759,-1150.4303"/>
<polygon fill="#000000" stroke="#000000" points="553.5435,-1152.706 557.9592,-1143.0752 548.5014,-1147.8503 553.5435,-1152.706"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).popValue (0.04s)">
<text text-anchor="middle" x="547.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.goexit (7s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2659.8822,-1551 2592.3424,-1551 2592.3424,-1515 2659.8822,-1515 2659.8822,-1551"/>
<text text-anchor="middle" x="2626.1123" y="-1534.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="2626.1123" y="-1526.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 7s(55.64%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N1 -->
<g id="edge5" class="edge">
<title>N6&#45;&gt;N1</title>
<g id="a_edge5"><a xlink:title="runtime.goexit ... main.(*machine).execute (6.62s)">
<path fill="none" stroke="#000000" stroke-width="3" stroke-dasharray="1,5" d="M2626.1123,-1514.9258C2626.1123,-1487.1215 2626.1123,-1432.8992 2626.1123,-1393.053"/>
<polygon fill="#000000" stroke="#000000" stroke-width="3" points="2629.6124,-1393.001 2626.1123,-1383.001 2622.6124,-1393.001 2629.6124,-1393.001"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (6.62s)">
<text text-anchor="middle" x="2642.8364" y="-1403.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 6.62s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.gcBgMarkWorker (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2869.503,-1362.5 2768.7216,-1362.5 2768.7216,-1326.5 2869.503,-1326.5 2869.503,-1362.5"/>
<text text-anchor="middle" x="2819.1123" y="-1346.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="2819.1123" y="-1338.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.38s(3.02%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N29 -->
<g id="edge34" class="edge">
<title>N6&#45;&gt;N29</title>
<g id="a_edge34"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.38s)">
<path fill="none" stroke="#000000" d="M2644.618,-1514.9258C2679.2025,-1481.1476 2753.7071,-1408.3802 2793.2438,-1369.7654"/>
<polygon fill="#000000" stroke="#000000" points="2795.9542,-1372.0106 2800.6627,-1362.5195 2791.0632,-1367.0028 2795.9542,-1372.0106"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (0.38s)">
<text text-anchor="middle" x="2773.8364" y="-1403.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.mallocgc (4.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2270.2221,-756 2086.0025,-756 2086.0025,-676 2270.2221,-676 2270.2221,-756"/>
<text text-anchor="middle" x="2178.1123" y="-732.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="2178.1123" y="-708.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.65s(13.12%)</text>
<text text-anchor="middle" x="2178.1123" y="-684.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 4.35s(34.58%)</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.heapBitsSetType (0.66s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2254.4412,-626 2045.7834,-626 2045.7834,-580 2254.4412,-580 2254.4412,-626"/>
<text text-anchor="middle" x="2150.1123" y="-606.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="2150.1123" y="-587.8" font-family="Times,serif" font-size="19.00" fill="#000000">0.66s(5.25%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N18 -->
<g id="edge20" class="edge">
<title>N7&#45;&gt;N18</title>
<g id="a_edge20"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.66s)">
<path fill="none" stroke="#000000" d="M2168.1617,-675.8423C2164.9443,-662.8576 2161.4146,-648.613 2158.3367,-636.1911"/>
<polygon fill="#000000" stroke="#000000" points="2161.6766,-635.1178 2155.8741,-626.2531 2154.8821,-636.8014 2161.6766,-635.1178"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.66s)">
<text text-anchor="middle" x="2180.8364" y="-646.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.66s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.(*mcache).nextFree (0.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2401.8939,-622 2272.3307,-622 2272.3307,-584 2401.8939,-584 2401.8939,-622"/>
<text text-anchor="middle" x="2337.1123" y="-610" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="2337.1123" y="-600" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="2337.1123" y="-590" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.64s(5.09%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N19 -->
<g id="edge22" class="edge">
<title>N7&#45;&gt;N19</title>
<g id="a_edge22"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.64s)">
<path fill="none" stroke="#000000" d="M2234.6174,-675.8423C2257.0106,-659.9276 2282.0669,-642.1203 2301.8002,-628.096"/>
<polygon fill="#000000" stroke="#000000" points="2304.0615,-630.7829 2310.1851,-622.1369 2300.0064,-625.077 2304.0615,-630.7829"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.64s)">
<text text-anchor="middle" x="2293.8364" y="-646.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.64s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.stkbucket (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2028.0054,-622 1904.2192,-622 1904.2192,-584 2028.0054,-584 2028.0054,-622"/>
<text text-anchor="middle" x="1966.1123" y="-606" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="1966.1123" y="-591" font-family="Times,serif" font-size="15.00" fill="#000000">0.24s(1.91%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N41 -->
<g id="edge49" class="edge">
<title>N7&#45;&gt;N41</title>
<g id="a_edge49"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.24s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2102.7721,-675.8423C2072.1113,-659.4994 2037.7058,-641.1607 2011.087,-626.9724"/>
<polygon fill="#000000" stroke="#000000" points="2012.4862,-623.7521 2002.0152,-622.1369 2009.1936,-629.9294 2012.4862,-623.7521"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.mallocgc ... runtime.stkbucket (0.24s)">
<text text-anchor="middle" x="2082.8364" y="-646.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N7 -->
<g id="edge6" class="edge">
<title>N8&#45;&gt;N7</title>
<g id="a_edge6"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.41s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M2178.1123,-807.4505C2178.1123,-795.6059 2178.1123,-780.7667 2178.1123,-766.5095"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="2181.6124,-766.282 2178.1123,-756.282 2174.6124,-766.282 2181.6124,-766.282"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (3.41s)">
<text text-anchor="middle" x="2194.8364" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.41s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.systemstack (3.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3581.6983,-530 3434.5263,-530 3434.5263,-474 3581.6983,-474 3581.6983,-530"/>
<text text-anchor="middle" x="3508.1123" y="-513.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="3508.1123" y="-497.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.35s(2.78%)</text>
<text text-anchor="middle" x="3508.1123" y="-481.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 3.16s(25.12%)</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="runtime.mach_semaphore_signal (1.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3662.0266,-424 3354.198,-424 3354.198,-372 3662.0266,-372 3662.0266,-424"/>
<text text-anchor="middle" x="3508.1123" y="-402.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="3508.1123" y="-380.4" font-family="Times,serif" font-size="22.00" fill="#000000">1.25s(9.94%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N14 -->
<g id="edge13" class="edge">
<title>N9&#45;&gt;N14</title>
<g id="a_edge13"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (1.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3508.1123,-473.8561C3508.1123,-461.6096 3508.1123,-447.1092 3508.1123,-434.0835"/>
<polygon fill="#000000" stroke="#000000" points="3511.6124,-434.0245 3508.1123,-424.0245 3504.6124,-434.0245 3511.6124,-434.0245"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (1.09s)">
<text text-anchor="middle" x="3524.8364" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.09s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.(*mcache).refill (0.48s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3931.5132,-418.5 3808.7114,-418.5 3808.7114,-377.5 3931.5132,-377.5 3931.5132,-418.5"/>
<text text-anchor="middle" x="3870.1123" y="-405.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mcache).refill</text>
<text text-anchor="middle" x="3870.1123" y="-394.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.24%)</text>
<text text-anchor="middle" x="3870.1123" y="-383.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.48s(3.82%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N23 -->
<g id="edge28" class="edge">
<title>N9&#45;&gt;N23</title>
<g id="a_edge28"><a xlink:title="runtime.systemstack ... runtime.(*mcache).refill (0.48s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3581.8709,-484.3506C3641.2454,-469.6519 3726.6161,-447.4078 3800.1123,-424 3802.3531,-423.2863 3804.6279,-422.5432 3806.9205,-421.7785"/>
<polygon fill="#000000" stroke="#000000" points="3808.0772,-425.082 3816.405,-418.5324 3805.8104,-418.4591 3808.0772,-425.082"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mcache).refill (0.48s)">
<text text-anchor="middle" x="3752.8364" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.48s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.deferproc.func1 (0.46s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2768.4437,-421.5 2625.7809,-421.5 2625.7809,-374.5 2768.4437,-374.5 2768.4437,-421.5"/>
<text text-anchor="middle" x="2697.1123" y="-407.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="2697.1123" y="-394.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.13s(1.03%)</text>
<text text-anchor="middle" x="2697.1123" y="-381.1" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.46s(3.66%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N24 -->
<g id="edge30" class="edge">
<title>N9&#45;&gt;N24</title>
<g id="a_edge30"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.46s)">
<path fill="none" stroke="#000000" d="M3434.3528,-499.5553C3301.4839,-493.9557 3013.7271,-476.3547 2777.1123,-424 2777.0098,-423.9773 2776.9073,-423.9546 2776.8047,-423.9317"/>
<polygon fill="#000000" stroke="#000000" points="2777.6823,-420.5431 2767.1408,-421.6047 2776.0435,-427.3486 2777.6823,-420.5431"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.46s)">
<text text-anchor="middle" x="2952.8364" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.46s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.deferreturn.func1 (0.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3336.0557,-420 3196.1689,-420 3196.1689,-376 3336.0557,-376 3336.0557,-420"/>
<text text-anchor="middle" x="3266.1123" y="-406.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="3266.1123" y="-394.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.48%)</text>
<text text-anchor="middle" x="3266.1123" y="-382.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.25s(1.99%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N39 -->
<g id="edge48" class="edge">
<title>N9&#45;&gt;N39</title>
<g id="a_edge48"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.25s)">
<path fill="none" stroke="#000000" d="M3442.9424,-473.9931C3406.8311,-458.4742 3362.2228,-439.3037 3326.845,-424.1"/>
<polygon fill="#000000" stroke="#000000" points="3328.164,-420.8574 3317.5945,-420.1246 3325.4001,-427.2886 3328.164,-420.8574"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.25s)">
<text text-anchor="middle" x="3411.8364" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.mach_semaphore_wait (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2965.6412,-416 2786.5834,-416 2786.5834,-380 2965.6412,-380 2965.6412,-416"/>
<text text-anchor="middle" x="2876.1123" y="-400.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="2876.1123" y="-387.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(1.19%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N59 -->
<g id="edge67" class="edge">
<title>N9&#45;&gt;N59</title>
<g id="a_edge67"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.15s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3434.3791,-493.8471C3331.1034,-481.8302 3137.7666,-457.1526 2975.1123,-424 2967.0401,-422.3547 2958.6448,-420.4526 2950.3083,-418.4408"/>
<polygon fill="#000000" stroke="#000000" points="2951.1192,-415.036 2940.5718,-416.0374 2949.4416,-421.832 2951.1192,-415.036"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.15s)">
<text text-anchor="middle" x="3166.8364" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.(*mheap).alloc.func1 (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3790.9096,-416 3679.315,-416 3679.315,-380 3790.9096,-380 3790.9096,-416"/>
<text text-anchor="middle" x="3735.1123" y="-399.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc.func1</text>
<text text-anchor="middle" x="3735.1123" y="-391.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(1.03%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N64 -->
<g id="edge73" class="edge">
<title>N9&#45;&gt;N64</title>
<g id="a_edge73"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.13s)">
<path fill="none" stroke="#000000" d="M3569.2427,-473.9931C3605.9724,-457.1654 3652.0734,-436.0443 3686.3452,-420.3426"/>
<polygon fill="#000000" stroke="#000000" points="3688.0469,-423.4129 3695.6803,-416.0658 3685.1312,-417.049 3688.0469,-423.4129"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.13s)">
<text text-anchor="middle" x="3651.8364" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.mach_semaphore_timedwait (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3178.3898,-416 2983.8348,-416 2983.8348,-380 3178.3898,-380 3178.3898,-416"/>
<text text-anchor="middle" x="3081.1123" y="-400.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mach_semaphore_timedwait</text>
<text text-anchor="middle" x="3081.1123" y="-388.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.10s(0.79%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N78 -->
<g id="edge87" class="edge">
<title>N9&#45;&gt;N78</title>
<g id="a_edge87"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.10s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3434.4742,-484.1545C3369.4048,-468.3742 3271.9376,-444.709 3187.1123,-424 3179.7349,-422.1989 3172.0694,-420.3245 3164.3868,-418.4439"/>
<polygon fill="#000000" stroke="#000000" points="3165.2124,-415.0427 3154.6669,-416.0635 3163.5473,-421.8418 3165.2124,-415.0427"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_timedwait (0.10s)">
<text text-anchor="middle" x="3327.8364" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N1 -->
<g id="edge8" class="edge">
<title>N10&#45;&gt;N1</title>
<g id="a_edge8"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).execute (1.29s)">
<path fill="none" stroke="#000000" d="M2260.7147,-1251.5442C2266.2595,-1253.0685 2271.7641,-1254.5659 2277.1123,-1256 2347.7476,-1274.941 2426.712,-1295.0534 2491.6399,-1311.3106"/>
<polygon fill="#000000" stroke="#000000" points="2490.9747,-1314.7519 2501.5251,-1313.7831 2492.6733,-1307.9611 2490.9747,-1314.7519"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).execute (1.29s)">
<text text-anchor="middle" x="2408.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.29s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N11 -->
<g id="edge17" class="edge">
<title>N10&#45;&gt;N11</title>
<g id="a_edge17"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*CodeQuotation).cloneCode (0.77s)">
<path fill="none" stroke="#000000" d="M2178.1123,-1204.3697C2178.1123,-1191.3701 2178.1123,-1174.9803 2178.1123,-1160.4744"/>
<polygon fill="#000000" stroke="#000000" points="2181.6124,-1160.3203 2178.1123,-1150.3203 2174.6124,-1160.3203 2181.6124,-1160.3203"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*CodeQuotation).cloneCode (0.77s)">
<text text-anchor="middle" x="2194.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.77s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N13 -->
<g id="edge40" class="edge">
<title>N10&#45;&gt;N13</title>
<g id="a_edge40"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; runtime.convT2I (0.33s)">
<path fill="none" stroke="#000000" d="M2126.2524,-1204.4048C2103.6715,-1191.5072 2079.0111,-1173.3496 2064.1123,-1150 2044.359,-1119.0424 2033.6658,-1013.86 2029.3775,-960.1424"/>
<polygon fill="#000000" stroke="#000000" points="2032.8634,-959.8234 2028.6044,-950.1223 2025.8841,-960.3619 2032.8634,-959.8234"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; runtime.convT2I (0.33s)">
<text text-anchor="middle" x="2060.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N8 -->
<g id="edge7" class="edge">
<title>N11&#45;&gt;N8</title>
<g id="a_edge7"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.67s)">
<path fill="none" stroke="#000000" d="M2178.1123,-1099.9337C2178.1123,-1047.142 2178.1123,-924.4732 2178.1123,-864.8051"/>
<polygon fill="#000000" stroke="#000000" points="2181.6124,-864.7675 2178.1123,-854.7675 2174.6124,-864.7676 2181.6124,-864.7675"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.67s)">
<text text-anchor="middle" x="2194.8364" y="-970.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.67s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (1.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3237.2981,-1145.5 3020.9265,-1145.5 3020.9265,-1104.5 3237.2981,-1104.5 3237.2981,-1145.5"/>
<text text-anchor="middle" x="3129.1123" y="-1132.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="3129.1123" y="-1121.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.4%)</text>
<text text-anchor="middle" x="3129.1123" y="-1110.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 1.08s(8.59%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N15 -->
<g id="edge14" class="edge">
<title>N12&#45;&gt;N15</title>
<g id="a_edge14"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.08s)">
<path fill="none" stroke="#000000" d="M3188.8084,-1205.9039C3177.5916,-1190.7023 3162.582,-1170.3603 3150.4197,-1153.8771"/>
<polygon fill="#000000" stroke="#000000" points="3153.1079,-1151.6254 3144.3543,-1145.6569 3147.4753,-1155.7816 3153.1079,-1151.6254"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.08s)">
<text text-anchor="middle" x="3186.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.08s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3448.9171,-1145.5 3255.3075,-1145.5 3255.3075,-1104.5 3448.9171,-1104.5 3448.9171,-1145.5"/>
<text text-anchor="middle" x="3352.1123" y="-1132.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="3352.1123" y="-1121.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.24%)</text>
<text text-anchor="middle" x="3352.1123" y="-1110.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.21s(1.67%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N44 -->
<g id="edge53" class="edge">
<title>N12&#45;&gt;N44</title>
<g id="a_edge53"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.21s)">
<path fill="none" stroke="#000000" d="M3236.6475,-1205.9039C3259.4378,-1189.9352 3290.3233,-1168.2943 3314.4167,-1151.4126"/>
<polygon fill="#000000" stroke="#000000" points="3316.4499,-1154.2617 3322.6312,-1145.6569 3312.433,-1148.5289 3316.4499,-1154.2617"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.21s)">
<text text-anchor="middle" x="3304.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N8 -->
<g id="edge11" class="edge">
<title>N13&#45;&gt;N8</title>
<g id="a_edge11"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.13s)">
<path fill="none" stroke="#000000" d="M2061.3765,-905.9892C2082.5176,-892.4085 2109.8812,-874.8306 2132.8011,-860.1072"/>
<polygon fill="#000000" stroke="#000000" points="2134.8236,-862.968 2141.3455,-854.6184 2131.0402,-857.0784 2134.8236,-862.968"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (1.13s)">
<text text-anchor="middle" x="2124.8364" y="-876.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.13s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.typedmemmove (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2103.8576,-856 1950.367,-856 1950.367,-806 2103.8576,-806 2103.8576,-856"/>
<text text-anchor="middle" x="2027.1123" y="-840.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="2027.1123" y="-826.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.21s(1.67%)</text>
<text text-anchor="middle" x="2027.1123" y="-812.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.44s(3.50%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N26 -->
<g id="edge45" class="edge">
<title>N13&#45;&gt;N26</title>
<g id="a_edge45"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.28s)">
<path fill="none" stroke="#000000" d="M2027.1123,-905.9892C2027.1123,-894.257 2027.1123,-879.5417 2027.1123,-866.2608"/>
<polygon fill="#000000" stroke="#000000" points="2030.6124,-866.0015 2027.1123,-856.0016 2023.6124,-866.0016 2030.6124,-866.0015"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.28s)">
<text text-anchor="middle" x="2043.8364" y="-876.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N1 -->
<g id="edge15" class="edge">
<title>N15&#45;&gt;N1</title>
<g id="a_edge15"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (0.92s)">
<path fill="none" stroke="#000000" d="M3121.7824,-1145.6846C3109.8513,-1178.3851 3085.8803,-1239.9643 3069.1123,-1256 3041.7344,-1282.1823 3026.9841,-1279.309 2990.1123,-1288 2893.4311,-1310.7885 2862.9102,-1289.1899 2760.5159,-1306.1146"/>
<polygon fill="#000000" stroke="#000000" points="2759.6312,-1302.7158 2750.3777,-1307.8755 2760.8292,-1309.6125 2759.6312,-1302.7158"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (0.92s)">
<text text-anchor="middle" x="3117.8364" y="-1223.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.92s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N8 -->
<g id="edge93" class="edge">
<title>N15&#45;&gt;N8</title>
<g id="a_edge93"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.08s)">
<path fill="none" stroke="#000000" d="M3116.1686,-1104.4389C3097.2014,-1076.1434 3059.0738,-1025.7821 3013.1123,-1000 2879.9173,-925.2842 2418.2472,-861.1375 2244.7288,-839.1286"/>
<polygon fill="#000000" stroke="#000000" points="2245.0667,-835.6436 2234.7071,-837.8638 2244.1901,-842.5885 2245.0667,-835.6436"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.08s)">
<text text-anchor="middle" x="2988.8364" y="-970.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N7 -->
<g id="edge24" class="edge">
<title>N16&#45;&gt;N7</title>
<g id="a_edge24"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.59s)">
<path fill="none" stroke="#000000" d="M80.802,-1204.3913C98.9706,-1185.0317 120.1123,-1155.8716 120.1123,-1125 120.1123,-1125 120.1123,-1125 120.1123,-831 120.1123,-731.9667 1659.3593,-718.2153 2075.4749,-716.3072"/>
<polygon fill="#000000" stroke="#000000" points="2075.702,-719.8063 2085.6863,-716.2617 2075.6707,-712.8063 2075.702,-719.8063"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.59s)">
<text text-anchor="middle" x="136.8364" y="-970.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.59s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.memmove (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2498.9173,-317 2361.3073,-317 2361.3073,-277 2498.9173,-277 2498.9173,-317"/>
<text text-anchor="middle" x="2430.1123" y="-300.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="2430.1123" y="-284.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.35s(2.78%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N32 -->
<g id="edge109" class="edge">
<title>N16&#45;&gt;N32</title>
<g id="a_edge109"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M58.3615,-1204.3235C60.9395,-1183.4799 64.1123,-1152.2841 64.1123,-1125 64.1123,-1125 64.1123,-1125 64.1123,-398 64.1123,-339.4214 1940.3084,-305.0795 2351.2121,-298.2608"/>
<polygon fill="#000000" stroke="#000000" points="2351.2796,-301.7603 2361.2203,-298.0954 2351.1638,-294.7612 2351.2796,-301.7603"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="80.8364" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N9 -->
<g id="edge47" class="edge">
<title>N17&#45;&gt;N9</title>
<g id="a_edge47"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.25s)">
<path fill="none" stroke="#000000" d="M3421.6835,-1202.7762C3424.5263,-1201.8271 3427.3441,-1200.8983 3430.1123,-1200 3456.999,-1191.2753 3473.645,-1204.224 3491.1123,-1182 3503.1764,-1166.6507 3508.1123,-850.5229 3508.1123,-831 3508.1123,-831 3508.1123,-831 3508.1123,-603 3508.1123,-582.2871 3508.1123,-559.1849 3508.1123,-540.3083"/>
<polygon fill="#000000" stroke="#000000" points="3511.6124,-540.2981 3508.1123,-530.2981 3504.6124,-540.2981 3511.6124,-540.2981"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.25s)">
<text text-anchor="middle" x="3524.8364" y="-876.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.25s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N32 -->
<g id="edge108" class="edge">
<title>N17&#45;&gt;N32</title>
<g id="a_edge108"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<path fill="none" stroke="#000000" d="M3409.1502,-1199.9712C3428.3383,-1187.5289 3447.4837,-1170.9008 3458.1123,-1150 3489.7202,-1087.8441 3450.8002,-1058.0144 3412.1123,-1000 3260.4691,-772.6036 3225.0277,-695.7961 2995.1123,-548 2846.3829,-452.3925 2775.7934,-501.9842 2617.1123,-424 2559.398,-395.6362 2498.9516,-351.5492 2462.9171,-323.4887"/>
<polygon fill="#000000" stroke="#000000" points="2464.7622,-320.4875 2454.7352,-317.0654 2460.4396,-325.9935 2464.7622,-320.4875"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.04s)">
<text text-anchor="middle" x="3284.8364" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N9 -->
<g id="edge23" class="edge">
<title>N19&#45;&gt;N9</title>
<g id="a_edge23"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.61s)">
<path fill="none" stroke="#000000" d="M2402.1583,-597.3897C2601.294,-580.214 3202.5248,-528.3572 3424.5492,-509.2074"/>
<polygon fill="#000000" stroke="#000000" points="3424.8525,-512.6943 3434.5148,-508.3479 3424.251,-505.7202 3424.8525,-512.6943"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.61s)">
<text text-anchor="middle" x="2974.8364" y="-550.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.61s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N9 -->
<g id="edge29" class="edge">
<title>N20&#45;&gt;N9</title>
<g id="a_edge29"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.46s)">
<path fill="none" stroke="#000000" d="M3522.1806,-1204.3812C3541.6552,-1185.2304 3564.1123,-1156.35 3564.1123,-1125 3564.1123,-1125 3564.1123,-1125 3564.1123,-603 3564.1123,-579.7393 3552.6112,-556.8183 3540.0332,-538.7063"/>
<polygon fill="#000000" stroke="#000000" points="3542.5505,-536.22 3533.8177,-530.2209 3536.9034,-540.3565 3542.5505,-536.22"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.46s)">
<text text-anchor="middle" x="3580.8364" y="-876.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.46s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.assertI2I (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="973.1445,-1144 889.0801,-1144 889.0801,-1106 973.1445,-1106 973.1445,-1144"/>
<text text-anchor="middle" x="931.1123" y="-1132" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="931.1123" y="-1122" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="931.1123" y="-1112" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(1.43%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N50 -->
<g id="edge95" class="edge">
<title>N21&#45;&gt;N50</title>
<g id="a_edge95"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.08s)">
<path fill="none" stroke="#000000" d="M1491.562,-1205.8857C1463.5312,-1192.4318 1425.5834,-1176.2907 1390.1123,-1168 1269.1156,-1139.7193 1234.7341,-1162.5555 1111.1123,-1150 1067.974,-1145.6187 1019.2758,-1138.7364 983.4203,-1133.3012"/>
<polygon fill="#000000" stroke="#000000" points="983.6094,-1129.7895 973.1952,-1131.7377 982.5513,-1136.7091 983.6094,-1129.7895"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.08s)">
<text text-anchor="middle" x="1451.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.convI2I (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="870.7956,-1145.5 783.429,-1145.5 783.429,-1104.5 870.7956,-1104.5 870.7956,-1145.5"/>
<text text-anchor="middle" x="827.1123" y="-1132.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="827.1123" y="-1121.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.24%)</text>
<text text-anchor="middle" x="827.1123" y="-1110.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.16s(1.27%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N55 -->
<g id="edge68" class="edge">
<title>N21&#45;&gt;N55</title>
<g id="a_edge68"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.14s)">
<path fill="none" stroke="#000000" d="M1484.5367,-1205.9871C1478.0908,-1203.6888 1471.5061,-1201.6094 1465.1123,-1200 1400.9526,-1183.8501 1235.0348,-1173.6134 1169.1123,-1168 1040.883,-1157.0811 1004.7577,-1182.0234 880.1123,-1150 878.8375,-1149.6725 877.5562,-1149.3142 876.2722,-1148.9291"/>
<polygon fill="#000000" stroke="#000000" points="877.0381,-1145.4902 866.4432,-1145.5177 874.7427,-1152.1032 877.0381,-1145.4902"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.14s)">
<text text-anchor="middle" x="1348.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="main.(*Integer).Add (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1587.5247,-1145.5 1480.6999,-1145.5 1480.6999,-1104.5 1587.5247,-1104.5 1587.5247,-1145.5"/>
<text text-anchor="middle" x="1534.1123" y="-1132.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="1534.1123" y="-1121.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.24%)</text>
<text text-anchor="middle" x="1534.1123" y="-1110.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.15s(1.19%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N57 -->
<g id="edge64" class="edge">
<title>N21&#45;&gt;N57</title>
<g id="a_edge64"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.15s)">
<path fill="none" stroke="#000000" d="M1534.1123,-1205.9039C1534.1123,-1191.2601 1534.1123,-1171.8463 1534.1123,-1155.7069"/>
<polygon fill="#000000" stroke="#000000" points="1537.6124,-1155.6568 1534.1123,-1145.6569 1530.6124,-1155.6569 1537.6124,-1155.6568"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.15s)">
<text text-anchor="middle" x="1550.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="main.(*Integer).Negate (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1745.8988,-1144 1636.3258,-1144 1636.3258,-1106 1745.8988,-1106 1745.8988,-1144"/>
<text text-anchor="middle" x="1691.1123" y="-1132" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="1691.1123" y="-1122" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.079%)</text>
<text text-anchor="middle" x="1691.1123" y="-1112" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(0.87%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N75 -->
<g id="edge84" class="edge">
<title>N21&#45;&gt;N75</title>
<g id="a_edge84"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.11s)">
<path fill="none" stroke="#000000" d="M1567.7927,-1205.9039C1592.9683,-1189.3875 1627.3929,-1166.8031 1653.4739,-1149.6927"/>
<polygon fill="#000000" stroke="#000000" points="1655.5321,-1152.5285 1661.9734,-1144.1166 1651.6922,-1146.6756 1655.5321,-1152.5285"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.11s)">
<text text-anchor="middle" x="1638.5801" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.mapassign1 (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="269.5147,-1145.5 164.7099,-1145.5 164.7099,-1104.5 269.5147,-1104.5 269.5147,-1145.5"/>
<text text-anchor="middle" x="217.1123" y="-1132.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="217.1123" y="-1121.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.4%)</text>
<text text-anchor="middle" x="217.1123" y="-1110.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.42s(3.34%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N27 -->
<g id="edge32" class="edge">
<title>N22&#45;&gt;N27</title>
<g id="a_edge32"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.42s)">
<path fill="none" stroke="#000000" d="M217.1123,-1208.6265C217.1123,-1193.7628 217.1123,-1172.9546 217.1123,-1155.8134"/>
<polygon fill="#000000" stroke="#000000" points="220.6124,-1155.7003 217.1123,-1145.7003 213.6124,-1155.7004 220.6124,-1155.7003"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.42s)">
<text text-anchor="middle" x="233.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N46 -->
<g id="edge111" class="edge">
<title>N22&#45;&gt;N46</title>
<g id="a_edge111"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M232.7404,-1208.8679C239.3922,-1200.6482 247.1962,-1190.9032 254.1123,-1182 265.0184,-1167.9605 268.3022,-1164.826 278.1123,-1150 320.6401,-1085.7276 300.31,-1041.716 365.1123,-1000 420.5834,-964.2909 866.0854,-939.0677 1031.0052,-930.8726"/>
<polygon fill="#000000" stroke="#000000" points="1031.6398,-934.3457 1041.4553,-930.3575 1031.2951,-927.3542 1031.6398,-934.3457"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="329.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N54 -->
<g id="edge113" class="edge">
<title>N22&#45;&gt;N54</title>
<g id="a_edge113"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M283.0076,-1208.9882C345.0969,-1191.0745 437.9086,-1164.2969 501.9633,-1145.8161"/>
<polygon fill="#000000" stroke="#000000" points="502.9548,-1149.1729 511.5926,-1143.0379 501.0142,-1142.4472 502.9548,-1149.1729"/>
</a>
</g>
<g id="a_edge113&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="433.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.(*mcentral).cacheSpan (0.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3941.1112,-316 3799.1134,-316 3799.1134,-278 3941.1112,-278 3941.1112,-316"/>
<text text-anchor="middle" x="3870.1123" y="-304" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="3870.1123" y="-294" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.079%)</text>
<text text-anchor="middle" x="3870.1123" y="-284" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.45s(3.58%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N25 -->
<g id="edge31" class="edge">
<title>N23&#45;&gt;N25</title>
<g id="a_edge31"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.45s)">
<path fill="none" stroke="#000000" d="M3870.1123,-377.0727C3870.1123,-362.3794 3870.1123,-342.5289 3870.1123,-326.2688"/>
<polygon fill="#000000" stroke="#000000" points="3873.6124,-326.1922 3870.1123,-316.1923 3866.6124,-326.1923 3873.6124,-326.1922"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.(*mcache).refill &#45;&gt; runtime.(*mcentral).cacheSpan (0.45s)">
<text text-anchor="middle" x="3886.8364" y="-342.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.45s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N32 -->
<g id="edge105" class="edge">
<title>N24&#45;&gt;N32</title>
<g id="a_edge105"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.05s)">
<path fill="none" stroke="#000000" d="M2668.4034,-374.4822C2652.6252,-362.6034 2632.2176,-348.8677 2612.1123,-340 2579.6724,-325.692 2541.7908,-315.7663 2509.013,-309.0878"/>
<polygon fill="#000000" stroke="#000000" points="2509.5041,-305.6173 2499.0161,-307.1181 2508.1509,-312.4853 2509.5041,-305.6173"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.05s)">
<text text-anchor="middle" x="2653.8364" y="-342.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.newdefer (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2758.3136,-316 2635.911,-316 2635.911,-278 2758.3136,-278 2758.3136,-316"/>
<text text-anchor="middle" x="2697.1123" y="-300" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="2697.1123" y="-285" font-family="Times,serif" font-size="15.00" fill="#000000">0.28s(2.23%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N38 -->
<g id="edge46" class="edge">
<title>N24&#45;&gt;N38</title>
<g id="a_edge46"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.28s)">
<path fill="none" stroke="#000000" d="M2697.1123,-374.32C2697.1123,-360.0569 2697.1123,-341.7728 2697.1123,-326.566"/>
<polygon fill="#000000" stroke="#000000" points="2700.6124,-326.1383 2697.1123,-316.1384 2693.6124,-326.1384 2700.6124,-326.1383"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.28s)">
<text text-anchor="middle" x="2713.8364" y="-342.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.(*mcentral).grow (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3929.9086,-219 3810.316,-219 3810.316,-181 3929.9086,-181 3929.9086,-219"/>
<text text-anchor="middle" x="3870.1123" y="-207" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).grow</text>
<text text-anchor="middle" x="3870.1123" y="-197" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.079%)</text>
<text text-anchor="middle" x="3870.1123" y="-187" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.37s(2.94%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N30 -->
<g id="edge35" class="edge">
<title>N25&#45;&gt;N30</title>
<g id="a_edge35"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.37s)">
<path fill="none" stroke="#000000" d="M3870.1123,-277.8359C3870.1123,-264.019 3870.1123,-245.114 3870.1123,-229.3955"/>
<polygon fill="#000000" stroke="#000000" points="3873.6124,-229.1242 3870.1123,-219.1243 3866.6124,-229.1243 3873.6124,-229.1242"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.(*mcentral).grow (0.37s)">
<text text-anchor="middle" x="3886.8364" y="-242.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.lock (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4021.8822,-218 3948.3424,-218 3948.3424,-182 4021.8822,-182 4021.8822,-218"/>
<text text-anchor="middle" x="3985.1123" y="-201.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="3985.1123" y="-193.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(0.79%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N77 -->
<g id="edge118" class="edge">
<title>N25&#45;&gt;N77</title>
<g id="a_edge118"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.02s)">
<path fill="none" stroke="#000000" d="M3891.0902,-277.9733C3903.5987,-266.7552 3919.8742,-252.3784 3934.6641,-240 3940.8114,-234.855 3947.4738,-229.4533 3953.8802,-224.3426"/>
<polygon fill="#000000" stroke="#000000" points="3956.1367,-227.0202 3961.8,-218.066 3951.7888,-221.5342 3956.1367,-227.0202"/>
</a>
</g>
<g id="a_edge118&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.02s)">
<text text-anchor="middle" x="3950.8364" y="-242.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N32 -->
<g id="edge54" class="edge">
<title>N26&#45;&gt;N32</title>
<g id="a_edge54"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.21s)">
<path fill="none" stroke="#000000" d="M2083.81,-805.9542C2110.743,-794.8536 2143.6414,-782.4279 2174.1123,-774 2219.7464,-761.3782 2236.98,-777.6021 2279.1123,-756 2378.5387,-705.0221 2430.1123,-666.7334 2430.1123,-555 2430.1123,-555 2430.1123,-555 2430.1123,-398 2430.1123,-374.2185 2430.1123,-347.2873 2430.1123,-327.2185"/>
<polygon fill="#000000" stroke="#000000" points="2433.6124,-327.1211 2430.1123,-317.1211 2426.6124,-327.1211 2433.6124,-327.1211"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.21s)">
<text text-anchor="middle" x="2446.8364" y="-550.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.newarray (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="269.4133,-1044 182.8113,-1044 182.8113,-1006 269.4133,-1006 269.4133,-1044"/>
<text text-anchor="middle" x="226.1123" y="-1032" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="226.1123" y="-1022" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.079%)</text>
<text text-anchor="middle" x="226.1123" y="-1012" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.35s(2.78%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N33 -->
<g id="edge37" class="edge">
<title>N27&#45;&gt;N33</title>
<g id="a_edge37"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.35s)">
<path fill="none" stroke="#000000" d="M218.9771,-1104.2799C220.2864,-1089.7321 222.0553,-1070.0781 223.5042,-1053.979"/>
<polygon fill="#000000" stroke="#000000" points="226.9915,-1054.2758 224.4021,-1044.0022 220.0197,-1053.6482 226.9915,-1054.2758"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.35s)">
<text text-anchor="middle" x="239.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.gcFlushBgCredit (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3951.2447,-1248.5 3822.9799,-1248.5 3822.9799,-1207.5 3951.2447,-1207.5 3951.2447,-1248.5"/>
<text text-anchor="middle" x="3887.1123" y="-1235.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="3887.1123" y="-1224.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.24%)</text>
<text text-anchor="middle" x="3887.1123" y="-1213.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.13s(1.03%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N66 -->
<g id="edge91" class="edge">
<title>N29&#45;&gt;N66</title>
<g id="a_edge91"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcFlushBgCredit (0.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2869.5921,-1342.2749C2988.1881,-1336.6786 3293.6999,-1320.1163 3547.1123,-1288 3639.2121,-1276.3277 3744.3222,-1256.8168 3812.9877,-1243.2248"/>
<polygon fill="#000000" stroke="#000000" points="3813.723,-1246.6471 3822.8484,-1241.264 3812.3577,-1239.7816 3813.723,-1246.6471"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcFlushBgCredit (0.09s)">
<text text-anchor="middle" x="3656.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.gcMarkTermination (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3673.3587,-1246 3566.8659,-1246 3566.8659,-1210 3673.3587,-1210 3673.3587,-1246"/>
<text text-anchor="middle" x="3620.1123" y="-1229.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkTermination</text>
<text text-anchor="middle" x="3620.1123" y="-1221.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.87%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N76 -->
<g id="edge88" class="edge">
<title>N29&#45;&gt;N76</title>
<g id="a_edge88"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcMarkTermination (0.10s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2869.509,-1343.65C2977.7455,-1341.0346 3240.0543,-1330.457 3455.1123,-1288 3502.1408,-1278.7156 3513.2949,-1273.0082 3558.1123,-1256 3562.8898,-1254.1869 3567.8234,-1252.187 3572.7238,-1250.115"/>
<polygon fill="#000000" stroke="#000000" points="3574.2721,-1253.2586 3582.0569,-1246.0721 3571.4896,-1246.8354 3574.2721,-1253.2586"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.gcBgMarkWorker ... runtime.gcMarkTermination (0.10s)">
<text text-anchor="middle" x="3526.8364" y="-1276.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.(*mheap).alloc (0.30s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3924.9649,-128 3815.2597,-128 3815.2597,-90 3924.9649,-90 3924.9649,-128"/>
<text text-anchor="middle" x="3870.1123" y="-116" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="3870.1123" y="-106" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.079%)</text>
<text text-anchor="middle" x="3870.1123" y="-96" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.30s(2.38%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N36 -->
<g id="edge43" class="edge">
<title>N30&#45;&gt;N36</title>
<g id="a_edge43"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.30s)">
<path fill="none" stroke="#000000" d="M3870.1123,-180.7012C3870.1123,-168.3951 3870.1123,-152.2099 3870.1123,-138.3316"/>
<polygon fill="#000000" stroke="#000000" points="3873.6124,-138.2709 3870.1123,-128.2709 3866.6124,-138.271 3873.6124,-138.2709"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.(*mcentral).grow &#45;&gt; runtime.(*mheap).alloc (0.30s)">
<text text-anchor="middle" x="3886.8364" y="-148.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.30s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime._System (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3479.8822,-621 3406.3424,-621 3406.3424,-585 3479.8822,-585 3479.8822,-621"/>
<text text-anchor="middle" x="3443.1123" y="-604.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="3443.1123" y="-596.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.35s(2.78%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N9 -->
<g id="edge36" class="edge">
<title>N31&#45;&gt;N9</title>
<g id="a_edge36"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.35s)">
<path fill="none" stroke="#000000" d="M3446.5102,-584.9574C3449.1776,-573.733 3453.6407,-559.3304 3460.6641,-548 3462.8742,-544.4345 3465.4209,-540.9492 3468.1629,-537.5939"/>
<polygon fill="#000000" stroke="#000000" points="3470.8522,-539.8361 3474.8489,-530.024 3465.6056,-535.2021 3470.8522,-539.8361"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.35s)">
<text text-anchor="middle" x="3477.8364" y="-550.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.35s</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N7 -->
<g id="edge39" class="edge">
<title>N33&#45;&gt;N7</title>
<g id="a_edge39"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.34s)">
<path fill="none" stroke="#000000" d="M234.1116,-1005.8232C249.1958,-972.3881 285.2921,-904.1196 339.6641,-874 491.9691,-789.6299 1711.4506,-734.6112 2075.7219,-719.9384"/>
<polygon fill="#000000" stroke="#000000" points="2075.8771,-723.4351 2085.7287,-719.5368 2075.5964,-716.4407 2075.8771,-723.4351"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.34s)">
<text text-anchor="middle" x="356.8364" y="-876.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.memclr (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3929.2457,-40 3810.9789,-40 3810.9789,0 3929.2457,0 3929.2457,-40"/>
<text text-anchor="middle" x="3870.1123" y="-23.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="3870.1123" y="-7.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.33s(2.62%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N13 -->
<g id="edge50" class="edge">
<title>N35&#45;&gt;N13</title>
<g id="a_edge50"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.22s)">
<path fill="none" stroke="#000000" d="M1976.0733,-1205.8221C1976.3583,-1174.7682 1978.1312,-1116.6703 1986.6641,-1068 1993.2788,-1030.2702 2006.2176,-988.1989 2015.6862,-960.119"/>
<polygon fill="#000000" stroke="#000000" points="2019.0719,-961.0353 2018.9995,-950.4408 2012.4492,-958.7681 2019.0719,-961.0353"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.22s)">
<text text-anchor="middle" x="2003.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N34 -->
<g id="edge44" class="edge">
<title>N36&#45;&gt;N34</title>
<g id="a_edge44"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.29s)">
<path fill="none" stroke="#000000" d="M3870.1123,-89.6883C3870.1123,-78.2653 3870.1123,-63.5404 3870.1123,-50.571"/>
<polygon fill="#000000" stroke="#000000" points="3873.6124,-50.2007 3870.1123,-40.2007 3866.6124,-50.2007 3873.6124,-50.2007"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.29s)">
<text text-anchor="middle" x="3886.8364" y="-60.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.29s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.getitab (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="932.2097,-1050 826.0149,-1050 826.0149,-1000 932.2097,-1000 932.2097,-1050"/>
<text text-anchor="middle" x="879.1123" y="-1034.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="879.1123" y="-1020.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.23s(1.83%)</text>
<text text-anchor="middle" x="879.1123" y="-1006.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.29s(2.31%)</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.freedefer (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3322.662,-322 3209.5626,-322 3209.5626,-272 3322.662,-272 3322.662,-322"/>
<text text-anchor="middle" x="3266.1123" y="-306.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="3266.1123" y="-292.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.17s(1.35%)</text>
<text text-anchor="middle" x="3266.1123" y="-278.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.19s(1.51%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N47 -->
<g id="edge56" class="edge">
<title>N39&#45;&gt;N47</title>
<g id="a_edge56"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.19s)">
<path fill="none" stroke="#000000" d="M3266.1123,-375.5848C3266.1123,-362.8647 3266.1123,-346.6588 3266.1123,-332.272"/>
<polygon fill="#000000" stroke="#000000" points="3269.6124,-332.1935 3266.1123,-322.1935 3262.6124,-332.1936 3269.6124,-332.1935"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.19s)">
<text text-anchor="middle" x="3282.8364" y="-342.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.mcall (0.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3850.8822,-849 3777.3424,-849 3777.3424,-813 3850.8822,-813 3850.8822,-849"/>
<text text-anchor="middle" x="3814.1123" y="-832.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="3814.1123" y="-824.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.24s(1.91%)</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.notesleep (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3832.8822,-734 3759.3424,-734 3759.3424,-698 3832.8822,-698 3832.8822,-734"/>
<text text-anchor="middle" x="3796.1123" y="-717.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notesleep</text>
<text text-anchor="middle" x="3796.1123" y="-709.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(1.19%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N60 -->
<g id="edge92" class="edge">
<title>N40&#45;&gt;N60</title>
<g id="a_edge92"><a xlink:title="runtime.mcall ... runtime.notesleep (0.08s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3820.9595,-812.935C3824.3185,-801.6786 3827.0696,-786.9281 3824.1123,-774 3821.6813,-763.3726 3817.0405,-752.4272 3812.2258,-742.9475"/>
<polygon fill="#000000" stroke="#000000" points="3815.246,-741.1736 3807.4286,-734.0225 3809.0802,-744.4878 3815.246,-741.1736"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.mcall ... runtime.notesleep (0.08s)">
<text text-anchor="middle" x="3841.8364" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.runSafePointFn (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3741.7178,-734 3648.5068,-734 3648.5068,-698 3741.7178,-698 3741.7178,-734"/>
<text text-anchor="middle" x="3695.1123" y="-717.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.runSafePointFn</text>
<text text-anchor="middle" x="3695.1123" y="-709.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.72%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N80 -->
<g id="edge101" class="edge">
<title>N40&#45;&gt;N80</title>
<g id="a_edge101"><a xlink:title="runtime.mcall ... runtime.runSafePointFn (0.05s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3801.1637,-812.9402C3792.4232,-801.2825 3780.2974,-786.0926 3768.1123,-774 3756.0485,-762.0277 3741.6001,-750.1192 3728.7528,-740.2363"/>
<polygon fill="#000000" stroke="#000000" points="3730.6688,-737.297 3720.5826,-734.0539 3726.4449,-742.8791 3730.6688,-737.297"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="runtime.mcall ... runtime.runSafePointFn (0.05s)">
<text text-anchor="middle" x="3796.8364" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N46 -->
<g id="edge112" class="edge">
<title>N43&#45;&gt;N46</title>
<g id="a_edge112"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1001.0824,-1205.9811C1023.0745,-1198.8551 1042.5667,-1190.5664 1050.1123,-1182 1105.1141,-1119.5574 1102.3297,-1013.6009 1096.7188,-960.4454"/>
<polygon fill="#000000" stroke="#000000" points="1100.1644,-959.7733 1095.5368,-950.2425 1093.2109,-960.5789 1100.1644,-959.7733"/>
</a>
</g>
<g id="a_edge112&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="1112.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.mapaccess2_faststr (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1268.5674,-1147 1119.6572,-1147 1119.6572,-1103 1268.5674,-1103 1268.5674,-1147"/>
<text text-anchor="middle" x="1194.1123" y="-1133.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="1194.1123" y="-1121.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.64%)</text>
<text text-anchor="middle" x="1194.1123" y="-1109.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.09s(0.72%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N79 -->
<g id="edge89" class="edge">
<title>N43&#45;&gt;N79</title>
<g id="a_edge89"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.09s)">
<path fill="none" stroke="#000000" d="M1002.0712,-1205.9973C1010.5306,-1203.9511 1018.9812,-1201.9247 1027.1123,-1200 1062.1549,-1191.705 1072.9356,-1196.0034 1106.1123,-1182 1123.7759,-1174.5445 1141.8013,-1163.5749 1156.9006,-1153.2449"/>
<polygon fill="#000000" stroke="#000000" points="1159.2479,-1155.8739 1165.4279,-1147.2682 1155.2302,-1150.1417 1159.2479,-1155.8739"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.09s)">
<text text-anchor="middle" x="1148.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.makemap (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3403.583,-1047 3300.6416,-1047 3300.6416,-1003 3403.583,-1003 3403.583,-1047"/>
<text text-anchor="middle" x="3352.1123" y="-1033.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="3352.1123" y="-1021.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.64%)</text>
<text text-anchor="middle" x="3352.1123" y="-1009.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.18s(1.43%)</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N51 -->
<g id="edge58" class="edge">
<title>N44&#45;&gt;N51</title>
<g id="a_edge58"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.18s)">
<path fill="none" stroke="#000000" d="M3352.1123,-1104.2799C3352.1123,-1090.7073 3352.1123,-1072.6902 3352.1123,-1057.2619"/>
<polygon fill="#000000" stroke="#000000" points="3355.6124,-1057.0808 3352.1123,-1047.0808 3348.6124,-1057.0809 3355.6124,-1057.0808"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.18s)">
<text text-anchor="middle" x="3368.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="runtime.usleep (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4046.423,-38 3947.8016,-38 3947.8016,-2 4046.423,-2 4046.423,-38"/>
<text text-anchor="middle" x="3997.1123" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="3997.1123" y="-8.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.21s(1.67%)</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N26 -->
<g id="edge80" class="edge">
<title>N46&#45;&gt;N26</title>
<g id="a_edge80"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.12s)">
<path fill="none" stroke="#000000" d="M1142.5996,-906.5866C1172.8017,-894.794 1212.2692,-881.138 1248.6641,-874 1378.8113,-848.4747 1765.8778,-836.8309 1940.2463,-832.7737"/>
<polygon fill="#000000" stroke="#000000" points="1940.4928,-836.269 1950.4098,-832.5402 1940.332,-829.2709 1940.4928,-836.269"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.12s)">
<text text-anchor="middle" x="1265.8364" y="-876.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N50 -->
<g id="edge104" class="edge">
<title>N49&#45;&gt;N50</title>
<g id="a_edge104"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.05s)">
<path fill="none" stroke="#000000" d="M638.1966,-1208.8264C652.4379,-1200.9204 668.7873,-1191.4155 683.1123,-1182 691.7442,-1176.3264 692.0467,-1171.769 701.6641,-1168 775.8812,-1138.9148 803.4633,-1171.8874 880.1123,-1150 882.3924,-1149.3489 884.6941,-1148.5996 886.9933,-1147.7762"/>
<polygon fill="#000000" stroke="#000000" points="888.3775,-1150.9922 896.3689,-1144.036 885.7838,-1144.4905 888.3775,-1150.9922"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.05s)">
<text text-anchor="middle" x="718.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N54 -->
<g id="edge116" class="edge">
<title>N49&#45;&gt;N54</title>
<g id="a_edge116"><a xlink:title="main.executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M596.8457,-1208.6265C592.5816,-1192.9406 586.5178,-1170.6343 581.7251,-1153.0041"/>
<polygon fill="#000000" stroke="#000000" points="585.074,-1151.981 579.0733,-1143.2494 578.3192,-1153.8173 585.074,-1151.981"/>
</a>
</g>
<g id="a_edge116&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="605.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N55 -->
<g id="edge117" class="edge">
<title>N49&#45;&gt;N55</title>
<g id="a_edge117"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.02s)">
<path fill="none" stroke="#000000" d="M612.5451,-1208.9536C620.8742,-1195.5201 633.7659,-1178.1719 649.6641,-1168 669.9767,-1155.0036 728.8242,-1142.2667 773.2267,-1134.0715"/>
<polygon fill="#000000" stroke="#000000" points="774.1004,-1137.4702 783.3149,-1132.2412 772.8507,-1130.5827 774.1004,-1137.4702"/>
</a>
</g>
<g id="a_edge117&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.02s)">
<text text-anchor="middle" x="666.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N37 -->
<g id="edge61" class="edge">
<title>N50&#45;&gt;N37</title>
<g id="a_edge61"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.16s)">
<path fill="none" stroke="#000000" d="M921.0862,-1105.719C914.2918,-1092.6528 905.1212,-1075.017 897.085,-1059.5628"/>
<polygon fill="#000000" stroke="#000000" points="899.9781,-1057.5401 892.2593,-1050.2827 893.7676,-1060.7696 899.9781,-1057.5401"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.16s)">
<text text-anchor="middle" x="925.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N8 -->
<g id="edge98" class="edge">
<title>N51&#45;&gt;N8</title>
<g id="a_edge98"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.08s)">
<path fill="none" stroke="#000000" d="M3324.8266,-1002.8957C3279.909,-967.995 3186.1657,-901.291 3094.1123,-874 3013.5125,-850.1047 2442.3407,-836.3679 2244.989,-832.2934"/>
<polygon fill="#000000" stroke="#000000" points="2244.8291,-828.7894 2234.7596,-832.0839 2244.6858,-835.788 2244.8291,-828.7894"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.08s)">
<text text-anchor="middle" x="3264.8364" y="-923.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.osyield (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="4033.8822,-127 3960.3424,-127 3960.3424,-91 4033.8822,-91 4033.8822,-127"/>
<text text-anchor="middle" x="3997.1123" y="-110.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="3997.1123" y="-102.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.18s(1.43%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N45 -->
<g id="edge59" class="edge">
<title>N52&#45;&gt;N45</title>
<g id="a_edge59"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.18s)">
<path fill="none" stroke="#000000" d="M3997.1123,-90.9895C3997.1123,-78.7658 3997.1123,-62.3495 3997.1123,-48.3824"/>
<polygon fill="#000000" stroke="#000000" points="4000.6124,-48.2891 3997.1123,-38.2892 3993.6124,-48.2892 4000.6124,-48.2891"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.18s)">
<text text-anchor="middle" x="4013.8364" y="-60.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N13 -->
<g id="edge99" class="edge">
<title>N53&#45;&gt;N13</title>
<g id="a_edge99"><a xlink:title="main.executeLessThan &#45;&gt; runtime.convT2I (0.07s)">
<path fill="none" stroke="#000000" d="M778.2856,-1207.3601C785.2015,-1204.6907 792.2919,-1202.1445 799.1123,-1200 879.5446,-1174.71 911.0583,-1195.3902 982.1123,-1150 1023.6209,-1123.4838 1013.5404,-1091.7996 1056.6641,-1068 1215.2747,-980.4641 1781.0102,-941.7084 1967.2146,-931.1307"/>
<polygon fill="#000000" stroke="#000000" points="1967.5752,-934.616 1977.3632,-930.5608 1967.1827,-927.627 1967.5752,-934.616"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; runtime.convT2I (0.07s)">
<text text-anchor="middle" x="1073.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N50 -->
<g id="edge103" class="edge">
<title>N53&#45;&gt;N50</title>
<g id="a_edge103"><a xlink:title="main.executeLessThan &#45;&gt; runtime.assertI2I (0.05s)">
<path fill="none" stroke="#000000" d="M771.1046,-1207.404C803.9626,-1190.4821 850.5369,-1166.4964 884.9697,-1148.7635"/>
<polygon fill="#000000" stroke="#000000" points="886.6035,-1151.859 893.8913,-1144.1688 883.3985,-1145.6358 886.6035,-1151.859"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; runtime.assertI2I (0.05s)">
<text text-anchor="middle" x="859.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N54 -->
<g id="edge115" class="edge">
<title>N53&#45;&gt;N54</title>
<g id="a_edge115"><a xlink:title="main.executeLessThan &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M740.7969,-1207.416C745.1657,-1194.822 747.6588,-1179.0593 739.1123,-1168 728.9801,-1154.8889 696.1562,-1145.0218 662.4244,-1138.0687"/>
<polygon fill="#000000" stroke="#000000" points="662.9182,-1134.5987 652.4295,-1136.0946 661.5617,-1141.4661 662.9182,-1134.5987"/>
</a>
</g>
<g id="a_edge115&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="761.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N37 -->
<g id="edge71" class="edge">
<title>N55&#45;&gt;N37</title>
<g id="a_edge71"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.13s)">
<path fill="none" stroke="#000000" d="M837.8867,-1104.2799C844.6368,-1091.299 853.5009,-1074.2528 861.2794,-1059.2941"/>
<polygon fill="#000000" stroke="#000000" points="864.4454,-1060.7918 865.9538,-1050.3049 858.2349,-1057.5623 864.4454,-1060.7918"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.13s)">
<text text-anchor="middle" x="873.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.goschedImpl (0.16s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3752.3196,-849 3667.905,-849 3667.905,-813 3752.3196,-813 3752.3196,-849"/>
<text text-anchor="middle" x="3710.1123" y="-832.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="3710.1123" y="-824.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.16s(1.27%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N60 -->
<g id="edge100" class="edge">
<title>N56&#45;&gt;N60</title>
<g id="a_edge100"><a xlink:title="runtime.goschedImpl ... runtime.notesleep (0.06s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3715.7935,-812.8235C3719.9537,-801.1179 3726.3253,-785.9185 3734.6641,-774 3739.7959,-766.665 3754.001,-753.1413 3767.4616,-740.9968"/>
<polygon fill="#000000" stroke="#000000" points="3770.0988,-743.3342 3775.2267,-734.063 3765.4365,-738.1128 3770.0988,-743.3342"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="runtime.goschedImpl ... runtime.notesleep (0.06s)">
<text text-anchor="middle" x="3750.8364" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N80 -->
<g id="edge110" class="edge">
<title>N56&#45;&gt;N80</title>
<g id="a_edge110"><a xlink:title="runtime.goschedImpl ... runtime.runSafePointFn (0.04s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M3692.8432,-812.7746C3687.1808,-805.6153 3681.5933,-796.9674 3678.6641,-788 3674.0003,-773.7226 3677.0485,-757.436 3681.7276,-743.9683"/>
<polygon fill="#000000" stroke="#000000" points="3685.1271,-744.8864 3685.5228,-734.2989 3678.6111,-742.3287 3685.1271,-744.8864"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="runtime.goschedImpl ... runtime.runSafePointFn (0.04s)">
<text text-anchor="middle" x="3694.8364" y="-776.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="main.Integer.Add (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1577.0977,-1044 1491.127,-1044 1491.127,-1006 1577.0977,-1006 1577.0977,-1044"/>
<text text-anchor="middle" x="1534.1123" y="-1032" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="1534.1123" y="-1022" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="1534.1123" y="-1012" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.12s(0.95%)</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N70 -->
<g id="edge75" class="edge">
<title>N57&#45;&gt;N70</title>
<g id="a_edge75"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.12s)">
<path fill="none" stroke="#000000" d="M1534.1123,-1104.2799C1534.1123,-1089.8706 1534.1123,-1070.452 1534.1123,-1054.4399"/>
<polygon fill="#000000" stroke="#000000" points="1537.6124,-1054.0022 1534.1123,-1044.0022 1530.6124,-1054.0023 1537.6124,-1054.0022"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.12s)">
<text text-anchor="middle" x="1550.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N13 -->
<g id="edge107" class="edge">
<title>N58&#45;&gt;N13</title>
<g id="a_edge107"><a xlink:title="main.isZeroPred &#45;&gt; runtime.convT2I (0.04s)">
<path fill="none" stroke="#000000" d="M1778.6434,-1207.2336C1774.0051,-1157.4148 1770.0551,-1030.616 1840.1123,-968 1858.6767,-951.4074 1919.6831,-940.5267 1967.0237,-934.3606"/>
<polygon fill="#000000" stroke="#000000" points="1967.7173,-937.801 1977.2017,-933.0791 1966.8428,-930.8559 1967.7173,-937.801"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="main.isZeroPred &#45;&gt; runtime.convT2I (0.04s)">
<text text-anchor="middle" x="1802.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.semasleep (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3751.8705,-621 3676.3541,-621 3676.3541,-585 3751.8705,-585 3751.8705,-621"/>
<text text-anchor="middle" x="3714.1123" y="-604.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep</text>
<text text-anchor="middle" x="3714.1123" y="-596.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.15s(1.19%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N61 -->
<g id="edge65" class="edge">
<title>N60&#45;&gt;N61</title>
<g id="a_edge65"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.15s)">
<path fill="none" stroke="#000000" d="M3782.9376,-697.8446C3769.4885,-679.3111 3748.4761,-650.355 3733.2048,-629.3103"/>
<polygon fill="#000000" stroke="#000000" points="3735.9603,-627.1483 3727.2543,-621.1103 3730.2948,-631.2596 3735.9603,-627.1483"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.15s)">
<text text-anchor="middle" x="3768.8364" y="-646.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N9 -->
<g id="edge66" class="edge">
<title>N61&#45;&gt;N9</title>
<g id="a_edge66"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.15s)">
<path fill="none" stroke="#000000" d="M3690.9437,-584.7437C3675.4762,-573.1544 3654.3349,-558.4297 3634.1123,-548 3620.615,-541.0388 3605.8176,-534.6391 3591.2585,-528.9665"/>
<polygon fill="#000000" stroke="#000000" points="3592.3325,-525.6304 3581.7415,-525.3453 3589.8431,-532.1728 3592.3325,-525.6304"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.15s)">
<text text-anchor="middle" x="3673.8364" y="-550.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="strings.ContainsRune (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3002.9474,-1144 2901.2772,-1144 2901.2772,-1106 3002.9474,-1106 3002.9474,-1144"/>
<text text-anchor="middle" x="2952.1123" y="-1132" font-family="Times,serif" font-size="10.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="2952.1123" y="-1122" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.16%)</text>
<text text-anchor="middle" x="2952.1123" y="-1112" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.15s(1.19%)</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="strings.IndexRune (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3003.7691,-1047 2900.4555,-1047 2900.4555,-1003 3003.7691,-1003 3003.7691,-1047"/>
<text text-anchor="middle" x="2952.1123" y="-1033.4" font-family="Times,serif" font-size="12.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="2952.1123" y="-1021.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.56%)</text>
<text text-anchor="middle" x="2952.1123" y="-1009.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.13s(1.03%)</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N69 -->
<g id="edge74" class="edge">
<title>N62&#45;&gt;N69</title>
<g id="a_edge74"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.13s)">
<path fill="none" stroke="#000000" d="M2952.1123,-1105.719C2952.1123,-1091.938 2952.1123,-1073.0739 2952.1123,-1057.0473"/>
<polygon fill="#000000" stroke="#000000" points="2955.6124,-1057.0073 2952.1123,-1047.0073 2948.6124,-1057.0073 2955.6124,-1057.0073"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.13s)">
<text text-anchor="middle" x="2968.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N62 -->
<g id="edge96" class="edge">
<title>N63&#45;&gt;N62</title>
<g id="a_edge96"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.08s)">
<path fill="none" stroke="#000000" d="M3002.3633,-1207.1564C2992.8376,-1191.5826 2979.7149,-1170.128 2969.2684,-1153.0489"/>
<polygon fill="#000000" stroke="#000000" points="2971.9836,-1150.7802 2963.78,-1144.0757 2966.0121,-1154.4327 2971.9836,-1150.7802"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.08s)">
<text text-anchor="middle" x="3002.8364" y="-1170.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.(*mheap).alloc_m (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3781.2437,-316 3658.9809,-316 3658.9809,-278 3781.2437,-278 3781.2437,-316"/>
<text text-anchor="middle" x="3720.1123" y="-304" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="3720.1123" y="-294" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.079%)</text>
<text text-anchor="middle" x="3720.1123" y="-284" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.13s(1.03%)</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N65 -->
<g id="edge70" class="edge">
<title>N64&#45;&gt;N65</title>
<g id="a_edge70"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.13s)">
<path fill="none" stroke="#000000" d="M3732.4306,-379.9432C3730.2254,-365.0949 3727.0565,-343.7574 3724.485,-326.4429"/>
<polygon fill="#000000" stroke="#000000" points="3727.9062,-325.6533 3722.9751,-316.276 3720.9822,-326.6817 3727.9062,-325.6533"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).alloc_m (0.13s)">
<text text-anchor="middle" x="3744.8364" y="-342.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.(*mheap).allocSpanLocked (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3792.2182,-222 3604.0064,-222 3604.0064,-178 3792.2182,-178 3792.2182,-222"/>
<text text-anchor="middle" x="3698.1123" y="-208.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.(*mheap).allocSpanLocked</text>
<text text-anchor="middle" x="3698.1123" y="-196.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.48%)</text>
<text text-anchor="middle" x="3698.1123" y="-184.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.12s(0.95%)</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N71 -->
<g id="edge79" class="edge">
<title>N65&#45;&gt;N71</title>
<g id="a_edge79"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.12s)">
<path fill="none" stroke="#000000" d="M3715.7658,-277.8359C3712.8152,-264.8265 3708.8416,-247.3063 3705.4114,-232.1824"/>
<polygon fill="#000000" stroke="#000000" points="3708.768,-231.1578 3703.1427,-222.1796 3701.9414,-232.7061 3708.768,-231.1578"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.12s)">
<text text-anchor="middle" x="3725.8364" y="-242.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N77 -->
<g id="edge97" class="edge">
<title>N66&#45;&gt;N77</title>
<g id="a_edge97"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.08s)">
<path fill="none" stroke="#000000" d="M3924.1138,-1207.3314C3950.7882,-1189.4139 3982.1123,-1160.7601 3982.1123,-1125 3982.1123,-1125 3982.1123,-1125 3982.1123,-297 3982.1123,-273.9356 3982.9702,-247.801 3983.7684,-228.4751"/>
<polygon fill="#000000" stroke="#000000" points="3987.276,-228.3723 3984.2122,-218.2301 3980.2826,-228.0693 3987.276,-228.3723"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.08s)">
<text text-anchor="middle" x="3998.8364" y="-711.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.morestack (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3747.8705,-1143 3672.3541,-1143 3672.3541,-1107 3747.8705,-1107 3747.8705,-1143"/>
<text text-anchor="middle" x="3710.1123" y="-1126.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="3710.1123" y="-1118.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(1.03%)</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.newstack (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3746.8822,-1043 3673.3424,-1043 3673.3424,-1007 3746.8822,-1007 3746.8822,-1043"/>
<text text-anchor="middle" x="3710.1123" y="-1026.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="3710.1123" y="-1018.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.13s(1.03%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N68 -->
<g id="edge72" class="edge">
<title>N67&#45;&gt;N68</title>
<g id="a_edge72"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.13s)">
<path fill="none" stroke="#000000" d="M3710.1123,-1106.6585C3710.1123,-1091.7164 3710.1123,-1070.3665 3710.1123,-1053.2446"/>
<polygon fill="#000000" stroke="#000000" points="3713.6124,-1053.2252 3710.1123,-1043.2253 3706.6124,-1053.2253 3713.6124,-1053.2252"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (0.13s)">
<text text-anchor="middle" x="3726.8364" y="-1070.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.gopreempt_m (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3753.9293,-946 3666.2953,-946 3666.2953,-910 3753.9293,-910 3753.9293,-946"/>
<text text-anchor="middle" x="3710.1123" y="-929.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gopreempt_m</text>
<text text-anchor="middle" x="3710.1123" y="-921.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(0.95%)</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N73 -->
<g id="edge82" class="edge">
<title>N68&#45;&gt;N73</title>
<g id="a_edge82"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.12s)">
<path fill="none" stroke="#000000" d="M3710.1123,-1006.755C3710.1123,-992.5291 3710.1123,-972.521 3710.1123,-956.2321"/>
<polygon fill="#000000" stroke="#000000" points="3713.6124,-956.1631 3710.1123,-946.1631 3706.6124,-956.1632 3713.6124,-956.1631"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.newstack &#45;&gt; runtime.gopreempt_m (0.12s)">
<text text-anchor="middle" x="3726.8364" y="-970.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N13 -->
<g id="edge94" class="edge">
<title>N70&#45;&gt;N13</title>
<g id="a_edge94"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.08s)">
<path fill="none" stroke="#000000" d="M1569.6296,-1005.9951C1595.3027,-993.1377 1631.2109,-976.9275 1664.6641,-968 1720.1914,-953.1816 1879.267,-939.2624 1967.0829,-932.4206"/>
<polygon fill="#000000" stroke="#000000" points="1967.4671,-935.9014 1977.1678,-931.6415 1966.928,-928.9222 1967.4671,-935.9014"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.08s)">
<text text-anchor="middle" x="1681.8364" y="-970.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N46 -->
<g id="edge114" class="edge">
<title>N70&#45;&gt;N46</title>
<g id="a_edge114"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M1490.9267,-1015.5226C1411.7829,-998.154 1243.325,-961.1847 1152.7427,-941.3058"/>
<polygon fill="#000000" stroke="#000000" points="1153.4106,-937.8691 1142.8928,-939.1441 1151.9101,-944.7064 1153.4106,-937.8691"/>
</a>
</g>
<g id="a_edge114&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="1343.8364" y="-970.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N56 -->
<g id="edge81" class="edge">
<title>N73&#45;&gt;N56</title>
<g id="a_edge81"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.12s)">
<path fill="none" stroke="#000000" d="M3710.1123,-909.755C3710.1123,-895.5291 3710.1123,-875.521 3710.1123,-859.2321"/>
<polygon fill="#000000" stroke="#000000" points="3713.6124,-859.1631 3710.1123,-849.1631 3706.6124,-859.1632 3713.6124,-859.1631"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.gopreempt_m &#45;&gt; runtime.goschedImpl (0.12s)">
<text text-anchor="middle" x="3726.8364" y="-876.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N13 -->
<g id="edge86" class="edge">
<title>N75&#45;&gt;N13</title>
<g id="a_edge86"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.10s)">
<path fill="none" stroke="#000000" d="M1694.7289,-1105.7576C1702.6372,-1070.063 1725.2576,-994.7892 1779.1123,-968 1811.2461,-952.0155 1904.5707,-940.0507 1967.1222,-933.544"/>
<polygon fill="#000000" stroke="#000000" points="1967.6742,-937.0059 1977.267,-932.5083 1966.9632,-930.0421 1967.6742,-937.0059"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.10s)">
<text text-anchor="middle" x="1757.8364" y="-1020.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N9 -->
<g id="edge85" class="edge">
<title>N76&#45;&gt;N9</title>
<g id="a_edge85"><a xlink:title="runtime.gcMarkTermination &#45;&gt; runtime.systemstack (0.11s)">
<path fill="none" stroke="#000000" d="M3620.1123,-1209.7663C3620.1123,-1189.1801 3620.1123,-1154.684 3620.1123,-1125 3620.1123,-1125 3620.1123,-1125 3620.1123,-603 3620.1123,-574.7837 3600.2651,-552.4253 3577.2805,-535.9931"/>
<polygon fill="#000000" stroke="#000000" points="3578.9493,-532.897 3568.7015,-530.2074 3575.0353,-538.7005 3578.9493,-532.897"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.gcMarkTermination &#45;&gt; runtime.systemstack (0.11s)">
<text text-anchor="middle" x="3636.5801" y="-876.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N52 -->
<g id="edge90" class="edge">
<title>N77&#45;&gt;N52</title>
<g id="a_edge90"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.09s)">
<path fill="none" stroke="#000000" d="M3987.5407,-181.5848C3989.227,-168.7967 3991.5052,-151.5207 3993.4159,-137.0313"/>
<polygon fill="#000000" stroke="#000000" points="3996.891,-137.449 3994.7285,-127.0773 3989.9511,-136.5338 3996.891,-137.449"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.09s)">
<text text-anchor="middle" x="4008.8364" y="-148.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-recursion9.svg.



























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1552)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1552 3884.4113,-1552 3884.4113,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="8,-1324 8,-1540 668,-1540 668,-1324 8,-1324"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="660.172,-1532 15.828,-1532 15.828,-1332 660.172,-1332 660.172,-1532"/>
<text text-anchor="start" x="23.6641" y="-1502.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="23.6641" y="-1470.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="23.6641" y="-1438.4" font-family="Times,serif" font-size="32.00" fill="#000000">10.62s of 11.42s total (92.99%)</text>
<text text-anchor="start" x="23.6641" y="-1406.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 62 nodes (cum &lt;= 0.06s)</text>
<text text-anchor="start" x="23.6641" y="-1374.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 9 edges (freq &lt;= 0.01s)</text>
<text text-anchor="start" x="23.6641" y="-1342.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 113 (cum &gt;= 0.08s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="main.(*machine).execute (10.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="846.0434,-1282 587.9566,-1282 587.9566,-1202 846.0434,-1202 846.0434,-1282"/>
<text text-anchor="middle" x="717" y="-1258.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="717" y="-1234.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.46s(12.78%)</text>
<text text-anchor="middle" x="717" y="-1210.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 10.64s(93.17%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute.func7 (10.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="521.2267,-1149 340.7733,-1149 340.7733,-1102 521.2267,-1102 521.2267,-1149"/>
<text text-anchor="middle" x="431" y="-1134.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).execute.func7</text>
<text text-anchor="middle" x="431" y="-1121.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(1.31%)</text>
<text text-anchor="middle" x="431" y="-1108.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 10.63s(93.08%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge13" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge13"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (0.75s)">
<path fill="none" stroke="#000000" d="M587.8309,-1213.0675C561.9448,-1205.1948 535.3943,-1195.5654 511.5518,-1184 495.8408,-1176.379 479.9846,-1165.6619 466.5447,-1155.4794"/>
<polygon fill="#000000" stroke="#000000" points="468.5565,-1152.6103 458.5117,-1149.2409 464.2629,-1158.1389 468.5565,-1152.6103"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func7 (0.75s)">
<text text-anchor="middle" x="528.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.75s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).execute.func4 (9.78s)">
<polygon fill="#f8f8f8" stroke="#000000" points="681.3285,-1144.5 538.6715,-1144.5 538.6715,-1106.5 681.3285,-1106.5 681.3285,-1144.5"/>
<text text-anchor="middle" x="610" y="-1132.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).execute.func4</text>
<text text-anchor="middle" x="610" y="-1122.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="610" y="-1112.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 9.78s(85.64%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N3 -->
<g id="edge58" class="edge">
<title>N1&#45;&gt;N3</title>
<g id="a_edge58"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func4 (0.14s)">
<path fill="none" stroke="#000000" d="M680.1767,-1201.9073C665.1809,-1185.5801 648.2428,-1167.1382 634.7646,-1152.4634"/>
<polygon fill="#000000" stroke="#000000" points="637.0092,-1149.733 627.667,-1144.7356 631.8537,-1154.4681 637.0092,-1149.733"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func4 (0.14s)">
<text text-anchor="middle" x="680.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.(*machine).loadLoopWords.func1 (7.27s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1404.981,-1149 1181.019,-1149 1181.019,-1102 1404.981,-1102 1404.981,-1149"/>
<text text-anchor="middle" x="1293" y="-1134.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="1293" y="-1121.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.12s(1.05%)</text>
<text text-anchor="middle" x="1293" y="-1108.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 7.27s(63.66%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N5 -->
<g id="edge45" class="edge">
<title>N1&#45;&gt;N5</title>
<g id="a_edge45"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.20s)">
<path fill="none" stroke="#000000" d="M846.3907,-1230.9653C928.942,-1222.1996 1037.7498,-1207.4336 1132,-1184 1164.1526,-1176.0058 1198.8114,-1163.8906 1227.7059,-1152.7551"/>
<polygon fill="#000000" stroke="#000000" points="1229.2276,-1155.9185 1237.272,-1149.0237 1226.6837,-1149.397 1229.2276,-1155.9185"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.20s)">
<text text-anchor="middle" x="1194.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.newobject (2.76s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1494.6065,-752 1381.3935,-752 1381.3935,-705 1494.6065,-705 1494.6065,-752"/>
<text text-anchor="middle" x="1438" y="-737.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="1438" y="-724.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.15s(1.31%)</text>
<text text-anchor="middle" x="1438" y="-711.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 2.76s(24.17%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N8 -->
<g id="edge18" class="edge">
<title>N1&#45;&gt;N8</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.67s)">
<path fill="none" stroke="#000000" d="M587.7831,-1229.599C469.582,-1214.564 313,-1183.6694 313,-1125.5 313,-1125.5 313,-1125.5 313,-828.5 313,-775.0388 1129.6799,-740.0838 1371.3849,-730.9092"/>
<polygon fill="#000000" stroke="#000000" points="1371.5792,-734.4045 1381.4401,-730.5299 1371.3152,-727.4095 1371.5792,-734.4045"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.newobject (0.67s)">
<text text-anchor="middle" x="329.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.67s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="main.(*machine).execute.func8 (2.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1163.3594,-1150.5 970.6406,-1150.5 970.6406,-1100.5 1163.3594,-1100.5 1163.3594,-1150.5"/>
<text text-anchor="middle" x="1067" y="-1135.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).execute.func8</text>
<text text-anchor="middle" x="1067" y="-1121.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.16s(1.40%)</text>
<text text-anchor="middle" x="1067" y="-1107.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 2.45s(21.45%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N10 -->
<g id="edge11" class="edge">
<title>N1&#45;&gt;N10</title>
<g id="a_edge11"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func8 (0.98s)">
<path fill="none" stroke="#000000" d="M846.2555,-1218.1398C883.8948,-1209.3646 924.6512,-1198.0496 961,-1184 980.5338,-1176.4498 1000.9186,-1165.9156 1018.5332,-1155.8637"/>
<polygon fill="#000000" stroke="#000000" points="1020.5847,-1158.7196 1027.4728,-1150.6695 1017.068,-1152.6671 1020.5847,-1158.7196"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func8 (0.98s)">
<text text-anchor="middle" x="1008.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.98s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="main.NilWord.func1 (1.67s)">
<polygon fill="#f8f8f8" stroke="#000000" points="952.5176,-1147.5 837.4824,-1147.5 837.4824,-1103.5 952.5176,-1103.5 952.5176,-1147.5"/>
<text text-anchor="middle" x="895" y="-1133.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="895" y="-1121.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.79%)</text>
<text text-anchor="middle" x="895" y="-1109.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.67s(14.62%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N11 -->
<g id="edge16" class="edge">
<title>N1&#45;&gt;N11</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.68s)">
<path fill="none" stroke="#000000" d="M778.2575,-1201.9073C802.7607,-1185.8701 830.3811,-1167.7927 852.6026,-1153.2489"/>
<polygon fill="#000000" stroke="#000000" points="854.696,-1156.0618 861.1465,-1147.6569 850.8626,-1150.2047 854.696,-1156.0618"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (0.68s)">
<text text-anchor="middle" x="838.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.68s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.deferproc (0.75s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3186.1733,-1150.5 3069.8267,-1150.5 3069.8267,-1100.5 3186.1733,-1100.5 3186.1733,-1150.5"/>
<text text-anchor="middle" x="3128" y="-1135.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="3128" y="-1121.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.18s(1.58%)</text>
<text text-anchor="middle" x="3128" y="-1107.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.75s(6.57%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N16 -->
<g id="edge14" class="edge">
<title>N1&#45;&gt;N16</title>
<g id="a_edge14"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.75s)">
<path fill="none" stroke="#000000" d="M846.0997,-1238.8487C1306.5838,-1227.5722 2843.8714,-1189.6 2895,-1184 2969.2557,-1175.867 2988.2421,-1172.7572 3060,-1152 3060.0989,-1151.9714 3060.1978,-1151.9427 3060.2968,-1151.9139"/>
<polygon fill="#000000" stroke="#000000" points="3061.1119,-1155.3258 3069.625,-1149.0188 3059.0369,-1148.6403 3061.1119,-1155.3258"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (0.75s)">
<text text-anchor="middle" x="3005.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.75s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.deferreturn (0.71s)">
<polygon fill="#f8f8f8" stroke="#000000" points="156.5264,-1152 23.4736,-1152 23.4736,-1099 156.5264,-1099 156.5264,-1152"/>
<text text-anchor="middle" x="90" y="-1136" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="90" y="-1121" font-family="Times,serif" font-size="15.00" fill="#000000">0.27s(2.36%)</text>
<text text-anchor="middle" x="90" y="-1106" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.71s(6.22%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N17 -->
<g id="edge15" class="edge">
<title>N1&#45;&gt;N17</title>
<g id="a_edge15"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.71s)">
<path fill="none" stroke="#000000" d="M587.7149,-1229.3184C450.5279,-1215.5086 248.7109,-1194.0514 213.5518,-1184 190.4942,-1177.4082 166.3896,-1166.9059 145.6569,-1156.6072"/>
<polygon fill="#000000" stroke="#000000" points="147.1907,-1153.4607 136.6886,-1152.0618 144.0261,-1159.7045 147.1907,-1153.4607"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (0.71s)">
<text text-anchor="middle" x="230.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.71s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="main.executeSubtract (0.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2108.6236,-1147.5 1989.3764,-1147.5 1989.3764,-1103.5 2108.6236,-1103.5 2108.6236,-1147.5"/>
<text text-anchor="middle" x="2049" y="-1133.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.executeSubtract</text>
<text text-anchor="middle" x="2049" y="-1121.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.07s(0.61%)</text>
<text text-anchor="middle" x="2049" y="-1109.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.64s(5.60%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N18 -->
<g id="edge19" class="edge">
<title>N1&#45;&gt;N18</title>
<g id="a_edge19"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.64s)">
<path fill="none" stroke="#000000" d="M846.4125,-1237.9187C1098.2418,-1229.5398 1645.8733,-1209.0611 1833,-1184 1899.2717,-1175.1245 1915.9384,-1171.1528 1980,-1152 1981.4216,-1151.575 1982.8555,-1151.1343 1984.2977,-1150.6803"/>
<polygon fill="#000000" stroke="#000000" points="1985.4951,-1153.9708 1993.8946,-1147.5134 1983.3015,-1147.3234 1985.4951,-1153.9708"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeSubtract (0.64s)">
<text text-anchor="middle" x="1931.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.64s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.growslice (0.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="285.2248,-1149 174.7752,-1149 174.7752,-1102 285.2248,-1102 285.2248,-1149"/>
<text text-anchor="middle" x="230" y="-1134.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="230" y="-1121.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.14s(1.23%)</text>
<text text-anchor="middle" x="230" y="-1108.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.64s(5.60%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N19 -->
<g id="edge20" class="edge">
<title>N1&#45;&gt;N19</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.64s)">
<path fill="none" stroke="#000000" d="M587.9398,-1231.1525C464.1705,-1219.8314 292.2421,-1201.3438 265.5518,-1184 255.9382,-1177.753 248.5216,-1167.907 243.0114,-1158.0615"/>
<polygon fill="#000000" stroke="#000000" points="246.123,-1156.4589 238.4785,-1149.1232 239.8799,-1159.625 246.123,-1156.4589"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (0.64s)">
<text text-anchor="middle" x="282.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.64s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="main.(*machine).loadLocalWords.func1 (0.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1600.641,-1144.5 1423.359,-1144.5 1423.359,-1106.5 1600.641,-1106.5 1600.641,-1144.5"/>
<text text-anchor="middle" x="1512" y="-1132.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="1512" y="-1122.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="1512" y="-1112.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.63s(5.52%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N20 -->
<g id="edge21" class="edge">
<title>N1&#45;&gt;N20</title>
<g id="a_edge21"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.63s)">
<path fill="none" stroke="#000000" d="M846.2347,-1231.8081C986.9904,-1219.2036 1218.2219,-1194.0901 1414,-1152 1420.9894,-1150.4974 1428.2243,-1148.8056 1435.4513,-1147.0224"/>
<polygon fill="#000000" stroke="#000000" points="1436.4378,-1150.3832 1445.2777,-1144.5432 1434.7253,-1143.5959 1436.4378,-1150.3832"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (0.63s)">
<text text-anchor="middle" x="1337.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.63s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="main.(*CodeQuotation).nextWord (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2776.5473,-1145.5 2545.4527,-1145.5 2545.4527,-1105.5 2776.5473,-1105.5 2776.5473,-1145.5"/>
<text text-anchor="middle" x="2661" y="-1128.7" font-family="Times,serif" font-size="16.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2661" y="-1112.7" font-family="Times,serif" font-size="16.00" fill="#000000">0.38s(3.33%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N26 -->
<g id="edge31" class="edge">
<title>N1&#45;&gt;N26</title>
<g id="a_edge31"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.38s)">
<path fill="none" stroke="#000000" d="M846.1423,-1240.4507C1110.909,-1236.5429 1734.2759,-1223.5861 2256,-1184 2380.8955,-1174.5235 2412.3724,-1172.1222 2536,-1152 2544.2622,-1150.6552 2552.8045,-1149.1311 2561.3648,-1147.5098"/>
<polygon fill="#000000" stroke="#000000" points="2562.2536,-1150.9028 2571.4066,-1145.5667 2560.9237,-1144.0303 2562.2536,-1150.9028"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.38s)">
<text text-anchor="middle" x="2426.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm (0.31s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2526.6332,-1147.5 2339.3668,-1147.5 2339.3668,-1103.5 2526.6332,-1103.5 2526.6332,-1147.5"/>
<text text-anchor="middle" x="2433" y="-1133.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(intPusher).(main.pushInt)&#45;fm</text>
<text text-anchor="middle" x="2433" y="-1121.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.08s(0.7%)</text>
<text text-anchor="middle" x="2433" y="-1109.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.31s(2.71%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N30 -->
<g id="edge37" class="edge">
<title>N1&#45;&gt;N30</title>
<g id="a_edge37"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.31s)">
<path fill="none" stroke="#000000" d="M846.2266,-1239.9607C1087.6259,-1235.3768 1623.3299,-1221.5496 2073,-1184 2187.705,-1174.4216 2216.9206,-1173.4952 2330,-1152 2333.8192,-1151.274 2337.7069,-1150.4882 2341.626,-1149.6573"/>
<polygon fill="#000000" stroke="#000000" points="2342.3953,-1153.0718 2351.4113,-1147.5074 2340.8932,-1146.2349 2342.3953,-1153.0718"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(intPusher).(main.pushInt)&#45;fm (0.31s)">
<text text-anchor="middle" x="2235.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="main.executeMultiply (0.23s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1971.0322,-1144.5 1866.9678,-1144.5 1866.9678,-1106.5 1971.0322,-1106.5 1971.0322,-1144.5"/>
<text text-anchor="middle" x="1919" y="-1132.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.executeMultiply</text>
<text text-anchor="middle" x="1919" y="-1122.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.088%)</text>
<text text-anchor="middle" x="1919" y="-1112.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.23s(2.01%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N35 -->
<g id="edge40" class="edge">
<title>N1&#45;&gt;N35</title>
<g id="a_edge40"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.23s)">
<path fill="none" stroke="#000000" d="M846.1069,-1237.0094C1076.2363,-1227.6908 1548.5129,-1206.5382 1712,-1184 1777.8068,-1174.9279 1794.7942,-1172.4417 1858,-1152 1861.5018,-1150.8675 1865.0773,-1149.6061 1868.6539,-1148.2656"/>
<polygon fill="#000000" stroke="#000000" points="1870.045,-1151.4795 1878.0736,-1144.5663 1867.4862,-1144.964 1870.045,-1151.4795"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeMultiply (0.23s)">
<text text-anchor="middle" x="1812.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="main.executeLessThan (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1735.5948,-1146 1618.4052,-1146 1618.4052,-1105 1735.5948,-1105 1735.5948,-1146"/>
<text text-anchor="middle" x="1677" y="-1133.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.executeLessThan</text>
<text text-anchor="middle" x="1677" y="-1122.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.44%)</text>
<text text-anchor="middle" x="1677" y="-1111.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.21s(1.84%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N39 -->
<g id="edge43" class="edge">
<title>N1&#45;&gt;N39</title>
<g id="a_edge43"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeLessThan (0.21s)">
<path fill="none" stroke="#000000" d="M846.0501,-1231.6988C975.5943,-1221.0345 1180.8194,-1203.2592 1358,-1184 1470.2383,-1171.7999 1500.6517,-1180.093 1610,-1152 1613.15,-1151.1907 1616.3512,-1150.2725 1619.5608,-1149.2758"/>
<polygon fill="#000000" stroke="#000000" points="1620.7866,-1152.5567 1629.1718,-1146.0807 1618.5782,-1145.9141 1620.7866,-1152.5567"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.executeLessThan (0.21s)">
<text text-anchor="middle" x="1536.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="main.isZeroPred (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1848.6471,-1147.5 1753.3529,-1147.5 1753.3529,-1103.5 1848.6471,-1103.5 1848.6471,-1147.5"/>
<text text-anchor="middle" x="1801" y="-1133.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.isZeroPred</text>
<text text-anchor="middle" x="1801" y="-1121.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.53%)</text>
<text text-anchor="middle" x="1801" y="-1109.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.20s(1.75%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N42 -->
<g id="edge46" class="edge">
<title>N1&#45;&gt;N42</title>
<g id="a_edge46"><a xlink:title="main.(*machine).execute &#45;&gt; main.isZeroPred (0.20s)">
<path fill="none" stroke="#000000" d="M846.1684,-1237.0812C1011.4123,-1229.8717 1306.252,-1213.9215 1557,-1184 1641.1602,-1173.9572 1664.162,-1177.4758 1745,-1152 1745.8752,-1151.7242 1746.7542,-1151.4373 1747.6359,-1151.1405"/>
<polygon fill="#000000" stroke="#000000" points="1748.9656,-1154.3804 1757.127,-1147.6245 1746.5339,-1147.8163 1748.9656,-1154.3804"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.isZeroPred (0.20s)">
<text text-anchor="middle" x="1691.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="runtime.memeqbody (0.20s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2927.2522,-1143.5 2794.7478,-1143.5 2794.7478,-1107.5 2927.2522,-1107.5 2927.2522,-1143.5"/>
<text text-anchor="middle" x="2861" y="-1128.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2861" y="-1114.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.20s(1.75%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N43 -->
<g id="edge47" class="edge">
<title>N1&#45;&gt;N43</title>
<g id="a_edge47"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.20s)">
<path fill="none" stroke="#000000" d="M846.2584,-1240.3424C1134.0628,-1236.0651 1849.4407,-1222.1851 2447,-1184 2598.0284,-1174.349 2638.2088,-1184.565 2786,-1152 2792.524,-1150.5625 2799.2604,-1148.722 2805.8961,-1146.6822"/>
<polygon fill="#000000" stroke="#000000" points="2807.0708,-1149.9808 2815.5095,-1143.5746 2804.9177,-1143.3201 2807.0708,-1149.9808"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.20s)">
<text text-anchor="middle" x="2698.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="runtime.ifaceeq (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3051.0974,-1150.5 2944.9026,-1150.5 2944.9026,-1100.5 3051.0974,-1100.5 3051.0974,-1150.5"/>
<text text-anchor="middle" x="2998" y="-1135.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="2998" y="-1121.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.16s(1.40%)</text>
<text text-anchor="middle" x="2998" y="-1107.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.18s(1.58%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N47 -->
<g id="edge49" class="edge">
<title>N1&#45;&gt;N47</title>
<g id="a_edge49"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.18s)">
<path fill="none" stroke="#000000" d="M846.3772,-1239.1362C1259.9579,-1229.8582 2533.7412,-1200.2865 2719,-1184 2812.9833,-1175.7377 2840.4261,-1178.3048 2935.1862,-1151.9622"/>
<polygon fill="#000000" stroke="#000000" points="2936.2041,-1155.3118 2944.8815,-1149.233 2934.3072,-1148.5737 2936.2041,-1155.3118"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.18s)">
<text text-anchor="middle" x="2874.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2320.8048,-1146 2127.1952,-1146 2127.1952,-1105 2320.8048,-1105 2320.8048,-1146"/>
<text text-anchor="middle" x="2224" y="-1133.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="2224" y="-1122.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.35%)</text>
<text text-anchor="middle" x="2224" y="-1111.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.14s(1.23%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N49 -->
<g id="edge59" class="edge">
<title>N1&#45;&gt;N49</title>
<g id="a_edge59"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.14s)">
<path fill="none" stroke="#000000" d="M846.219,-1238.2843C1117.9981,-1230.0837 1741.0618,-1209.1528 1952,-1184 2014.7613,-1176.5162 2084.4289,-1161.3983 2137.5444,-1148.4062"/>
<polygon fill="#000000" stroke="#000000" points="2138.3941,-1151.8015 2147.2642,-1146.0073 2136.7168,-1145.0055 2138.3941,-1151.8015"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.14s)">
<text text-anchor="middle" x="2052.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="main.tryParseInt (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3293.5093,-1146 3204.4907,-1146 3204.4907,-1105 3293.5093,-1105 3293.5093,-1146"/>
<text text-anchor="middle" x="3249" y="-1133.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="3249" y="-1122.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.44%)</text>
<text text-anchor="middle" x="3249" y="-1111.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.11s(0.96%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N62 -->
<g id="edge68" class="edge">
<title>N1&#45;&gt;N62</title>
<g id="a_edge68"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.11s)">
<path fill="none" stroke="#000000" d="M846.0726,-1238.827C1330.3494,-1226.9134 3012.3479,-1185.4543 3026,-1184 3102.0157,-1175.9025 3122.4753,-1176.1687 3195,-1152 3196.8948,-1151.3686 3198.8079,-1150.6836 3200.7259,-1149.9566"/>
<polygon fill="#000000" stroke="#000000" points="3202.3763,-1153.0624 3210.2958,-1146.0246 3199.716,-1146.5876 3202.3763,-1153.0624"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.11s)">
<text text-anchor="middle" x="3147.4678" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="main.(*machine).execute.func1 (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3466.4609,-1146 3311.5391,-1146 3311.5391,-1105 3466.4609,-1105 3466.4609,-1146"/>
<text text-anchor="middle" x="3389" y="-1133.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).execute.func1</text>
<text text-anchor="middle" x="3389" y="-1122.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.44%)</text>
<text text-anchor="middle" x="3389" y="-1111.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(0.79%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N71 -->
<g id="edge78" class="edge">
<title>N1&#45;&gt;N71</title>
<g id="a_edge78"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.09s)">
<path fill="none" stroke="#000000" d="M846.2231,-1238.6802C1120.846,-1231.6538 1782.8721,-1214.8686 2338,-1202 2522.4383,-1197.7245 2985.003,-1207.4059 3168,-1184 3219.4985,-1177.4132 3276.0707,-1162.2835 3319.0852,-1149.0612"/>
<polygon fill="#000000" stroke="#000000" points="3320.3741,-1152.3257 3328.8814,-1146.011 3318.293,-1145.6422 3320.3741,-1152.3257"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func1 (0.09s)">
<text text-anchor="middle" x="3257.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="main.tryParseFloat (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3861.8205,-1144.5 3770.1795,-1144.5 3770.1795,-1106.5 3861.8205,-1106.5 3861.8205,-1144.5"/>
<text text-anchor="middle" x="3816" y="-1132.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="3816" y="-1122.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="3816" y="-1112.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(0.79%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N74 -->
<g id="edge79" class="edge">
<title>N1&#45;&gt;N74</title>
<g id="a_edge79"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.09s)">
<path fill="none" stroke="#000000" d="M846.2166,-1238.3773C1120.8271,-1230.7739 1782.831,-1212.9517 2338,-1202 2608.6436,-1196.6611 3286.2768,-1206.9309 3556,-1184 3647.883,-1176.1884 3672.9567,-1179.4205 3761,-1152 3764.2873,-1150.9762 3767.626,-1149.7855 3770.95,-1148.4868"/>
<polygon fill="#000000" stroke="#000000" points="3772.3611,-1151.6904 3780.2242,-1144.5895 3769.6492,-1145.237 3772.3611,-1151.6904"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (0.09s)">
<text text-anchor="middle" x="3707.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.eqstring (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3579.4844,-1143.5 3484.5156,-1143.5 3484.5156,-1107.5 3579.4844,-1107.5 3579.4844,-1143.5"/>
<text text-anchor="middle" x="3532" y="-1127.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.eqstring</text>
<text text-anchor="middle" x="3532" y="-1115.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.79%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N76 -->
<g id="edge80" class="edge">
<title>N1&#45;&gt;N76</title>
<g id="a_edge80"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.09s)">
<path fill="none" stroke="#000000" d="M846.2206,-1238.5689C1120.8387,-1231.3306 1782.8562,-1214.1645 2338,-1202 2546.877,-1197.423 3069.9201,-1202.7965 3278,-1184 3366.3434,-1176.0197 3390.2092,-1178.0532 3475,-1152 3479.2216,-1150.7029 3483.5329,-1149.1536 3487.8,-1147.4644"/>
<polygon fill="#000000" stroke="#000000" points="3489.1585,-1150.69 3497.019,-1143.5862 3486.4442,-1144.2377 3489.1585,-1150.69"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.eqstring (0.09s)">
<text text-anchor="middle" x="3420.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="main.(*machine).execute.func3 (0.08s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3752.4609,-1146 3597.5391,-1146 3597.5391,-1105 3752.4609,-1105 3752.4609,-1146"/>
<text text-anchor="middle" x="3675" y="-1133.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).execute.func3</text>
<text text-anchor="middle" x="3675" y="-1122.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.44%)</text>
<text text-anchor="middle" x="3675" y="-1111.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.08s(0.7%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N80 -->
<g id="edge93" class="edge">
<title>N1&#45;&gt;N80</title>
<g id="a_edge93"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func3 (0.08s)">
<path fill="none" stroke="#000000" d="M846.2179,-1238.4449C1120.831,-1230.9702 1782.8396,-1213.3793 2338,-1202 2583.0923,-1196.9763 3197.4848,-1212.2099 3441,-1184 3495.8363,-1177.6475 3556.2472,-1162.3248 3601.9504,-1148.9548"/>
<polygon fill="#000000" stroke="#000000" points="3603.1711,-1152.2436 3611.7653,-1146.0476 3601.183,-1145.5319 3603.1711,-1152.2436"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).execute.func3 (0.08s)">
<text text-anchor="middle" x="3535.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N1 -->
<g id="edge1" class="edge">
<title>N2&#45;&gt;N1</title>
<g id="a_edge1"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (9.88s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M488.6935,-1149.001C523.2187,-1163.0646 568.2002,-1181.3875 609.0988,-1198.0473"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="607.6634,-1202.1865 618.575,-1201.9073 610.9644,-1194.083 607.6634,-1202.1865"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*machine).execute (9.88s)">
<text text-anchor="middle" x="590.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.88s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="main.(*CodeQuotation).cloneCode (1.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1535.7784,-1049 1340.2216,-1049 1340.2216,-1002 1535.7784,-1002 1535.7784,-1049"/>
<text text-anchor="middle" x="1438" y="-1034.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="1438" y="-1021.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.11s(0.96%)</text>
<text text-anchor="middle" x="1438" y="-1008.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.18s(10.33%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N12 -->
<g id="edge22" class="edge">
<title>N2&#45;&gt;N12</title>
<g id="a_edge22"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (0.60s)">
<path fill="none" stroke="#000000" d="M515.6021,-1101.9912C520.4575,-1100.9113 525.2817,-1099.9035 530,-1099 589.8947,-1087.5301 741.7422,-1071.5975 802.5518,-1067 1033.5669,-1049.5341 1096.0741,-1077.5139 1329.9765,-1048.9988"/>
<polygon fill="#000000" stroke="#000000" points="1330.6698,-1052.4397 1340.1626,-1047.7348 1329.8077,-1045.493 1330.6698,-1052.4397"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.(*machine).execute.func7 &#45;&gt; main.(*CodeQuotation).cloneCode (0.60s)">
<text text-anchor="middle" x="819.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.60s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).executeQuotation (9.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="688.5547,-1044.5 531.4453,-1044.5 531.4453,-1006.5 688.5547,-1006.5 688.5547,-1044.5"/>
<text text-anchor="middle" x="610" y="-1032.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="610" y="-1022.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="610" y="-1012.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 9.77s(85.55%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N4 -->
<g id="edge2" class="edge">
<title>N3&#45;&gt;N4</title>
<g id="a_edge2"><a xlink:title="main.(*machine).execute.func4 &#45;&gt; main.(*machine).executeQuotation (9.76s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M610,-1106.219C610,-1091.6931 610,-1071.5197 610,-1054.9746"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="614.3751,-1054.7218 610,-1044.7218 605.6251,-1054.7219 614.3751,-1054.7218"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="main.(*machine).execute.func4 &#45;&gt; main.(*machine).executeQuotation (9.76s)">
<text text-anchor="middle" x="626.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.76s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (9.65s)">
<path fill="none" stroke="#000000" stroke-width="5" d="M638.8259,-1044.6157C656.3811,-1057.8054 677.7246,-1076.9079 690,-1099 705.6833,-1127.2254 712.4366,-1162.9094 715.2675,-1191.57"/>
<polygon fill="#000000" stroke="#000000" stroke-width="5" points="710.9298,-1192.1944 716.1422,-1201.7846 719.6479,-1191.4478 710.9298,-1192.1944"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (9.65s)">
<text text-anchor="middle" x="725.7241" y="-1121.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.65s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N8 -->
<g id="edge81" class="edge">
<title>N4&#45;&gt;N8</title>
<g id="a_edge81"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.09s)">
<path fill="none" stroke="#000000" d="M626.9572,-1006.4195C650.342,-980.7747 694.5472,-934.6427 738,-902 807.2426,-849.9836 826.6712,-837.3657 907,-805 961.3908,-783.0851 977.2814,-783.3527 1035,-773 1152.199,-751.9786 1290.4693,-739.3085 1370.7947,-733.1313"/>
<polygon fill="#000000" stroke="#000000" points="1371.5496,-736.5842 1381.2565,-732.3384 1371.0205,-729.6043 1371.5496,-736.5842"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.09s)">
<text text-anchor="middle" x="797.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N1 -->
<g id="edge4" class="edge">
<title>N5&#45;&gt;N1</title>
<g id="a_edge4"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.07s)">
<path fill="none" stroke="#000000" stroke-width="4" d="M1190.6834,-1149.0286C1141.8236,-1160.0449 1082.4757,-1173.108 1029,-1184 972.5865,-1195.4904 910.243,-1207.2641 856.2101,-1217.1754"/>
<polygon fill="#000000" stroke="#000000" stroke-width="4" points="855.4273,-1213.7604 846.221,-1219.0039 856.6878,-1220.646 855.4273,-1213.7604"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (7.07s)">
<text text-anchor="middle" x="1111.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.07s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N8 -->
<g id="edge109" class="edge">
<title>N5&#45;&gt;N8</title>
<g id="a_edge109"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.04s)">
<path fill="none" stroke="#000000" d="M1397.1464,-1101.9458C1402.8363,-1100.8919 1408.4818,-1099.9008 1414,-1099 1450.6204,-1093.0223 1555.2172,-1108.6153 1580,-1081 1584.1559,-1076.3691 1580.8007,-1073.1705 1580,-1067 1579.2717,-1061.3874 1531.3287,-874.5773 1528,-870 1519.2989,-858.0352 1509.8917,-863.0008 1500,-852 1476.2459,-825.5825 1459.2276,-788.4042 1449.1005,-761.7534"/>
<polygon fill="#000000" stroke="#000000" points="1452.2884,-760.2807 1445.557,-752.0991 1445.717,-762.6927 1452.2884,-760.2807"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.04s)">
<text text-anchor="middle" x="1567.7241" y="-922.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.assertI2T (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2041.8917,-849 1948.1083,-849 1948.1083,-808 2041.8917,-808 2041.8917,-849"/>
<text text-anchor="middle" x="1995" y="-836.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="1995" y="-825.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.44%)</text>
<text text-anchor="middle" x="1995" y="-814.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.22s(1.93%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N37 -->
<g id="edge118" class="edge">
<title>N5&#45;&gt;N37</title>
<g id="a_edge118"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M1395.4615,-1101.9743C1401.7176,-1100.8754 1407.9332,-1099.8704 1414,-1099 1480.4389,-1089.4682 1970.7976,-1098.6158 2016,-1049 2030.0679,-1033.5585 2019.0587,-1022.6637 2016,-1002 2014.7761,-993.7317 2012.2488,-992.1843 2010.5518,-984 2001.4678,-940.1919 2003.1761,-928.5447 1999,-884 1998.2476,-875.9748 1997.5608,-867.2851 1996.9767,-859.2167"/>
<polygon fill="#000000" stroke="#000000" points="2000.4568,-858.8088 1996.2711,-849.0759 1993.4737,-859.2947 2000.4568,-858.8088"/>
</a>
</g>
<g id="a_edge118&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="2027.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="main.(*machine).popValue (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2306.6147,-1043.5 2139.3853,-1043.5 2139.3853,-1007.5 2306.6147,-1007.5 2306.6147,-1043.5"/>
<text text-anchor="middle" x="2223" y="-1028.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="2223" y="-1014.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.18s(1.58%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N45 -->
<g id="edge117" class="edge">
<title>N5&#45;&gt;N45</title>
<g id="a_edge117"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M1393.7754,-1101.9757C1400.5966,-1100.8328 1407.3843,-1099.8216 1414,-1099 1476.992,-1091.1769 1925.1364,-1102.108 1985,-1081 1994.7417,-1077.5651 1994.106,-1071.1807 2003.5518,-1067 2009.6351,-1064.3075 2072.281,-1052.572 2129.0867,-1042.2647"/>
<polygon fill="#000000" stroke="#000000" points="2130.0257,-1045.6517 2139.2421,-1040.4258 2128.7784,-1038.7637 2130.0257,-1045.6517"/>
</a>
</g>
<g id="a_edge117&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="2020.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="runtime.goexit (6.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="755.7699,-1450 678.2301,-1450 678.2301,-1414 755.7699,-1414 755.7699,-1450"/>
<text text-anchor="middle" x="717" y="-1433.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="717" y="-1425.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 6.24s(54.64%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N1 -->
<g id="edge5" class="edge">
<title>N6&#45;&gt;N1</title>
<g id="a_edge5"><a xlink:title="runtime.goexit ... main.(*machine).execute (5.97s)">
<path fill="none" stroke="#000000" stroke-width="3" stroke-dasharray="1,5" d="M717,-1413.782C717,-1386.0982 717,-1332.4317 717,-1292.4151"/>
<polygon fill="#000000" stroke="#000000" stroke-width="3" points="720.5001,-1292.3013 717,-1282.3014 713.5001,-1292.3014 720.5001,-1292.3013"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (5.97s)">
<text text-anchor="middle" x="733.7241" y="-1302.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.97s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.gcFlushBgCredit (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2464.9385,-1261 2347.0615,-1261 2347.0615,-1223 2464.9385,-1223 2464.9385,-1261"/>
<text text-anchor="middle" x="2406" y="-1249" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.gcFlushBgCredit</text>
<text text-anchor="middle" x="2406" y="-1239" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="2406" y="-1229" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(0.96%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N64 -->
<g id="edge92" class="edge">
<title>N6&#45;&gt;N64</title>
<g id="a_edge92"><a xlink:title="runtime.goexit ... runtime.gcFlushBgCredit (0.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M755.8562,-1427.629C974.465,-1403.0371 2051.4118,-1281.8886 2336.5988,-1249.8071"/>
<polygon fill="#000000" stroke="#000000" points="2337.2599,-1253.2549 2346.8059,-1248.6589 2336.4773,-1246.2988 2337.2599,-1253.2549"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.goexit ... runtime.gcFlushBgCredit (0.09s)">
<text text-anchor="middle" x="1876.7241" y="-1302.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.gcMarkDone (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="303.5899,-1260 218.4101,-1260 218.4101,-1224 303.5899,-1224 303.5899,-1260"/>
<text text-anchor="middle" x="261" y="-1243.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcMarkDone</text>
<text text-anchor="middle" x="261" y="-1235.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.10s(0.88%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N68 -->
<g id="edge86" class="edge">
<title>N6&#45;&gt;N68</title>
<g id="a_edge86"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.09s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M714.6642,-1413.5894C710.5522,-1389.2085 699.6523,-1346.6586 672,-1324 617.712,-1279.5158 411.8327,-1255.5092 313.6728,-1246.3796"/>
<polygon fill="#000000" stroke="#000000" points="313.9445,-1242.8899 303.6676,-1245.466 313.3079,-1249.8609 313.9445,-1242.8899"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.goexit ... runtime.gcMarkDone (0.09s)">
<text text-anchor="middle" x="673.7241" y="-1302.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="runtime.mallocgc (3.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1530.1098,-652 1345.8902,-652 1345.8902,-572 1530.1098,-572 1530.1098,-652"/>
<text text-anchor="middle" x="1438" y="-628.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="1438" y="-604.8" font-family="Times,serif" font-size="24.00" fill="#000000">1.57s(13.75%)</text>
<text text-anchor="middle" x="1438" y="-580.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 3.52s(30.82%)</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.heapBitsSetType (0.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1532.0835,-522 1343.9165,-522 1343.9165,-480 1532.0835,-480 1532.0835,-522"/>
<text text-anchor="middle" x="1438" y="-504.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1438" y="-487.4" font-family="Times,serif" font-size="17.00" fill="#000000">0.45s(3.94%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N23 -->
<g id="edge28" class="edge">
<title>N7&#45;&gt;N23</title>
<g id="a_edge28"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.45s)">
<path fill="none" stroke="#000000" d="M1438,-571.9265C1438,-558.8624 1438,-544.5596 1438,-532.2417"/>
<polygon fill="#000000" stroke="#000000" points="1441.5001,-532.0087 1438,-522.0087 1434.5001,-532.0088 1441.5001,-532.0087"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (0.45s)">
<text text-anchor="middle" x="1454.7241" y="-542.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.45s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.(*mcache).nextFree (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1771.7816,-520 1642.2184,-520 1642.2184,-482 1771.7816,-482 1771.7816,-520"/>
<text text-anchor="middle" x="1707" y="-508" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="1707" y="-498" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.088%)</text>
<text text-anchor="middle" x="1707" y="-488" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.38s(3.33%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N27 -->
<g id="edge32" class="edge">
<title>N7&#45;&gt;N27</title>
<g id="a_edge32"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.38s)">
<path fill="none" stroke="#000000" d="M1530.1982,-573.9554C1570.3749,-557.3769 1616.1582,-538.4849 1651.0677,-524.0799"/>
<polygon fill="#000000" stroke="#000000" points="1652.7031,-527.1914 1660.6119,-520.1415 1650.0329,-520.7206 1652.7031,-527.1914"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (0.38s)">
<text text-anchor="middle" x="1629.7241" y="-542.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.memclr (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="128.8039,-218 23.1961,-218 23.1961,-182 128.8039,-182 128.8039,-218"/>
<text text-anchor="middle" x="76" y="-202.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="76" y="-188.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.22s(1.93%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N38 -->
<g id="edge106" class="edge">
<title>N7&#45;&gt;N38</title>
<g id="a_edge106"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.05s)">
<path fill="none" stroke="#000000" d="M1345.6604,-609.498C1034.3967,-600.4627 43,-566.5404 43,-501 43,-501 43,-501 43,-304 43,-277.1398 53.1244,-248.128 62.1574,-227.5887"/>
<polygon fill="#000000" stroke="#000000" points="65.4613,-228.7811 66.455,-218.233 59.1003,-225.8591 65.4613,-228.7811"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.05s)">
<text text-anchor="middle" x="59.7241" y="-400.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="runtime.profilealloc (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="188.817,-519 109.183,-519 109.183,-483 188.817,-483 188.817,-519"/>
<text text-anchor="middle" x="149" y="-502.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.profilealloc</text>
<text text-anchor="middle" x="149" y="-494.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.96%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N67 -->
<g id="edge71" class="edge">
<title>N7&#45;&gt;N67</title>
<g id="a_edge71"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.profilealloc (0.11s)">
<path fill="none" stroke="#000000" d="M1345.8156,-604.0617C1092.619,-582.2581 392.4947,-521.9681 199.0743,-505.3121"/>
<polygon fill="#000000" stroke="#000000" points="199.1821,-501.8085 188.9187,-504.4375 198.5815,-508.7827 199.1821,-501.8085"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.profilealloc (0.11s)">
<text text-anchor="middle" x="771.4678" y="-542.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N7 -->
<g id="edge6" class="edge">
<title>N8&#45;&gt;N7</title>
<g id="a_edge6"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (2.61s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M1438,-704.9245C1438,-692.6077 1438,-677.0388 1438,-662.1837"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="1441.5001,-662.0621 1438,-652.0621 1434.5001,-662.0622 1441.5001,-662.0621"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (2.61s)">
<text text-anchor="middle" x="1454.7241" y="-672.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.61s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.systemstack (2.57s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2150.2005,-430 2019.7995,-430 2019.7995,-380 2150.2005,-380 2150.2005,-430"/>
<text text-anchor="middle" x="2085" y="-414.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="2085" y="-400.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.21s(1.84%)</text>
<text text-anchor="middle" x="2085" y="-386.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 2.57s(22.50%)</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="runtime.mach_semaphore_signal (1.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2238.9143,-330 1931.0857,-330 1931.0857,-278 2238.9143,-278 2238.9143,-330"/>
<text text-anchor="middle" x="2085" y="-308.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="2085" y="-286.4" font-family="Times,serif" font-size="22.00" fill="#000000">1.09s(9.54%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N14 -->
<g id="edge12" class="edge">
<title>N9&#45;&gt;N14</title>
<g id="a_edge12"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.95s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2085,-379.774C2085,-367.8792 2085,-353.4638 2085,-340.4129"/>
<polygon fill="#000000" stroke="#000000" points="2088.5001,-340.313 2085,-330.313 2081.5001,-340.3131 2088.5001,-340.313"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_signal (0.95s)">
<text text-anchor="middle" x="2101.7241" y="-350.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.95s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.deferproc.func1 (0.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1716.0488,-329 1563.9512,-329 1563.9512,-279 1716.0488,-279 1716.0488,-329"/>
<text text-anchor="middle" x="1640" y="-313.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="1640" y="-299.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.16s(1.40%)</text>
<text text-anchor="middle" x="1640" y="-285.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.52s(4.55%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N22 -->
<g id="edge26" class="edge">
<title>N9&#45;&gt;N22</title>
<g id="a_edge26"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.52s)">
<path fill="none" stroke="#000000" d="M2019.552,-393.2294C1949.2149,-380.1602 1834.0289,-357.5492 1726.1122,-330.2067"/>
<polygon fill="#000000" stroke="#000000" points="1726.9173,-326.8001 1716.3624,-327.7183 1725.1862,-333.5827 1726.9173,-326.8001"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.52s)">
<text text-anchor="middle" x="1869.7241" y="-350.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.52s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.deferreturn.func1 (0.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3797.9434,-326 3658.0566,-326 3658.0566,-282 3797.9434,-282 3797.9434,-326"/>
<text text-anchor="middle" x="3728" y="-312.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="3728" y="-300.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.53%)</text>
<text text-anchor="middle" x="3728" y="-288.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.32s(2.80%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N29 -->
<g id="edge36" class="edge">
<title>N9&#45;&gt;N29</title>
<g id="a_edge36"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.32s)">
<path fill="none" stroke="#000000" d="M2150.4214,-400.9784C2409.5273,-385.0504 3363.46,-326.4093 3647.6156,-308.9415"/>
<polygon fill="#000000" stroke="#000000" points="3648.0744,-312.42 3657.8408,-308.3129 3647.6449,-305.4331 3648.0744,-312.42"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.32s)">
<text text-anchor="middle" x="3020.7241" y="-350.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.(*mheap).alloc (0.18s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1132.8526,-323 1023.1474,-323 1023.1474,-285 1132.8526,-285 1132.8526,-323"/>
<text text-anchor="middle" x="1078" y="-311" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="1078" y="-301" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.088%)</text>
<text text-anchor="middle" x="1078" y="-291" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.18s(1.58%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N46 -->
<g id="edge51" class="edge">
<title>N9&#45;&gt;N46</title>
<g id="a_edge51"><a xlink:title="runtime.systemstack ... runtime.(*mheap).alloc (0.18s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2019.7038,-398.4509C1837.4844,-380.1747 1324.9122,-328.7648 1143.0232,-310.5217"/>
<polygon fill="#000000" stroke="#000000" points="1143.3655,-307.0386 1133.0661,-309.523 1142.6669,-314.0036 1143.3655,-307.0386"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mheap).alloc (0.18s)">
<text text-anchor="middle" x="1658.7241" y="-350.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.(*mheap).alloc_m (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3256.1314,-323 3133.8686,-323 3133.8686,-285 3256.1314,-285 3256.1314,-323"/>
<text text-anchor="middle" x="3195" y="-311" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mheap).alloc_m</text>
<text text-anchor="middle" x="3195" y="-301" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.088%)</text>
<text text-anchor="middle" x="3195" y="-291" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.14s(1.23%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N50 -->
<g id="edge62" class="edge">
<title>N9&#45;&gt;N50</title>
<g id="a_edge62"><a xlink:title="runtime.systemstack ... runtime.(*mheap).alloc_m (0.14s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2150.2915,-399.0591C2344.9919,-381.3431 2920.5873,-328.9691 3123.3394,-310.5205"/>
<polygon fill="#000000" stroke="#000000" points="3123.9314,-313.9812 3133.573,-309.5893 3123.297,-307.01 3123.9314,-313.9812"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.systemstack ... runtime.(*mheap).alloc_m (0.14s)">
<text text-anchor="middle" x="2722.7241" y="-350.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="runtime.mach_semaphore_wait (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1913.5289,-322 1734.4711,-322 1734.4711,-286 1913.5289,-286 1913.5289,-322"/>
<text text-anchor="middle" x="1824" y="-306.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="1824" y="-293.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(0.88%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N69 -->
<g id="edge76" class="edge">
<title>N9&#45;&gt;N69</title>
<g id="a_edge76"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.10s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M2020.1478,-379.9039C1977.2389,-363.2993 1921.5263,-341.7401 1880.447,-325.8435"/>
<polygon fill="#000000" stroke="#000000" points="1881.4527,-322.4798 1870.8634,-322.1349 1878.9264,-329.008 1881.4527,-322.4798"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.systemstack ... runtime.mach_semaphore_wait (0.10s)">
<text text-anchor="middle" x="1987.7241" y="-350.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N1 -->
<g id="edge7" class="edge">
<title>N10&#45;&gt;N1</title>
<g id="a_edge7"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).execute (1.47s)">
<path fill="none" stroke="#000000" d="M991.7584,-1150.5447C949.6144,-1164.5726 895.8806,-1182.4583 847.1291,-1198.6856"/>
<polygon fill="#000000" stroke="#000000" points="845.8329,-1195.4282 837.4501,-1201.9073 848.0437,-1202.0699 845.8329,-1195.4282"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*machine).execute (1.47s)">
<text text-anchor="middle" x="940.7241" y="-1172.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.47s</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N12 -->
<g id="edge23" class="edge">
<title>N10&#45;&gt;N12</title>
<g id="a_edge23"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*CodeQuotation).cloneCode (0.58s)">
<path fill="none" stroke="#000000" d="M1160.1401,-1100.3949C1215.2162,-1085.5495 1284.8761,-1066.7733 1340.6691,-1051.7347"/>
<polygon fill="#000000" stroke="#000000" points="1341.8181,-1055.05 1350.5626,-1049.068 1339.9963,-1048.2912 1341.8181,-1055.05"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; main.(*CodeQuotation).cloneCode (0.58s)">
<text text-anchor="middle" x="1291.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="runtime.convT2I (0.94s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2163.725,-852 2060.275,-852 2060.275,-805 2163.725,-805 2163.725,-852"/>
<text text-anchor="middle" x="2112" y="-837.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="2112" y="-824.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(0.88%)</text>
<text text-anchor="middle" x="2112" y="-811.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.94s(8.23%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N15 -->
<g id="edge39" class="edge">
<title>N10&#45;&gt;N15</title>
<g id="a_edge39"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; runtime.convT2I (0.24s)">
<path fill="none" stroke="#000000" d="M1162.9735,-1100.4505C1166.0095,-1099.9234 1169.0238,-1099.4372 1172,-1099 1349.8248,-1072.8748 1398.8567,-1111.4047 1576,-1081 1597.0623,-1077.3849 1600.9397,-1070.627 1622,-1067 1665.1877,-1059.5622 1979.9032,-1073.8498 2016,-1049 2078.6084,-1005.8991 2100.7192,-912.5894 2108.269,-862.2782"/>
<polygon fill="#000000" stroke="#000000" points="2111.7557,-862.6157 2109.6684,-852.2285 2104.8226,-861.6502 2111.7557,-862.6157"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="main.(*machine).execute.func8 &#45;&gt; runtime.convT2I (0.24s)">
<text text-anchor="middle" x="2094.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.24s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (1.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1136.4297,-1047.5 901.5703,-1047.5 901.5703,-1003.5 1136.4297,-1003.5 1136.4297,-1047.5"/>
<text text-anchor="middle" x="1019" y="-1033.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="1019" y="-1021.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.06s(0.53%)</text>
<text text-anchor="middle" x="1019" y="-1009.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.17s(10.25%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N13 -->
<g id="edge8" class="edge">
<title>N11&#45;&gt;N13</title>
<g id="a_edge8"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.17s)">
<path fill="none" stroke="#000000" d="M922.5196,-1103.3068C940.4999,-1088.8065 964.1531,-1069.7314 983.5392,-1054.0974"/>
<polygon fill="#000000" stroke="#000000" points="985.9703,-1056.6332 991.5573,-1047.6312 981.576,-1051.1843 985.9703,-1056.6332"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.17s)">
<text text-anchor="middle" x="981.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.17s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="main.(*machine).loadLocalWords.func3 (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="883.641,-1044.5 706.359,-1044.5 706.359,-1006.5 883.641,-1006.5 883.641,-1044.5"/>
<text text-anchor="middle" x="795" y="-1032.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLocalWords.func3</text>
<text text-anchor="middle" x="795" y="-1022.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.088%)</text>
<text text-anchor="middle" x="795" y="-1012.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.13s(1.14%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N54 -->
<g id="edge63" class="edge">
<title>N11&#45;&gt;N54</title>
<g id="a_edge63"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.13s)">
<path fill="none" stroke="#000000" d="M872.8068,-1103.3068C857.6754,-1088.1754 837.5621,-1068.0621 821.5761,-1052.0761"/>
<polygon fill="#000000" stroke="#000000" points="823.6459,-1049.1961 814.0999,-1044.5999 818.6961,-1054.1459 823.6459,-1049.1961"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadLocalWords.func3 (0.13s)">
<text text-anchor="middle" x="864.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="main.(*machine).loadBooleanWords.func3 (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1924.2023,-946 1735.7977,-946 1735.7977,-908 1924.2023,-908 1924.2023,-946"/>
<text text-anchor="middle" x="1830" y="-934" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadBooleanWords.func3</text>
<text text-anchor="middle" x="1830" y="-924" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="1830" y="-914" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(0.96%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N61 -->
<g id="edge69" class="edge">
<title>N11&#45;&gt;N61</title>
<g id="a_edge69"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func3 (0.11s)">
<path fill="none" stroke="#000000" d="M945.6775,-1103.4843C951.113,-1101.7189 956.6217,-1100.1689 962,-1099 1114.2077,-1065.9191 1156.573,-1091.1962 1312,-1081 1323.1503,-1080.2685 1703.1827,-1054.3373 1713,-1049 1736.1323,-1036.4238 1731.3305,-1021.462 1749.0645,-1002 1764.7764,-984.757 1783.8539,-966.948 1799.54,-953.0131"/>
<polygon fill="#000000" stroke="#000000" points="1802.2,-955.3348 1807.3979,-946.1026 1797.5773,-950.0782 1802.2,-955.3348"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadBooleanWords.func3 (0.11s)">
<text text-anchor="middle" x="1766.4678" y="-1021.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="main.(*machine).loadPredefinedValues.func4 (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2007.1858,-1046 1790.8142,-1046 1790.8142,-1005 2007.1858,-1005 2007.1858,-1046"/>
<text text-anchor="middle" x="1899" y="-1033.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadPredefinedValues.func4</text>
<text text-anchor="middle" x="1899" y="-1022.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.44%)</text>
<text text-anchor="middle" x="1899" y="-1011.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(0.79%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N72 -->
<g id="edge83" class="edge">
<title>N11&#45;&gt;N72</title>
<g id="a_edge83"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func4 (0.09s)">
<path fill="none" stroke="#000000" d="M945.2842,-1103.4976C950.8441,-1101.7027 956.4883,-1100.1428 962,-1099 1083.4807,-1073.8121 1401.2555,-1116.9409 1520,-1081 1531.2914,-1077.5824 1531.3389,-1070.6673 1542.5518,-1067 1641.88,-1034.5133 1673.4234,-1062.9059 1777,-1049 1780.2602,-1048.5623 1783.5648,-1048.0934 1786.8972,-1047.5984"/>
<polygon fill="#000000" stroke="#000000" points="1787.6131,-1051.0294 1796.9602,-1046.0411 1786.5425,-1044.1117 1787.6131,-1051.0294"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func4 (0.09s)">
<text text-anchor="middle" x="1559.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N8 -->
<g id="edge9" class="edge">
<title>N12&#45;&gt;N8</title>
<g id="a_edge9"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.07s)">
<path fill="none" stroke="#000000" d="M1437.2512,-1001.9685C1436.3984,-973.8911 1435.0577,-925.5257 1434.5518,-884 1434.0405,-842.0322 1435.4212,-793.704 1436.5849,-762.2094"/>
<polygon fill="#000000" stroke="#000000" points="1440.0826,-762.3341 1436.9682,-752.2074 1433.0877,-762.066 1440.0826,-762.3341"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (1.07s)">
<text text-anchor="middle" x="1451.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.07s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N1 -->
<g id="edge10" class="edge">
<title>N13&#45;&gt;N1</title>
<g id="a_edge10"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (0.99s)">
<path fill="none" stroke="#000000" d="M903.7187,-1047.5529C875.2289,-1053.9239 849.1147,-1060.8221 836,-1067 784.705,-1091.1633 752.0086,-1149.7919 734.1285,-1192.5499"/>
<polygon fill="#000000" stroke="#000000" points="730.8286,-1191.3744 730.3242,-1201.9572 737.318,-1193.9987 730.8286,-1191.3744"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (0.99s)">
<text text-anchor="middle" x="807.7241" y="-1121.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.99s</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N8 -->
<g id="edge66" class="edge">
<title>N13&#45;&gt;N8</title>
<g id="a_edge66"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.12s)">
<path fill="none" stroke="#000000" d="M1034.5405,-1003.1826C1066.1465,-959.326 1142.2306,-861.2861 1228,-805 1271.9403,-776.1642 1328.1716,-756.4266 1371.3867,-744.2319"/>
<polygon fill="#000000" stroke="#000000" points="1372.5251,-747.5487 1381.2365,-741.5187 1370.6661,-740.8001 1372.5251,-747.5487"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.12s)">
<text text-anchor="middle" x="1163.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N8 -->
<g id="edge17" class="edge">
<title>N15&#45;&gt;N8</title>
<g id="a_edge17"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.68s)">
<path fill="none" stroke="#000000" d="M2060.027,-807.52C2056.9957,-806.5961 2053.972,-805.746 2051,-805 1856.3155,-756.1303 1618.6544,-737.8283 1504.911,-731.519"/>
<polygon fill="#000000" stroke="#000000" points="1504.8002,-728.0079 1494.6257,-730.9625 1504.422,-734.9977 1504.8002,-728.0079"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (0.68s)">
<text text-anchor="middle" x="1986.7241" y="-775.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.68s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.typedmemmove (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2193.5483,-755 2030.4517,-755 2030.4517,-702 2193.5483,-702 2193.5483,-755"/>
<text text-anchor="middle" x="2112" y="-739" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="2112" y="-724" font-family="Times,serif" font-size="15.00" fill="#000000">0.23s(2.01%)</text>
<text text-anchor="middle" x="2112" y="-709" font-family="Times,serif" font-size="15.00" fill="#000000">of 0.42s(3.68%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N25 -->
<g id="edge54" class="edge">
<title>N15&#45;&gt;N25</title>
<g id="a_edge54"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.16s)">
<path fill="none" stroke="#000000" d="M2112,-804.8014C2112,-793.0434 2112,-778.5727 2112,-765.4054"/>
<polygon fill="#000000" stroke="#000000" points="2115.5001,-765.2016 2112,-755.2017 2108.5001,-765.2017 2115.5001,-765.2016"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.16s)">
<text text-anchor="middle" x="2128.7241" y="-775.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N9 -->
<g id="edge25" class="edge">
<title>N16&#45;&gt;N9</title>
<g id="a_edge25"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.52s)">
<path fill="none" stroke="#000000" d="M3102.5546,-1100.3734C3086.2016,-1081.484 3068,-1054.0474 3068,-1025.5 3068,-1025.5 3068,-1025.5 3068,-501 3068,-455.4562 2390.7842,-419.3796 2160.5533,-408.4307"/>
<polygon fill="#000000" stroke="#000000" points="2160.4129,-404.9202 2150.2587,-407.9437 2160.0821,-411.9124 2160.4129,-404.9202"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.52s)">
<text text-anchor="middle" x="3084.7241" y="-775.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.52s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N9 -->
<g id="edge35" class="edge">
<title>N17&#45;&gt;N9</title>
<g id="a_edge35"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.32s)">
<path fill="none" stroke="#000000" d="M156.8473,-1100.7178C187.4432,-1084.6497 217,-1060.1582 217,-1025.5 217,-1025.5 217,-1025.5 217,-501 217,-455.3281 1660.3801,-415.7718 2009.6019,-406.8697"/>
<polygon fill="#000000" stroke="#000000" points="2009.7044,-410.3683 2019.6122,-406.6153 2009.5265,-403.3706 2009.7044,-410.3683"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.32s)">
<text text-anchor="middle" x="233.7241" y="-775.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.32s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.memmove (0.29s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2296.7234,-219 2167.2766,-219 2167.2766,-181 2296.7234,-181 2296.7234,-219"/>
<text text-anchor="middle" x="2232" y="-203" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="2232" y="-188" font-family="Times,serif" font-size="15.00" fill="#000000">0.29s(2.54%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N31 -->
<g id="edge85" class="edge">
<title>N17&#45;&gt;N31</title>
<g id="a_edge85"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.09s)">
<path fill="none" stroke="#000000" d="M84.2264,-1098.8606C73.887,-1050.1203 52.2434,-943.2042 41,-852 31.8432,-777.7225 32.0973,-758.7965 29.5518,-684 29.3401,-677.7814 28.8254,-676.1797 29.5518,-670 32.1654,-647.7651 105.6495,-292.1486 123,-278 191.5344,-222.1131 1625.6481,-231.7757 1714,-228 1871.6732,-221.2618 2056.1955,-210.6291 2156.9344,-204.5906"/>
<polygon fill="#000000" stroke="#000000" points="2157.2405,-208.0786 2167.0126,-203.985 2156.8206,-201.0912 2157.2405,-208.0786"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.09s)">
<text text-anchor="middle" x="46.7241" y="-672.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="main.(*Integer).Add (0.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2954.4124,-1046 2847.5876,-1046 2847.5876,-1005 2954.4124,-1005 2954.4124,-1046"/>
<text text-anchor="middle" x="2901" y="-1033.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*Integer).Add</text>
<text text-anchor="middle" x="2901" y="-1022.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.26%)</text>
<text text-anchor="middle" x="2901" y="-1011.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.22s(1.93%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N36 -->
<g id="edge42" class="edge">
<title>N18&#45;&gt;N36</title>
<g id="a_edge42"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.22s)">
<path fill="none" stroke="#000000" d="M2100.8152,-1103.4855C2106.5353,-1101.6928 2112.3385,-1100.1368 2118,-1099 2250.3071,-1072.4324 2591.6006,-1101.3869 2725,-1081 2764.4911,-1074.9647 2807.2666,-1061.6418 2840.7581,-1049.5622"/>
<polygon fill="#000000" stroke="#000000" points="2842.2088,-1052.7582 2850.3926,-1046.0296 2839.7989,-1046.1861 2842.2088,-1052.7582"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Add (0.22s)">
<text text-anchor="middle" x="2800.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="runtime.assertI2I (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2597.3356,-1046 2506.6644,-1046 2506.6644,-1005 2597.3356,-1005 2597.3356,-1046"/>
<text text-anchor="middle" x="2552" y="-1033.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2I</text>
<text text-anchor="middle" x="2552" y="-1022.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.26%)</text>
<text text-anchor="middle" x="2552" y="-1011.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.21s(1.84%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N41 -->
<g id="edge74" class="edge">
<title>N18&#45;&gt;N41</title>
<g id="a_edge74"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.10s)">
<path fill="none" stroke="#000000" d="M2101.2197,-1103.478C2106.8117,-1101.7138 2112.4755,-1100.1659 2118,-1099 2197.4596,-1082.2314 2407.0918,-1109.8611 2483,-1081 2485.2846,-1080.1314 2502.3308,-1066.4265 2518.9068,-1052.8545"/>
<polygon fill="#000000" stroke="#000000" points="2521.4317,-1055.31 2526.9396,-1046.2593 2516.9898,-1049.8998 2521.4317,-1055.31"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.assertI2I (0.10s)">
<text text-anchor="middle" x="2515.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N45 -->
<g id="edge120" class="edge">
<title>N18&#45;&gt;N45</title>
<g id="a_edge120"><a xlink:title="main.executeSubtract &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M2101.6275,-1103.4799C2107.0902,-1101.7412 2112.6138,-1100.198 2118,-1099 2145.5099,-1092.8812 2351.7923,-1101.6228 2371,-1081 2375.2408,-1076.4468 2374.7592,-1071.9583 2371,-1067 2363.421,-1057.0035 2341.4463,-1048.7521 2316.6723,-1042.3123"/>
<polygon fill="#000000" stroke="#000000" points="2317.2334,-1038.8457 2306.6857,-1039.8437 2315.5536,-1045.6411 2317.2334,-1038.8457"/>
</a>
</g>
<g id="a_edge120&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="2390.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="main.(*Integer).Negate (0.15s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2829.7865,-1044.5 2720.2135,-1044.5 2720.2135,-1006.5 2829.7865,-1006.5 2829.7865,-1044.5"/>
<text text-anchor="middle" x="2775" y="-1032.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*Integer).Negate</text>
<text text-anchor="middle" x="2775" y="-1022.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.088%)</text>
<text text-anchor="middle" x="2775" y="-1012.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.15s(1.31%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N48 -->
<g id="edge56" class="edge">
<title>N18&#45;&gt;N48</title>
<g id="a_edge56"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.15s)">
<path fill="none" stroke="#000000" d="M2101.2019,-1103.3923C2106.7974,-1101.6448 2112.4669,-1100.1242 2118,-1099 2347.2311,-1052.4257 2415.595,-1131.4701 2644,-1081 2674.0474,-1074.3605 2705.8746,-1061.039 2730.633,-1049.1117"/>
<polygon fill="#000000" stroke="#000000" points="2732.3277,-1052.1787 2739.7573,-1044.6255 2729.2391,-1045.8969 2732.3277,-1052.1787"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; main.(*Integer).Negate (0.15s)">
<text text-anchor="middle" x="2704.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.convI2I (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2702.6725,-1046 2615.3275,-1046 2615.3275,-1005 2702.6725,-1005 2702.6725,-1046"/>
<text text-anchor="middle" x="2659" y="-1033.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.convI2I</text>
<text text-anchor="middle" x="2659" y="-1022.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.44%)</text>
<text text-anchor="middle" x="2659" y="-1011.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.11s(0.96%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N63 -->
<g id="edge94" class="edge">
<title>N18&#45;&gt;N63</title>
<g id="a_edge94"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.08s)">
<path fill="none" stroke="#000000" d="M2101.2076,-1103.4197C2106.8019,-1101.6669 2112.4696,-1100.1375 2118,-1099 2218.4203,-1078.3449 2481.7718,-1113.5198 2579,-1081 2597.0912,-1074.949 2614.7785,-1063.4477 2628.9024,-1052.4773"/>
<polygon fill="#000000" stroke="#000000" points="2631.194,-1055.1256 2636.7826,-1046.1246 2626.8007,-1049.6759 2631.194,-1055.1256"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="main.executeSubtract &#45;&gt; runtime.convI2I (0.08s)">
<text text-anchor="middle" x="2623.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.08s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N7 -->
<g id="edge27" class="edge">
<title>N19&#45;&gt;N7</title>
<g id="a_edge27"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.49s)">
<path fill="none" stroke="#000000" d="M243.4318,-1101.6586C253.302,-1081.8921 265,-1052.7228 265,-1025.5 265,-1025.5 265,-1025.5 265,-728.5 265,-674.9619 1048.9879,-631.0981 1335.0906,-616.8733"/>
<polygon fill="#000000" stroke="#000000" points="1335.6523,-620.3498 1345.467,-616.3595 1335.3061,-613.3584 1335.6523,-620.3498"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (0.49s)">
<text text-anchor="middle" x="281.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.49s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.mapassign1 (0.58s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1704.4844,-1047.5 1591.5156,-1047.5 1591.5156,-1003.5 1704.4844,-1003.5 1704.4844,-1047.5"/>
<text text-anchor="middle" x="1648" y="-1033.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="1648" y="-1021.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.09s(0.79%)</text>
<text text-anchor="middle" x="1648" y="-1009.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.58s(5.08%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N21 -->
<g id="edge24" class="edge">
<title>N20&#45;&gt;N21</title>
<g id="a_edge24"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.58s)">
<path fill="none" stroke="#000000" d="M1586.9165,-1106.4303C1601.2014,-1100.1427 1615.0797,-1091.8633 1626,-1081 1632.5669,-1074.4674 1637.2299,-1065.7323 1640.518,-1057.1285"/>
<polygon fill="#000000" stroke="#000000" points="1643.854,-1058.188 1643.6744,-1047.5947 1637.2087,-1055.9879 1643.854,-1058.188"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.58s)">
<text text-anchor="middle" x="1652.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N45 -->
<g id="edge116" class="edge">
<title>N20&#45;&gt;N45</title>
<g id="a_edge116"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M1573.3857,-1106.4987C1585.1087,-1103.5071 1597.356,-1100.8095 1609,-1099 1798.8875,-1069.4918 1851.5651,-1113.2867 2041,-1081 2044.0114,-1080.4867 2104.3416,-1062.0262 2154.726,-1046.5363"/>
<polygon fill="#000000" stroke="#000000" points="2155.7963,-1049.8689 2164.3257,-1043.5839 2153.7386,-1043.1782 2155.7963,-1049.8689"/>
</a>
</g>
<g id="a_edge116&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="2104.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.newarray (0.43s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1680.301,-946 1593.699,-946 1593.699,-908 1680.301,-908 1680.301,-946"/>
<text text-anchor="middle" x="1637" y="-934" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.newarray</text>
<text text-anchor="middle" x="1637" y="-924" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.18%)</text>
<text text-anchor="middle" x="1637" y="-914" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.43s(3.77%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N24 -->
<g id="edge29" class="edge">
<title>N21&#45;&gt;N24</title>
<g id="a_edge29"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.43s)">
<path fill="none" stroke="#000000" d="M1645.5039,-1003.1488C1643.9635,-989.355 1641.9696,-971.5004 1640.2997,-956.5472"/>
<polygon fill="#000000" stroke="#000000" points="1643.7405,-955.8211 1639.1521,-946.2714 1636.7837,-956.5981 1643.7405,-955.8211"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.newarray (0.43s)">
<text text-anchor="middle" x="1660.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.43s</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N25 -->
<g id="edge107" class="edge">
<title>N21&#45;&gt;N25</title>
<g id="a_edge107"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.05s)">
<path fill="none" stroke="#000000" d="M1666.8337,-1003.1645C1671.6532,-997.093 1676.6884,-990.4185 1681,-984 1704.3013,-949.3125 1699.5134,-933.4747 1727,-902 1789.6205,-830.2938 1811.2948,-812.3105 1898,-773 1936.1508,-755.7032 1981.1894,-745.0491 2020.0827,-738.5251"/>
<polygon fill="#000000" stroke="#000000" points="2021.0355,-741.9169 2030.3528,-736.8733 2019.9239,-735.0058 2021.0355,-741.9169"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.05s)">
<text text-anchor="middle" x="1771.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.newdefer (0.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1704.7816,-228 1575.2184,-228 1575.2184,-172 1704.7816,-172 1704.7816,-228"/>
<text text-anchor="middle" x="1640" y="-211.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="1640" y="-195.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.33s(2.89%)</text>
<text text-anchor="middle" x="1640" y="-179.2" font-family="Times,serif" font-size="16.00" fill="#000000">of 0.34s(2.98%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N28 -->
<g id="edge34" class="edge">
<title>N22&#45;&gt;N28</title>
<g id="a_edge34"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.34s)">
<path fill="none" stroke="#000000" d="M1640,-278.8245C1640,-266.6568 1640,-251.7906 1640,-238.2612"/>
<polygon fill="#000000" stroke="#000000" points="1643.5001,-238.2424 1640,-228.2425 1636.5001,-238.2425 1643.5001,-238.2424"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.34s)">
<text text-anchor="middle" x="1656.7241" y="-248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N31 -->
<g id="edge123" class="edge">
<title>N22&#45;&gt;N31</title>
<g id="a_edge123"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<path fill="none" stroke="#000000" d="M1716.3155,-280.0885C1719.2394,-279.3531 1722.1417,-278.6534 1725,-278 1876.7109,-243.3175 2057.5435,-219.6396 2157.0492,-208.1032"/>
<polygon fill="#000000" stroke="#000000" points="2157.4746,-211.5774 2167.0091,-206.9576 2156.6746,-204.6232 2157.4746,-211.5774"/>
</a>
</g>
<g id="a_edge123&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.02s)">
<text text-anchor="middle" x="1894.7241" y="-248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N7 -->
<g id="edge30" class="edge">
<title>N24&#45;&gt;N7</title>
<g id="a_edge30"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.41s)">
<path fill="none" stroke="#000000" d="M1638.28,-907.7272C1639.4539,-877.2558 1638.2687,-816.9096 1615,-773 1590.4071,-726.5915 1546.9306,-686.7517 1509.2226,-658.3126"/>
<polygon fill="#000000" stroke="#000000" points="1510.896,-655.1965 1500.7767,-652.0578 1506.7299,-660.8219 1510.896,-655.1965"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.newarray &#45;&gt; runtime.mallocgc (0.41s)">
<text text-anchor="middle" x="1638.7241" y="-775.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.41s</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N31 -->
<g id="edge55" class="edge">
<title>N25&#45;&gt;N31</title>
<g id="a_edge55"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.16s)">
<path fill="none" stroke="#000000" d="M2193.7656,-722.1904C2431.5393,-702.7566 3106,-639.4806 3106,-547 3106,-547 3106,-547 3106,-304 3106,-223.8477 2518.9166,-205.2198 2307.0797,-201.1072"/>
<polygon fill="#000000" stroke="#000000" points="2307.0423,-197.606 2296.978,-200.9166 2306.9102,-204.6047 2307.0423,-197.606"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.16s)">
<text text-anchor="middle" x="3122.7241" y="-450.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.16s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N9 -->
<g id="edge33" class="edge">
<title>N27&#45;&gt;N9</title>
<g id="a_edge33"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.36s)">
<path fill="none" stroke="#000000" d="M1771.9805,-484.497C1837.9711,-467.7375 1940.0767,-441.8059 2009.5909,-424.1515"/>
<polygon fill="#000000" stroke="#000000" points="2010.7717,-427.4628 2019.6024,-421.6089 2009.0486,-420.6782 2010.7717,-427.4628"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (0.36s)">
<text text-anchor="middle" x="1924.7241" y="-450.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="runtime.freedefer (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3788.0176,-219 3667.9824,-219 3667.9824,-181 3788.0176,-181 3788.0176,-219"/>
<text text-anchor="middle" x="3728" y="-203" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.freedefer</text>
<text text-anchor="middle" x="3728" y="-188" font-family="Times,serif" font-size="15.00" fill="#000000">0.26s(2.28%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N33 -->
<g id="edge38" class="edge">
<title>N29&#45;&gt;N33</title>
<g id="a_edge38"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.26s)">
<path fill="none" stroke="#000000" d="M3728,-281.9443C3728,-266.6839 3728,-246.2041 3728,-229.5363"/>
<polygon fill="#000000" stroke="#000000" points="3731.5001,-229.2267 3728,-219.2267 3724.5001,-229.2268 3731.5001,-229.2267"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.deferreturn.func1 &#45;&gt; runtime.freedefer (0.26s)">
<text text-anchor="middle" x="3744.7241" y="-248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.26s</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N15 -->
<g id="edge41" class="edge">
<title>N30&#45;&gt;N15</title>
<g id="a_edge41"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.23s)">
<path fill="none" stroke="#000000" d="M2511.9563,-1103.4704C2520.0321,-1101.7337 2528.1506,-1100.1935 2536,-1099 2694.3797,-1074.9192 2739.2191,-1113.9201 2896,-1081 2935.098,-1072.7904 2953.5347,-1078.9272 2980,-1049 3003.7316,-1022.1641 3005.7847,-1004.4618 2996,-970 2979.6684,-912.4797 2962.7564,-888.8155 2906,-870 2837.3118,-847.229 2348.3973,-833.9174 2173.7861,-829.847"/>
<polygon fill="#000000" stroke="#000000" points="2173.8094,-826.3467 2163.7312,-829.6147 2173.6477,-833.3448 2173.8094,-826.3467"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="main.(intPusher).(main.pushInt)&#45;fm &#45;&gt; runtime.convT2I (0.23s)">
<text text-anchor="middle" x="3015.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.23s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.schedule (0.28s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1320.7699,-945 1247.2301,-945 1247.2301,-909 1320.7699,-909 1320.7699,-945"/>
<text text-anchor="middle" x="1284" y="-928.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="1284" y="-920.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.28s(2.45%)</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="runtime.findrunnable (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1609.1505,-847.5 1508.8495,-847.5 1508.8495,-809.5 1609.1505,-809.5 1609.1505,-847.5"/>
<text text-anchor="middle" x="1559" y="-835.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.findrunnable</text>
<text text-anchor="middle" x="1559" y="-825.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.088%)</text>
<text text-anchor="middle" x="1559" y="-815.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.13s(1.14%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N55 -->
<g id="edge64" class="edge">
<title>N32&#45;&gt;N55</title>
<g id="a_edge64"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.13s)">
<path fill="none" stroke="#000000" d="M1320.8309,-922.3876C1359.5875,-916.6689 1421.8101,-905.0043 1472,-884 1490.8252,-876.1217 1510.122,-864.2665 1525.7438,-853.5332"/>
<polygon fill="#000000" stroke="#000000" points="1527.8491,-856.3315 1534.0181,-847.718 1523.8241,-850.6044 1527.8491,-856.3315"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.13s)">
<text text-anchor="middle" x="1516.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.runSafePointFn (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1330.6055,-846.5 1237.3945,-846.5 1237.3945,-810.5 1330.6055,-810.5 1330.6055,-846.5"/>
<text text-anchor="middle" x="1284" y="-830.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.runSafePointFn</text>
<text text-anchor="middle" x="1284" y="-822.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.79%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N78 -->
<g id="edge89" class="edge">
<title>N32&#45;&gt;N78</title>
<g id="a_edge89"><a xlink:title="runtime.schedule &#45;&gt; runtime.runSafePointFn (0.09s)">
<path fill="none" stroke="#000000" d="M1284,-908.9336C1284,-894.4456 1284,-873.8416 1284,-857.1145"/>
<polygon fill="#000000" stroke="#000000" points="1287.5001,-856.7854 1284,-846.7855 1280.5001,-856.7855 1287.5001,-856.7854"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.runSafePointFn (0.09s)">
<text text-anchor="middle" x="1300.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.getitab (0.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2605.0974,-952 2498.9026,-952 2498.9026,-902 2605.0974,-902 2605.0974,-952"/>
<text text-anchor="middle" x="2552" y="-936.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.getitab</text>
<text text-anchor="middle" x="2552" y="-922.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.20s(1.75%)</text>
<text text-anchor="middle" x="2552" y="-908.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.26s(2.28%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N41 -->
<g id="edge99" class="edge">
<title>N35&#45;&gt;N41</title>
<g id="a_edge99"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.06s)">
<path fill="none" stroke="#000000" d="M1957.3404,-1106.4009C1964.7042,-1103.4388 1972.4707,-1100.7769 1980,-1099 2052.5587,-1081.8766 2244.9699,-1106.5688 2315,-1081 2324.703,-1077.4573 2323.9504,-1070.8098 2333.5518,-1067 2401.8928,-1039.8822 2426.9417,-1067.8836 2498,-1049 2498.0988,-1048.9737 2498.1977,-1048.9473 2498.2966,-1048.9208"/>
<polygon fill="#000000" stroke="#000000" points="2499.0566,-1052.349 2507.5831,-1046.0602 2496.9958,-1045.6592 2499.0566,-1052.349"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.assertI2I (0.06s)">
<text text-anchor="middle" x="2349.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="main.(*Integer).Multiply (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2488.9731,-1046 2363.0269,-1046 2363.0269,-1005 2488.9731,-1005 2488.9731,-1046"/>
<text text-anchor="middle" x="2426" y="-1033.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*Integer).Multiply</text>
<text text-anchor="middle" x="2426" y="-1022.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.26%)</text>
<text text-anchor="middle" x="2426" y="-1011.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(1.05%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N58 -->
<g id="edge67" class="edge">
<title>N35&#45;&gt;N58</title>
<g id="a_edge67"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.12s)">
<path fill="none" stroke="#000000" d="M1957.3562,-1106.467C1964.7185,-1103.4985 1972.4804,-1100.8173 1980,-1099 2100.7807,-1069.8105 2140.6651,-1118.9057 2259,-1081 2270.235,-1077.4011 2270.7237,-1071.6828 2281.5518,-1067 2310.0289,-1054.6845 2319.1694,-1057.5296 2349,-1049 2350.4278,-1048.5917 2351.8697,-1048.1769 2353.3222,-1047.7567"/>
<polygon fill="#000000" stroke="#000000" points="2354.4067,-1051.0862 2363.0217,-1044.9192 2352.4412,-1044.3678 2354.4067,-1051.0862"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; main.(*Integer).Multiply (0.12s)">
<text text-anchor="middle" x="2297.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N63 -->
<g id="edge115" class="edge">
<title>N35&#45;&gt;N63</title>
<g id="a_edge115"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<path fill="none" stroke="#000000" d="M1956.9938,-1106.4598C1964.4567,-1103.4514 1972.3477,-1100.7577 1980,-1099 2166.8564,-1056.0791 2223.6246,-1121.5954 2411,-1081 2427.1934,-1077.4917 2429.491,-1071.0727 2445.5518,-1067 2512.1192,-1050.1198 2534.7911,-1066.247 2605.5834,-1048.6379"/>
<polygon fill="#000000" stroke="#000000" points="2606.6346,-1051.9806 2615.418,-1046.056 2604.857,-1045.21 2606.6346,-1051.9806"/>
</a>
</g>
<g id="a_edge115&#45;label"><a xlink:title="main.executeMultiply &#45;&gt; runtime.convI2I (0.03s)">
<text text-anchor="middle" x="2461.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="main.Integer.Add (0.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2910.4839,-947.5 2817.5161,-947.5 2817.5161,-906.5 2910.4839,-906.5 2910.4839,-947.5"/>
<text text-anchor="middle" x="2864" y="-934.7" font-family="Times,serif" font-size="11.00" fill="#000000">main.Integer.Add</text>
<text text-anchor="middle" x="2864" y="-923.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.04s(0.35%)</text>
<text text-anchor="middle" x="2864" y="-912.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.19s(1.66%)</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N44 -->
<g id="edge48" class="edge">
<title>N36&#45;&gt;N44</title>
<g id="a_edge48"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.19s)">
<path fill="none" stroke="#000000" d="M2893.1533,-1004.6107C2887.9677,-990.8059 2881.0881,-972.4914 2875.3142,-957.1204"/>
<polygon fill="#000000" stroke="#000000" points="2878.5015,-955.652 2871.7086,-947.5214 2871.9486,-958.1136 2878.5015,-955.652"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="main.(*Integer).Add &#45;&gt; main.Integer.Add (0.19s)">
<text text-anchor="middle" x="2900.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N25 -->
<g id="edge53" class="edge">
<title>N37&#45;&gt;N25</title>
<g id="a_edge53"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.17s)">
<path fill="none" stroke="#000000" d="M2019.2425,-807.7799C2034.6822,-794.5836 2055.0375,-777.1859 2072.7453,-762.0511"/>
<polygon fill="#000000" stroke="#000000" points="2075.3401,-764.4375 2080.6678,-755.2797 2070.792,-759.1163 2075.3401,-764.4375"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.17s)">
<text text-anchor="middle" x="2074.7241" y="-775.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N15 -->
<g id="edge111" class="edge">
<title>N39&#45;&gt;N15</title>
<g id="a_edge111"><a xlink:title="main.executeLessThan &#45;&gt; runtime.convT2I (0.04s)">
<path fill="none" stroke="#000000" d="M1723.2502,-1104.9708C1730.098,-1102.5903 1737.1546,-1100.4862 1744,-1099 1782.379,-1090.6675 2069.1134,-1108.6536 2097,-1081 2126.9925,-1051.2581 2120.3794,-923.6344 2115.2392,-862.03"/>
<polygon fill="#000000" stroke="#000000" points="2118.7231,-861.6918 2114.3693,-852.0329 2111.7495,-862.2987 2118.7231,-861.6918"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; runtime.convT2I (0.04s)">
<text text-anchor="middle" x="2136.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N41 -->
<g id="edge104" class="edge">
<title>N39&#45;&gt;N41</title>
<g id="a_edge104"><a xlink:title="main.executeLessThan &#45;&gt; runtime.assertI2I (0.05s)">
<path fill="none" stroke="#000000" d="M1723.2456,-1104.9497C1730.0941,-1102.5723 1737.1521,-1100.4747 1744,-1099 1826.2105,-1081.2959 2042.9179,-1109.6009 2122,-1081 2131.7138,-1077.4869 2130.8428,-1070.5264 2140.5518,-1067 2215.3072,-1039.8484 2420.5679,-1067.1621 2498,-1049 2498.1058,-1048.9752 2498.2116,-1048.9502 2498.3174,-1048.925"/>
<polygon fill="#000000" stroke="#000000" points="2499.5944,-1052.1998 2508.2399,-1046.0756 2497.6623,-1045.4717 2499.5944,-1052.1998"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.executeLessThan &#45;&gt; runtime.assertI2I (0.05s)">
<text text-anchor="middle" x="2157.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime._System (0.21s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2084.7699,-519 2011.2301,-519 2011.2301,-483 2084.7699,-483 2084.7699,-519"/>
<text text-anchor="middle" x="2048" y="-502.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="2048" y="-494.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.21s(1.84%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N9 -->
<g id="edge44" class="edge">
<title>N40&#45;&gt;N9</title>
<g id="a_edge44"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.21s)">
<path fill="none" stroke="#000000" d="M2054.5529,-482.7939C2058.2834,-472.5429 2063.0895,-459.5237 2067.5518,-448 2068.5881,-445.3235 2069.674,-442.5593 2070.7754,-439.7835"/>
<polygon fill="#000000" stroke="#000000" points="2074.0598,-440.9967 2074.5313,-430.4123 2067.5622,-438.3925 2074.0598,-440.9967"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.21s)">
<text text-anchor="middle" x="2084.7241" y="-450.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N34 -->
<g id="edge50" class="edge">
<title>N41&#45;&gt;N34</title>
<g id="a_edge50"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.18s)">
<path fill="none" stroke="#000000" d="M2552,-1004.6107C2552,-992.3703 2552,-976.5845 2552,-962.4488"/>
<polygon fill="#000000" stroke="#000000" points="2555.5001,-962.0467 2552,-952.0468 2548.5001,-962.0468 2555.5001,-962.0467"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.assertI2I &#45;&gt; runtime.getitab (0.18s)">
<text text-anchor="middle" x="2568.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.18s</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N15 -->
<g id="edge100" class="edge">
<title>N42&#45;&gt;N15</title>
<g id="a_edge100"><a xlink:title="main.isZeroPred &#45;&gt; runtime.convT2I (0.06s)">
<path fill="none" stroke="#000000" d="M1843.9355,-1103.444C1848.5945,-1101.6864 1853.3379,-1100.1493 1858,-1099 2019.1462,-1059.2739 2069.6379,-1119.8399 2231,-1081 2245.6979,-1077.4622 2247.9217,-1072.5086 2262,-1067 2285.5589,-1057.7817 2301.2079,-1069.523 2316,-1049 2370.1363,-973.8899 2251.0776,-896.9115 2173.006,-856.7785"/>
<polygon fill="#000000" stroke="#000000" points="2174.2054,-853.4628 2163.7026,-852.0695 2171.0442,-859.7084 2174.2054,-853.4628"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.isZeroPred &#45;&gt; runtime.convT2I (0.06s)">
<text text-anchor="middle" x="2339.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N45 -->
<g id="edge121" class="edge">
<title>N42&#45;&gt;N45</title>
<g id="a_edge121"><a xlink:title="main.isZeroPred &#45;&gt; main.(*machine).popValue (0.02s)">
<path fill="none" stroke="#000000" d="M1843.945,-1103.4822C1848.6021,-1101.7172 1853.3425,-1100.1679 1858,-1099 1927.0847,-1081.6767 2114.5914,-1113.4366 2178,-1081 2190.4612,-1074.6255 2200.6798,-1063.0881 2208.2118,-1052.1775"/>
<polygon fill="#000000" stroke="#000000" points="2211.2143,-1053.9791 2213.6679,-1043.6723 2205.3224,-1050.1994 2211.2143,-1053.9791"/>
</a>
</g>
<g id="a_edge121&#45;label"><a xlink:title="main.isZeroPred &#45;&gt; main.(*machine).popValue (0.02s)">
<text text-anchor="middle" x="2210.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N15 -->
<g id="edge82" class="edge">
<title>N44&#45;&gt;N15</title>
<g id="a_edge82"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.09s)">
<path fill="none" stroke="#000000" d="M2856.0295,-906.4702C2849.881,-893.6272 2840.0335,-878.043 2826,-870 2770.2293,-838.0363 2337.5006,-830.6292 2174.1484,-828.9655"/>
<polygon fill="#000000" stroke="#000000" points="2173.8189,-825.4622 2163.785,-828.8641 2173.7503,-832.4619 2173.8189,-825.4622"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.convT2I (0.09s)">
<text text-anchor="middle" x="2857.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N37 -->
<g id="edge110" class="edge">
<title>N44&#45;&gt;N37</title>
<g id="a_edge110"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M2817.4515,-913.6164C2801.2764,-909.3691 2782.9437,-905.0019 2766,-902 2627.0019,-877.374 2590.7867,-880.296 2450,-870 2361.4796,-863.5263 2137.5942,-871.4736 2051,-852 2050.7814,-851.9508 2050.5626,-851.9009 2050.3436,-851.8501"/>
<polygon fill="#000000" stroke="#000000" points="2050.9804,-848.3946 2040.4086,-849.0921 2049.1079,-855.1396 2050.9804,-848.3946"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="main.Integer.Add &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="2656.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N38 -->
<g id="edge52" class="edge">
<title>N46&#45;&gt;N38</title>
<g id="a_edge52"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.17s)">
<path fill="none" stroke="#000000" d="M1023.0592,-298.2976C850.815,-280.4199 321.9917,-225.5321 139.053,-206.5444"/>
<polygon fill="#000000" stroke="#000000" points="139.361,-203.0577 129.053,-205.5065 138.6382,-210.0203 139.361,-203.0577"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.17s)">
<text text-anchor="middle" x="653.7241" y="-248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N15 -->
<g id="edge57" class="edge">
<title>N48&#45;&gt;N15</title>
<g id="a_edge57"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.14s)">
<path fill="none" stroke="#000000" d="M2756.1406,-1006.1992C2727.9192,-978.5296 2671.8075,-928.0598 2614,-902 2536.54,-867.0808 2290.7221,-843.0493 2174.2959,-833.3273"/>
<polygon fill="#000000" stroke="#000000" points="2174.3704,-829.8216 2164.1161,-832.4863 2173.7939,-836.7979 2174.3704,-829.8216"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="main.(*Integer).Negate &#45;&gt; runtime.convT2I (0.14s)">
<text text-anchor="middle" x="2708.7241" y="-922.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N37 -->
<g id="edge108" class="edge">
<title>N49&#45;&gt;N37</title>
<g id="a_edge108"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<path fill="none" stroke="#000000" d="M2297.744,-1104.9793C2308.494,-1102.5975 2319.4824,-1100.4909 2330,-1099 2546.2075,-1068.3528 2604.4497,-1109.1232 2821,-1081 2885.155,-1072.6682 2922.5946,-1099.5241 2963,-1049 2976.0465,-1032.6863 2967.2984,-1022.4419 2963,-1002 2948.6416,-933.7155 2943.7309,-893.4177 2878,-870 2791.4199,-839.1545 2140.9002,-871.1186 2051,-852 2050.6616,-851.928 2050.3227,-851.8541 2049.9833,-851.7781"/>
<polygon fill="#000000" stroke="#000000" points="2050.6438,-848.3307 2040.0759,-849.0861 2048.8083,-855.0858 2050.6438,-848.3307"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.04s)">
<text text-anchor="middle" x="2975.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.04s</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N45 -->
<g id="edge113" class="edge">
<title>N49&#45;&gt;N45</title>
<g id="a_edge113"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<path fill="none" stroke="#000000" d="M2299.8332,-1104.9956C2309.9252,-1102.7221 2320.1772,-1100.6401 2330,-1099 2352.9899,-1095.1613 2523.2416,-1098.1739 2539,-1081 2543.2068,-1076.4153 2543.1813,-1071.6079 2539,-1067 2525.1215,-1051.7056 2374.4584,-1051.8256 2354,-1049 2341.8993,-1047.3287 2329.2097,-1045.3455 2316.6905,-1043.2505"/>
<polygon fill="#000000" stroke="#000000" points="2317.1469,-1039.7779 2306.7014,-1041.5501 2315.9722,-1046.6786 2317.1469,-1039.7779"/>
</a>
</g>
<g id="a_edge113&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.03s)">
<text text-anchor="middle" x="2558.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.lock (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3637.6833,-220.5 3550.3167,-220.5 3550.3167,-179.5 3637.6833,-179.5 3637.6833,-220.5"/>
<text text-anchor="middle" x="3594" y="-207.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="3594" y="-196.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.26%)</text>
<text text-anchor="middle" x="3594" y="-185.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.13s(1.14%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N56 -->
<g id="edge122" class="edge">
<title>N50&#45;&gt;N56</title>
<g id="a_edge122"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.lock (0.02s)">
<path fill="none" stroke="#000000" d="M3256.4693,-287.9779C3334.1352,-267.7342 3466.5439,-233.2216 3540.3223,-213.9912"/>
<polygon fill="#000000" stroke="#000000" points="3541.5379,-217.2913 3550.3318,-211.3822 3539.7723,-210.5177 3541.5379,-217.2913"/>
</a>
</g>
<g id="a_edge122&#45;label"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.lock (0.02s)">
<text text-anchor="middle" x="3422.7241" y="-248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="runtime.(*mheap).allocSpanLocked (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3282.2218,-220.5 3107.7782,-220.5 3107.7782,-179.5 3282.2218,-179.5 3282.2218,-220.5"/>
<text text-anchor="middle" x="3195" y="-207.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.(*mheap).allocSpanLocked</text>
<text text-anchor="middle" x="3195" y="-196.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.44%)</text>
<text text-anchor="middle" x="3195" y="-185.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.09s(0.79%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N75 -->
<g id="edge84" class="edge">
<title>N50&#45;&gt;N75</title>
<g id="a_edge84"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.09s)">
<path fill="none" stroke="#000000" d="M3195,-284.9248C3195,-269.8707 3195,-248.5624 3195,-231.0563"/>
<polygon fill="#000000" stroke="#000000" points="3198.5001,-230.7375 3195,-220.7376 3191.5001,-230.7376 3198.5001,-230.7375"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.(*mheap).alloc_m &#45;&gt; runtime.(*mheap).allocSpanLocked (0.09s)">
<text text-anchor="middle" x="3211.7241" y="-248.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.mcall (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1227.7699,-1043.5 1154.2301,-1043.5 1154.2301,-1007.5 1227.7699,-1007.5 1227.7699,-1043.5"/>
<text text-anchor="middle" x="1191" y="-1027.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="1191" y="-1019.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(1.23%)</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N32 -->
<g id="edge60" class="edge">
<title>N51&#45;&gt;N32</title>
<g id="a_edge60"><a xlink:title="runtime.mcall ... runtime.schedule (0.14s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1208.0576,-1007.4336C1222.5183,-992.1178 1243.4323,-969.9669 1259.6531,-952.7868"/>
<polygon fill="#000000" stroke="#000000" points="1262.4153,-954.9595 1266.7356,-945.2855 1257.3255,-950.1538 1262.4153,-954.9595"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.mcall ... runtime.schedule (0.14s)">
<text text-anchor="middle" x="1260.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="runtime.morestack (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1321.7582,-1043.5 1246.2418,-1043.5 1246.2418,-1007.5 1321.7582,-1007.5 1321.7582,-1043.5"/>
<text text-anchor="middle" x="1284" y="-1027.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="1284" y="-1019.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.14s(1.23%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N32 -->
<g id="edge61" class="edge">
<title>N52&#45;&gt;N32</title>
<g id="a_edge61"><a xlink:title="runtime.morestack ... runtime.schedule (0.14s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1284,-1007.4336C1284,-992.9456 1284,-972.3416 1284,-955.6145"/>
<polygon fill="#000000" stroke="#000000" points="1287.5001,-955.2854 1284,-945.2855 1280.5001,-955.2855 1287.5001,-955.2854"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.morestack ... runtime.schedule (0.14s)">
<text text-anchor="middle" x="1300.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="runtime.usleep (0.14s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3640.3956,-36 3547.6044,-36 3547.6044,0 3640.3956,0 3640.3956,-36"/>
<text text-anchor="middle" x="3594" y="-20.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="3594" y="-7.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.14s(1.23%)</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.makemap (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="842.7235,-947.5 747.2765,-947.5 747.2765,-906.5 842.7235,-906.5 842.7235,-947.5"/>
<text text-anchor="middle" x="795" y="-934.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.makemap</text>
<text text-anchor="middle" x="795" y="-923.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.03s(0.26%)</text>
<text text-anchor="middle" x="795" y="-912.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.12s(1.05%)</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N59 -->
<g id="edge65" class="edge">
<title>N54&#45;&gt;N59</title>
<g id="a_edge65"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.12s)">
<path fill="none" stroke="#000000" d="M795,-1006.0396C795,-992.3734 795,-973.8054 795,-958.1002"/>
<polygon fill="#000000" stroke="#000000" points="798.5001,-957.7802 795,-947.7802 791.5001,-957.7803 798.5001,-957.7802"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func3 &#45;&gt; runtime.makemap (0.12s)">
<text text-anchor="middle" x="811.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="runtime.stopm (0.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1880.7699,-746.5 1807.2301,-746.5 1807.2301,-710.5 1880.7699,-710.5 1880.7699,-746.5"/>
<text text-anchor="middle" x="1844" y="-730.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="1844" y="-722.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.12s(1.05%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N60 -->
<g id="edge70" class="edge">
<title>N55&#45;&gt;N60</title>
<g id="a_edge70"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.11s)">
<path fill="none" stroke="#000000" d="M1562.0696,-809.4453C1565.0636,-797.1748 1570.8829,-781.9062 1582.0645,-773 1614.5144,-747.1534 1730.6827,-735.6587 1796.9001,-731.108"/>
<polygon fill="#000000" stroke="#000000" points="1797.3306,-734.5873 1807.0783,-730.4361 1796.8694,-727.6025 1797.3306,-734.5873"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.stopm (0.11s)">
<text text-anchor="middle" x="1599.4678" y="-775.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.osyield (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3630.9781,-122 3557.0219,-122 3557.0219,-86 3630.9781,-86 3630.9781,-122"/>
<text text-anchor="middle" x="3594" y="-105.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="3594" y="-97.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.11s(0.96%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N66 -->
<g id="edge97" class="edge">
<title>N56&#45;&gt;N66</title>
<g id="a_edge97"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.07s)">
<path fill="none" stroke="#000000" d="M3594,-179.1694C3594,-165.502 3594,-147.4526 3594,-132.4662"/>
<polygon fill="#000000" stroke="#000000" points="3597.5001,-132.2015 3594,-122.2015 3590.5001,-132.2015 3597.5001,-132.2015"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.07s)">
<text text-anchor="middle" x="3610.7241" y="-142.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="strings.ContainsRune (0.13s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3823.4193,-1046 3712.5807,-1046 3712.5807,-1005 3823.4193,-1005 3823.4193,-1046"/>
<text text-anchor="middle" x="3768" y="-1033.2" font-family="Times,serif" font-size="11.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="3768" y="-1022.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.05s(0.44%)</text>
<text text-anchor="middle" x="3768" y="-1011.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.13s(1.14%)</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="main.Integer.Multiply (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2475.7688,-946 2372.2312,-946 2372.2312,-908 2475.7688,-908 2475.7688,-946"/>
<text text-anchor="middle" x="2424" y="-934" font-family="Times,serif" font-size="10.00" fill="#000000">main.Integer.Multiply</text>
<text text-anchor="middle" x="2424" y="-924" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.088%)</text>
<text text-anchor="middle" x="2424" y="-914" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.09s(0.79%)</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N73 -->
<g id="edge77" class="edge">
<title>N58&#45;&gt;N73</title>
<g id="a_edge77"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.09s)">
<path fill="none" stroke="#000000" d="M2425.5759,-1004.6107C2425.2908,-990.5703 2424.911,-971.8649 2424.5957,-956.336"/>
<polygon fill="#000000" stroke="#000000" points="2428.092,-956.1159 2424.3896,-946.189 2421.0934,-956.258 2428.092,-956.1159"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="main.(*Integer).Multiply &#45;&gt; main.Integer.Multiply (0.09s)">
<text text-anchor="middle" x="2441.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N8 -->
<g id="edge87" class="edge">
<title>N59&#45;&gt;N8</title>
<g id="a_edge87"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.09s)">
<path fill="none" stroke="#000000" d="M823.5426,-906.4173C872.3785,-872.3608 976.277,-804.8864 1075,-773 1128.523,-755.7127 1281.8285,-741.0395 1371.166,-733.6422"/>
<polygon fill="#000000" stroke="#000000" points="1371.5201,-737.125 1381.2007,-732.8196 1370.9481,-730.1484 1371.5201,-737.125"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.makemap &#45;&gt; runtime.newobject (0.09s)">
<text text-anchor="middle" x="1010.7241" y="-824.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.notesleep (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2065.7699,-630 1992.2301,-630 1992.2301,-594 2065.7699,-594 2065.7699,-630"/>
<text text-anchor="middle" x="2029" y="-613.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notesleep</text>
<text text-anchor="middle" x="2029" y="-605.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.79%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N77 -->
<g id="edge91" class="edge">
<title>N60&#45;&gt;N77</title>
<g id="a_edge91"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.09s)">
<path fill="none" stroke="#000000" d="M1872.9063,-710.2969C1904.9462,-690.1203 1956.7159,-657.5194 1991.7677,-635.4463"/>
<polygon fill="#000000" stroke="#000000" points="1993.6998,-638.3658 2000.2967,-630.0753 1989.9697,-632.4424 1993.6998,-638.3658"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.09s)">
<text text-anchor="middle" x="1953.7241" y="-672.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N15 -->
<g id="edge103" class="edge">
<title>N61&#45;&gt;N15</title>
<g id="a_edge103"><a xlink:title="main.(*machine).loadBooleanWords.func3 &#45;&gt; runtime.convT2I (0.05s)">
<path fill="none" stroke="#000000" d="M1888.3884,-907.9022C1930.8039,-893.8645 1989.7835,-874.0076 2050.3993,-852.1653"/>
<polygon fill="#000000" stroke="#000000" points="2051.9256,-855.3353 2060.1395,-848.6433 2049.5453,-848.7524 2051.9256,-855.3353"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.(*machine).loadBooleanWords.func3 &#45;&gt; runtime.convT2I (0.05s)">
<text text-anchor="middle" x="2013.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N37 -->
<g id="edge112" class="edge">
<title>N61&#45;&gt;N37</title>
<g id="a_edge112"><a xlink:title="main.(*machine).loadBooleanWords.func3 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1855.789,-907.8262C1871.7712,-896.2914 1892.928,-881.6384 1912.5518,-870 1921.9437,-864.4299 1932.1772,-858.8847 1942.1389,-853.746"/>
<polygon fill="#000000" stroke="#000000" points="1943.8498,-856.8026 1951.179,-849.1519 1940.6784,-850.5622 1943.8498,-856.8026"/>
</a>
</g>
<g id="a_edge112&#45;label"><a xlink:title="main.(*machine).loadBooleanWords.func3 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="1929.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N57 -->
<g id="edge101" class="edge">
<title>N62&#45;&gt;N57</title>
<g id="a_edge101"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.06s)">
<path fill="none" stroke="#000000" d="M3287.3581,-1104.9572C3292.5206,-1102.7046 3297.8227,-1100.6384 3303,-1099 3441.2445,-1055.2509 3611.2045,-1036.8395 3702.526,-1029.6584"/>
<polygon fill="#000000" stroke="#000000" points="3703.0241,-1033.1306 3712.7277,-1028.8773 3702.4897,-1026.151 3703.0241,-1033.1306"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.06s)">
<text text-anchor="middle" x="3443.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N34 -->
<g id="edge102" class="edge">
<title>N63&#45;&gt;N34</title>
<g id="a_edge102"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.06s)">
<path fill="none" stroke="#000000" d="M2636.5693,-1004.8512C2622.2449,-991.6647 2603.373,-974.292 2587.0915,-959.3039"/>
<polygon fill="#000000" stroke="#000000" points="2589.0659,-956.3642 2579.3381,-952.1664 2584.3249,-961.5143 2589.0659,-956.3642"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="runtime.convI2I &#45;&gt; runtime.getitab (0.06s)">
<text text-anchor="middle" x="2627.7241" y="-972.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N56 -->
<g id="edge96" class="edge">
<title>N64&#45;&gt;N56</title>
<g id="a_edge96"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.07s)">
<path fill="none" stroke="#000000" d="M2465.0934,-1240.0223C2705.333,-1231.8982 3601.9622,-1200.7339 3728,-1184 3792.5609,-1175.4283 3830.2856,-1202.8323 3871,-1152 3932.1424,-1075.6632 3666.3896,-384.508 3605.9871,-230.3793"/>
<polygon fill="#000000" stroke="#000000" points="3609.0678,-228.6487 3602.1552,-220.6196 3602.552,-231.207 3609.0678,-228.6487"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="runtime.gcFlushBgCredit &#45;&gt; runtime.lock (0.07s)">
<text text-anchor="middle" x="3810.7241" y="-724.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime.mProf_Malloc (0.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="240.9287,-424 133.0713,-424 133.0713,-386 240.9287,-386 240.9287,-424"/>
<text text-anchor="middle" x="187" y="-412" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.mProf_Malloc</text>
<text text-anchor="middle" x="187" y="-402" font-family="Times,serif" font-size="10.00" fill="#000000">0.01s(0.088%)</text>
<text text-anchor="middle" x="187" y="-392" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.11s(0.96%)</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="runtime.stkbucket (0.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="241.5084,-322 132.4916,-322 132.4916,-286 241.5084,-286 241.5084,-322"/>
<text text-anchor="middle" x="187" y="-306.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.stkbucket</text>
<text text-anchor="middle" x="187" y="-293.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.10s(0.88%)</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N70 -->
<g id="edge75" class="edge">
<title>N65&#45;&gt;N70</title>
<g id="a_edge75"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.10s)">
<path fill="none" stroke="#000000" d="M187,-385.5262C187,-370.4789 187,-349.4312 187,-332.4913"/>
<polygon fill="#000000" stroke="#000000" points="190.5001,-332.0567 187,-322.0568 183.5001,-332.0568 190.5001,-332.0567"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="runtime.mProf_Malloc &#45;&gt; runtime.stkbucket (0.10s)">
<text text-anchor="middle" x="203.7241" y="-350.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N53 -->
<g id="edge72" class="edge">
<title>N66&#45;&gt;N53</title>
<g id="a_edge72"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.11s)">
<path fill="none" stroke="#000000" d="M3594,-85.7616C3594,-74.3597 3594,-59.4342 3594,-46.494"/>
<polygon fill="#000000" stroke="#000000" points="3597.5001,-46.2121 3594,-36.2121 3590.5001,-46.2121 3597.5001,-46.2121"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.11s)">
<text text-anchor="middle" x="3610.4678" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N65 -->
<g id="edge73" class="edge">
<title>N67&#45;&gt;N65</title>
<g id="a_edge73"><a xlink:title="runtime.profilealloc &#45;&gt; runtime.mProf_Malloc (0.11s)">
<path fill="none" stroke="#000000" d="M156.1475,-482.9431C161.6312,-469.0896 169.308,-449.6956 175.632,-433.7193"/>
<polygon fill="#000000" stroke="#000000" points="178.9368,-434.8798 179.363,-424.2935 172.4281,-432.3034 178.9368,-434.8798"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.profilealloc &#45;&gt; runtime.mProf_Malloc (0.11s)">
<text text-anchor="middle" x="186.4678" y="-450.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N9 -->
<g id="edge105" class="edge">
<title>N68&#45;&gt;N9</title>
<g id="a_edge105"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.05s)">
<path fill="none" stroke="#000000" d="M218.3051,-1232.6264C154.1915,-1217.5874 37.9795,-1186.2592 14,-1152 .4925,-1132.702 12.3754,-1122.4995 14,-1099 15.1973,-1081.6817 87.3016,-491.8367 100,-480 135.5859,-446.8289 1651.4158,-413.8497 2009.6801,-406.5087"/>
<polygon fill="#000000" stroke="#000000" points="2009.7625,-410.0079 2019.6888,-406.3042 2009.6194,-403.0093 2009.7625,-410.0079"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.05s)">
<text text-anchor="middle" x="67.7241" y="-824.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N37 -->
<g id="edge114" class="edge">
<title>N72&#45;&gt;N37</title>
<g id="a_edge114"><a xlink:title="main.(*machine).loadPredefinedValues.func4 &#45;&gt; runtime.assertI2T (0.03s)">
<path fill="none" stroke="#000000" d="M1908.8234,-1004.8134C1923.0349,-974.9599 1950.2334,-918.0995 1974,-870 1975.8914,-866.1722 1977.8973,-862.1553 1979.8897,-858.1906"/>
<polygon fill="#000000" stroke="#000000" points="1983.0725,-859.6524 1984.4542,-849.148 1976.8234,-856.498 1983.0725,-859.6524"/>
</a>
</g>
<g id="a_edge114&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func4 &#45;&gt; runtime.assertI2T (0.03s)">
<text text-anchor="middle" x="1974.7241" y="-922.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.03s</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N15 -->
<g id="edge98" class="edge">
<title>N73&#45;&gt;N15</title>
<g id="a_edge98"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.06s)">
<path fill="none" stroke="#000000" d="M2421.6432,-907.9188C2419.0304,-895.1978 2413.5358,-879.1824 2402,-870 2367.7478,-842.7355 2248.4195,-833.3732 2173.9272,-830.1651"/>
<polygon fill="#000000" stroke="#000000" points="2173.8605,-826.6596 2163.7271,-829.752 2173.5772,-833.6539 2173.8605,-826.6596"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.convT2I (0.06s)">
<text text-anchor="middle" x="2429.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N37 -->
<g id="edge119" class="edge">
<title>N73&#45;&gt;N37</title>
<g id="a_edge119"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.02s)">
<path fill="none" stroke="#000000" d="M2372.2154,-919.9203C2301.3579,-909.5051 2170.3772,-887.6505 2051.7235,-851.9757"/>
<polygon fill="#000000" stroke="#000000" points="2052.6981,-848.6138 2042.1122,-849.0469 2050.6577,-855.3099 2052.6981,-848.6138"/>
</a>
</g>
<g id="a_edge119&#45;label"><a xlink:title="main.Integer.Multiply &#45;&gt; runtime.assertI2T (0.02s)">
<text text-anchor="middle" x="2188.7241" y="-872.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.02s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N57 -->
<g id="edge95" class="edge">
<title>N74&#45;&gt;N57</title>
<g id="a_edge95"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.07s)">
<path fill="none" stroke="#000000" d="M3807.4172,-1106.4494C3802.1944,-1094.9722 3795.3307,-1080.0912 3789,-1067 3787.1412,-1063.1563 3785.1544,-1059.13 3783.1718,-1055.1605"/>
<polygon fill="#000000" stroke="#000000" points="3786.2396,-1053.4707 3778.6154,-1046.114 3779.9879,-1056.6196 3786.2396,-1053.4707"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.07s)">
<text text-anchor="middle" x="3811.7241" y="-1069.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.semasleep (0.09s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2178.7582,-519 2103.2418,-519 2103.2418,-483 2178.7582,-483 2178.7582,-519"/>
<text text-anchor="middle" x="2141" y="-502.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep</text>
<text text-anchor="middle" x="2141" y="-494.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.09s(0.79%)</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N79 -->
<g id="edge88" class="edge">
<title>N77&#45;&gt;N79</title>
<g id="a_edge88"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.09s)">
<path fill="none" stroke="#000000" d="M2047.4945,-593.6706C2065.9766,-575.3536 2094.5458,-547.0394 2115.2424,-526.5276"/>
<polygon fill="#000000" stroke="#000000" points="2117.839,-528.8819 2122.478,-519.3566 2112.9115,-523.91 2117.839,-528.8819"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.09s)">
<text text-anchor="middle" x="2118.7241" y="-542.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N9 -->
<g id="edge90" class="edge">
<title>N79&#45;&gt;N9</title>
<g id="a_edge90"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.09s)">
<path fill="none" stroke="#000000" d="M2130.4668,-482.9431C2123.2777,-470.6189 2113.5307,-453.9099 2104.9051,-439.123"/>
<polygon fill="#000000" stroke="#000000" points="2107.7742,-437.0951 2099.7122,-430.2209 2101.7277,-440.6223 2107.7742,-437.0951"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.09s)">
<text text-anchor="middle" x="2135.7241" y="-450.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
</g>
</g></svg>

Added performance-testing/yumaikas/report-trigrams.svg.















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: PISC Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/** 
 *  SVGPan library 1.2.1
 * ======================
 *
 * Given an unique existing element with id "viewport" (or when missing, the first g 
 * element), including the the library into any SVG adds the following capabilities:
 *
 *  - Mouse panning
 *  - Mouse zooming (using the wheel)
 *  - Object dragging
 *
 * You can configure the behaviour of the pan/zoom/drag with the variables
 * listed in the CONFIGURATION section of this file.
 *
 * Known issues:
 *
 *  - Zooming (while panning) on Safari has still some issues
 *
 * Releases:
 *
 * 1.2.1, Mon Jul  4 00:33:18 CEST 2011, Andrea Leofreddi
 *	- Fixed a regression with mouse wheel (now working on Firefox 5)
 *	- Working with viewBox attribute (#4)
 *	- Added "use strict;" and fixed resulting warnings (#5)
 *	- Added configuration variables, dragging is disabled by default (#3)
 *
 * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
 *	Fixed a bug with browser mouse handler interaction
 *
 * 1.1, Wed Feb  3 17:39:33 GMT 2010, Zeng Xiaohui
 *	Updated the zoom code to support the mouse wheel on Safari/Chrome
 *
 * 1.0, Andrea Leofreddi
 *	First release
 *
 * This code is licensed under the following BSD license:
 *
 * Copyright 2009-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are
 * permitted provided that the following conditions are met:
 * 
 *    1. Redistributions of source code must retain the above copyright notice, this list of
 *       conditions and the following disclaimer.
 * 
 *    2. Redistributions in binary form must reproduce the above copyright notice, this list
 *       of conditions and the following disclaimer in the documentation and/or other materials
 *       provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those of the
 * authors and should not be interpreted as representing official policies, either expressed
 * or implied, of Andrea Leofreddi.
 */

"use strict";

/// CONFIGURATION 
/// ====>

var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)

/// <====
/// END OF CONFIGURATION 

var root = document.documentElement;

var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;

setupHandlers(root);

/**
 * Register handlers
 */
function setupHandlers(root){
	setAttributes(root, {
		"onmouseup" : "handleMouseUp(evt)",
		"onmousedown" : "handleMouseDown(evt)",
		"onmousemove" : "handleMouseMove(evt)",
		//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
	});

	if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
		window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
	else
		window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}

/**
 * Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
 */
function getRoot(root) {
	if(typeof(svgRoot) == "undefined") {
		var g = null;

		g = root.getElementById("viewport");

		if(g == null)
			g = root.getElementsByTagName('g')[0];

		if(g == null)
			alert('Unable to obtain SVG root element');

		setCTM(g, g.getCTM());

		g.removeAttribute("viewBox");

		svgRoot = g;
	}

	return svgRoot;
}

/**
 * Instance an SVGPoint object with given event coordinates.
 */
function getEventPoint(evt) {
	var p = root.createSVGPoint();

	p.x = evt.clientX;
	p.y = evt.clientY;

	return p;
}

/**
 * Sets the current transform matrix of an element.
 */
function setCTM(element, matrix) {
	var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";

	element.setAttribute("transform", s);
}

/**
 * Dumps a matrix to a string (useful for debug).
 */
function dumpMatrix(matrix) {
	var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n  " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n  0, 0, 1 ]";

	return s;
}

/**
 * Sets attributes of an element.
 */
function setAttributes(element, attributes){
	for (var i in attributes)
		element.setAttributeNS(null, i, attributes[i]);
}

/**
 * Handle mouse wheel event.
 */
function handleMouseWheel(evt) {
	if(!enableZoom)
		return;

	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var delta;

	if(evt.wheelDelta)
		delta = evt.wheelDelta / 3600; // Chrome/Safari
	else
		delta = evt.detail / -90; // Mozilla

	var z = 1 + delta; // Zoom factor: 0.9/1.1

	var g = getRoot(svgDoc);
	
	var p = getEventPoint(evt);

	p = p.matrixTransform(g.getCTM().inverse());

	// Compute new scale matrix in current mouse position
	var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);

        setCTM(g, g.getCTM().multiply(k));

	if(typeof(stateTf) == "undefined")
		stateTf = g.getCTM().inverse();

	stateTf = stateTf.multiply(k.inverse());
}

/**
 * Handle mouse move event.
 */
function handleMouseMove(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(state == 'pan' && enablePan) {
		// Pan mode
		var p = getEventPoint(evt).matrixTransform(stateTf);

		setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
	} else if(state == 'drag' && enableDrag) {
		// Drag mode
		var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());

		setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));

		stateOrigin = p;
	}
}

/**
 * Handle click event.
 */
function handleMouseDown(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	var g = getRoot(svgDoc);

	if(
		evt.target.tagName == "svg" 
		|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element 
	) {
		// Pan mode
		state = 'pan';

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	} else {
		// Drag mode
		state = 'drag';

		stateTarget = evt.target;

		stateTf = g.getCTM().inverse();

		stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
	}
}

/**
 * Handle mouse button release event.
 */
function handleMouseUp(evt) {
	if(evt.preventDefault)
		evt.preventDefault();

	evt.returnValue = false;

	var svgDoc = evt.target.ownerDocument;

	if(state == 'pan' || state == 'drag') {
		// Quit pan mode
		state = '';
	}
}

]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1647)">
<title>PISC</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1647 3588.6013,-1647 3588.6013,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="#000000" points="704.3628,-1419 704.3628,-1635 1364.3628,-1635 1364.3628,-1419 704.3628,-1419"/>
</g>
<!-- L -->
<g id="node1" class="node">
<title>L</title>
<polygon fill="#f8f8f8" stroke="#000000" points="1356.5348,-1627 712.1908,-1627 712.1908,-1427 1356.5348,-1427 1356.5348,-1627"/>
<text text-anchor="start" x="720.0269" y="-1597.4" font-family="Times,serif" font-size="32.00" fill="#000000">File: PISC</text>
<text text-anchor="start" x="720.0269" y="-1565.4" font-family="Times,serif" font-size="32.00" fill="#000000">Type: cpu</text>
<text text-anchor="start" x="720.0269" y="-1533.4" font-family="Times,serif" font-size="32.00" fill="#000000">39.71s of 44.08s total (90.09%)</text>
<text text-anchor="start" x="720.0269" y="-1501.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 151 nodes (cum &lt;= 0.22s)</text>
<text text-anchor="start" x="720.0269" y="-1469.4" font-family="Times,serif" font-size="32.00" fill="#000000">Dropped 24 edges (freq &lt;= 0.04s)</text>
<text text-anchor="start" x="720.0269" y="-1437.4" font-family="Times,serif" font-size="32.00" fill="#000000">Showing top 80 nodes out of 119 (cum &gt;= 0.33s)</text>
</g>
<!-- N1 -->
<g id="node2" class="node">
<title>N1</title>
<g id="a_node2"><a xlink:title="runtime.goexit (40.82s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1456.1326,-1545 1374.5929,-1545 1374.5929,-1509 1456.1326,-1509 1456.1326,-1545"/>
<text text-anchor="middle" x="1415.3628" y="-1528.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.goexit</text>
<text text-anchor="middle" x="1415.3628" y="-1520.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 40.82s(92.60%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node">
<title>N2</title>
<g id="a_node3"><a xlink:title="main.(*machine).execute (31.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1671.4062,-1377 1413.3194,-1377 1413.3194,-1297 1671.4062,-1297 1671.4062,-1377"/>
<text text-anchor="middle" x="1542.3628" y="-1353.8" font-family="Times,serif" font-size="24.00" fill="#000000">main.(*machine).execute</text>
<text text-anchor="middle" x="1542.3628" y="-1329.8" font-family="Times,serif" font-size="24.00" fill="#000000">3.72s(8.44%)</text>
<text text-anchor="middle" x="1542.3628" y="-1305.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 31.24s(70.87%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N2 -->
<g id="edge3" class="edge">
<title>N1&#45;&gt;N2</title>
<g id="a_edge3"><a xlink:title="runtime.goexit ... main.(*machine).execute (31.24s)">
<path fill="none" stroke="#000000" stroke-width="4" stroke-dasharray="1,5" d="M1421.7011,-1508.8726C1429.9266,-1486.6343 1445.5949,-1448.2843 1465.3628,-1419 1473.2757,-1407.2777 1482.874,-1395.6253 1492.5707,-1384.9413"/>
<polygon fill="#000000" stroke="#000000" stroke-width="4" points="1495.3847,-1387.0546 1499.6261,-1377.3458 1490.2559,-1382.2905 1495.3847,-1387.0546"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="runtime.goexit ... main.(*machine).execute (31.24s)">
<text text-anchor="middle" x="1502.5869" y="-1397.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 31.24s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node">
<title>N9</title>
<g id="a_node10"><a xlink:title="runtime.gcBgMarkWorker (9.51s)">
<polygon fill="#f8f8f8" stroke="#000000" points="392.7535,-1355 291.9721,-1355 291.9721,-1319 392.7535,-1319 392.7535,-1355"/>
<text text-anchor="middle" x="342.3628" y="-1338.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.gcBgMarkWorker</text>
<text text-anchor="middle" x="342.3628" y="-1330.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 9.51s(21.57%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N9 -->
<g id="edge7" class="edge">
<title>N1&#45;&gt;N9</title>
<g id="a_edge7"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (9.51s)">
<path fill="none" stroke="#000000" stroke-width="2" d="M1413.2878,-1508.7708C1409.3681,-1483.7717 1398.3653,-1439.6082 1368.3628,-1419 1279.7151,-1358.1094 503.4627,-1410.789 401.3628,-1377 390.768,-1373.4938 380.3162,-1367.4941 371.2214,-1361.1929"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="373.0905,-1358.2233 362.957,-1355.1307 368.9501,-1363.8676 373.0905,-1358.2233"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.gcBgMarkWorker (9.51s)">
<text text-anchor="middle" x="1352.0869" y="-1397.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 9.51s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node">
<title>N3</title>
<g id="a_node4"><a xlink:title="main.(*machine).executeQuotation (31.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3278.9175,-1239.5 3121.8081,-1239.5 3121.8081,-1201.5 3278.9175,-1201.5 3278.9175,-1239.5"/>
<text text-anchor="middle" x="3200.3628" y="-1227.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeQuotation</text>
<text text-anchor="middle" x="3200.3628" y="-1217.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.091%)</text>
<text text-anchor="middle" x="3200.3628" y="-1207.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 31.24s(70.87%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N3 -->
<g id="edge91" class="edge">
<title>N2&#45;&gt;N3</title>
<g id="a_edge91"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.21s)">
<path fill="none" stroke="#000000" d="M1671.5389,-1334.0742C2008.3191,-1326.1457 2896.2204,-1303.2107 3027.3628,-1279 3030.2341,-1278.4699 3087.1138,-1259.1694 3134.8782,-1242.8819"/>
<polygon fill="#000000" stroke="#000000" points="3136.2653,-1246.1068 3144.5998,-1239.5656 3134.0053,-1239.4817 3136.2653,-1246.1068"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeQuotation (0.21s)">
<text text-anchor="middle" x="3083.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.21s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node">
<title>N6</title>
<g id="a_node7"><a xlink:title="main.NilWord.func1 (27.17s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2056.6292,-1241 1950.0964,-1241 1950.0964,-1200 2056.6292,-1200 2056.6292,-1241"/>
<text text-anchor="middle" x="2003.3628" y="-1228.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.NilWord.func1</text>
<text text-anchor="middle" x="2003.3628" y="-1217.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.10s(0.23%)</text>
<text text-anchor="middle" x="2003.3628" y="-1206.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 27.17s(61.64%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N6 -->
<g id="edge18" class="edge">
<title>N2&#45;&gt;N6</title>
<g id="a_edge18"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (2.13s)">
<path fill="none" stroke="#000000" d="M1671.5444,-1314.0619C1750.4484,-1298.5294 1852.8545,-1275.6334 1941.3628,-1247 1943.6181,-1246.2704 1945.9046,-1245.4904 1948.2032,-1244.6725"/>
<polygon fill="#000000" stroke="#000000" points="1949.533,-1247.912 1957.6721,-1241.1292 1947.0797,-1241.3559 1949.533,-1247.912"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.NilWord.func1 (2.13s)">
<text text-anchor="middle" x="1893.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.13s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node">
<title>N14</title>
<g id="a_node15"><a xlink:title="main.(*CodeQuotation).cloneCode (5.32s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1267.9706,-1245.5 1058.755,-1245.5 1058.755,-1195.5 1267.9706,-1195.5 1267.9706,-1245.5"/>
<text text-anchor="middle" x="1163.3628" y="-1230.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*CodeQuotation).cloneCode</text>
<text text-anchor="middle" x="1163.3628" y="-1216.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.38s(0.86%)</text>
<text text-anchor="middle" x="1163.3628" y="-1202.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 5.32s(12.07%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N14 -->
<g id="edge11" class="edge">
<title>N2&#45;&gt;N14</title>
<g id="a_edge11"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (5.32s)">
<path fill="none" stroke="#000000" d="M1413.2572,-1297.3145C1361.0774,-1281.2751 1302.075,-1263.1385 1254.5098,-1248.5175"/>
<polygon fill="#000000" stroke="#000000" points="1255.4348,-1245.1403 1244.8478,-1245.5475 1253.378,-1251.8313 1255.4348,-1245.1403"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).cloneCode (5.32s)">
<text text-anchor="middle" x="1370.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.32s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node">
<title>N18</title>
<g id="a_node19"><a xlink:title="runtime.mapaccess2_faststr (3.72s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2111.5344,-1144 1863.1912,-1144 1863.1912,-1073 2111.5344,-1073 2111.5344,-1144"/>
<text text-anchor="middle" x="1987.3628" y="-1123.2" font-family="Times,serif" font-size="21.00" fill="#000000">runtime.mapaccess2_faststr</text>
<text text-anchor="middle" x="1987.3628" y="-1102.2" font-family="Times,serif" font-size="21.00" fill="#000000">2.24s(5.08%)</text>
<text text-anchor="middle" x="1987.3628" y="-1081.2" font-family="Times,serif" font-size="21.00" fill="#000000">of 3.72s(8.44%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N18 -->
<g id="edge15" class="edge">
<title>N2&#45;&gt;N18</title>
<g id="a_edge15"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (2.80s)">
<path fill="none" stroke="#000000" d="M1671.422,-1323.648C1818.1545,-1307.1174 2040.6912,-1277.4064 2065.3628,-1247 2089.1451,-1217.6895 2065.2483,-1180.163 2037.8319,-1151.5668"/>
<polygon fill="#000000" stroke="#000000" points="2039.9636,-1148.747 2030.4292,-1144.1268 2035.0014,-1153.6843 2039.9636,-1148.747"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.mapaccess2_faststr (2.80s)">
<text text-anchor="middle" x="2091.0869" y="-1216.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.80s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node">
<title>N19</title>
<g id="a_node20"><a xlink:title="runtime.convT2I (2.86s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1130.0878,-1023 1026.6378,-1023 1026.6378,-976 1130.0878,-976 1130.0878,-1023"/>
<text text-anchor="middle" x="1078.3628" y="-1008.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.convT2I</text>
<text text-anchor="middle" x="1078.3628" y="-995.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.33s(0.75%)</text>
<text text-anchor="middle" x="1078.3628" y="-982.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 2.86s(6.49%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N19 -->
<g id="edge20" class="edge">
<title>N2&#45;&gt;N19</title>
<g id="a_edge20"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (2.07s)">
<path fill="none" stroke="#000000" d="M1413.026,-1331.5965C1282.8027,-1323.1193 1094.8477,-1301.5402 1049.3628,-1247 1022.8421,-1215.1995 1052.1985,-1092.5698 1068.6959,-1032.7282"/>
<polygon fill="#000000" stroke="#000000" points="1072.0931,-1033.5759 1071.4166,-1023.0026 1065.3519,-1031.6899 1072.0931,-1033.5759"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.convT2I (2.07s)">
<text text-anchor="middle" x="1058.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.07s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node">
<title>N22</title>
<g id="a_node23"><a xlink:title="runtime.growslice (2.55s)">
<polygon fill="#f8f8f8" stroke="#000000" points="607.5876,-1023 497.138,-1023 497.138,-976 607.5876,-976 607.5876,-1023"/>
<text text-anchor="middle" x="552.3628" y="-1008.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.growslice</text>
<text text-anchor="middle" x="552.3628" y="-995.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.31s(0.7%)</text>
<text text-anchor="middle" x="552.3628" y="-982.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 2.55s(5.78%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N22 -->
<g id="edge16" class="edge">
<title>N2&#45;&gt;N22</title>
<g id="a_edge16"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (2.50s)">
<path fill="none" stroke="#000000" d="M1412.9881,-1334.2369C1162.0192,-1327.5659 628.5792,-1306.4812 571.3628,-1247 542.8268,-1217.3345 546.2988,-1094.1265 549.8991,-1033.4998"/>
<polygon fill="#000000" stroke="#000000" points="553.4065,-1033.4903 550.542,-1023.29 546.4203,-1033.0503 553.4065,-1033.4903"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.growslice (2.50s)">
<text text-anchor="middle" x="567.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.50s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node">
<title>N32</title>
<g id="a_node33"><a xlink:title="runtime.deferreturn (1.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="426.8892,-1247 293.8364,-1247 293.8364,-1194 426.8892,-1194 426.8892,-1247"/>
<text text-anchor="middle" x="360.3628" y="-1231" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.deferreturn</text>
<text text-anchor="middle" x="360.3628" y="-1216" font-family="Times,serif" font-size="15.00" fill="#000000">0.63s(1.43%)</text>
<text text-anchor="middle" x="360.3628" y="-1201" font-family="Times,serif" font-size="15.00" fill="#000000">of 1.38s(3.13%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N32 -->
<g id="edge32" class="edge">
<title>N2&#45;&gt;N32</title>
<g id="a_edge32"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (1.38s)">
<path fill="none" stroke="#000000" d="M1412.9926,-1333.3495C1153.9986,-1325.5196 589.3166,-1305.6375 504.9146,-1279 493.6642,-1275.4494 492.9719,-1270.1597 482.3628,-1265 477.3733,-1262.5734 458.1824,-1255.4333 436.4493,-1247.5634"/>
<polygon fill="#000000" stroke="#000000" points="437.6078,-1244.2606 427.0135,-1244.1575 435.2312,-1250.8448 437.6078,-1244.2606"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferreturn (1.38s)">
<text text-anchor="middle" x="522.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.38s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node">
<title>N33</title>
<g id="a_node34"><a xlink:title="main.(*machine).hasPrefixWord (1.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1932.0291,-1242.5 1760.6965,-1242.5 1760.6965,-1198.5 1932.0291,-1198.5 1932.0291,-1242.5"/>
<text text-anchor="middle" x="1846.3628" y="-1228.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).hasPrefixWord</text>
<text text-anchor="middle" x="1846.3628" y="-1216.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.21s(0.48%)</text>
<text text-anchor="middle" x="1846.3628" y="-1204.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1.36s(3.09%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N33 -->
<g id="edge33" class="edge">
<title>N2&#45;&gt;N33</title>
<g id="a_edge33"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (1.36s)">
<path fill="none" stroke="#000000" d="M1646.9823,-1296.9073C1690.6822,-1280.1605 1740.1874,-1261.1889 1778.9361,-1246.3395"/>
<polygon fill="#000000" stroke="#000000" points="1780.4603,-1249.5037 1788.5456,-1242.6569 1777.9553,-1242.9672 1780.4603,-1249.5037"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).hasPrefixWord (1.36s)">
<text text-anchor="middle" x="1738.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.36s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node">
<title>N35</title>
<g id="a_node36"><a xlink:title="main.(*machine).loadLocalWords.func1 (1.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="774.1676,-1241 580.558,-1241 580.558,-1200 774.1676,-1200 774.1676,-1241"/>
<text text-anchor="middle" x="677.3628" y="-1228.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadLocalWords.func1</text>
<text text-anchor="middle" x="677.3628" y="-1217.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.07s(0.16%)</text>
<text text-anchor="middle" x="677.3628" y="-1206.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 1.25s(2.84%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N35 -->
<g id="edge35" class="edge">
<title>N2&#45;&gt;N35</title>
<g id="a_edge35"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (1.25s)">
<path fill="none" stroke="#000000" d="M1413.1225,-1330.3226C1286.3677,-1322.5229 1087.9283,-1306.9695 917.9146,-1279 864.4635,-1270.2066 805.3372,-1255.8922 759.0794,-1243.6244"/>
<polygon fill="#000000" stroke="#000000" points="759.9751,-1240.241 749.4105,-1241.0403 758.1678,-1247.0036 759.9751,-1240.241"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func1 (1.25s)">
<text text-anchor="middle" x="935.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.25s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node">
<title>N36</title>
<g id="a_node37"><a xlink:title="runtime.deferproc (1.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3406.3458,-1244 3296.3798,-1244 3296.3798,-1197 3406.3458,-1197 3406.3458,-1244"/>
<text text-anchor="middle" x="3351.3628" y="-1229.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.deferproc</text>
<text text-anchor="middle" x="3351.3628" y="-1216.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.28s(0.64%)</text>
<text text-anchor="middle" x="3351.3628" y="-1203.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.25s(2.84%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N36 -->
<g id="edge36" class="edge">
<title>N2&#45;&gt;N36</title>
<g id="a_edge36"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (1.25s)">
<path fill="none" stroke="#000000" d="M1671.6461,-1336.0363C2042.7629,-1332.7874 3094.4723,-1320.0313 3244.3628,-1279 3267.1034,-1272.7749 3290.3074,-1260.8955 3309.2682,-1249.4592"/>
<polygon fill="#000000" stroke="#000000" points="3311.2842,-1252.3274 3317.9388,-1244.0832 3307.5955,-1246.3782 3311.2842,-1252.3274"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.deferproc (1.25s)">
<text text-anchor="middle" x="3295.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.25s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node39" class="node">
<title>N38</title>
<g id="a_node39"><a xlink:title="runtime.memeqbody (1.22s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2291.3303,-1021.5 2125.3953,-1021.5 2125.3953,-977.5 2291.3303,-977.5 2291.3303,-1021.5"/>
<text text-anchor="middle" x="2208.3628" y="-1003.1" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.memeqbody</text>
<text text-anchor="middle" x="2208.3628" y="-985.1" font-family="Times,serif" font-size="18.00" fill="#000000">1.22s(2.77%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N38 -->
<g id="edge46" class="edge">
<title>N2&#45;&gt;N38</title>
<g id="a_edge46"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.98s)">
<path fill="none" stroke="#000000" d="M1671.4895,-1329.1126C1816.6763,-1318.0991 2041.3206,-1293.9522 2111.3628,-1247 2158.6184,-1215.3227 2171.7302,-1198.7007 2187.3628,-1144 2198.0956,-1106.4442 2203.5161,-1061.7513 2206.131,-1032.1168"/>
<polygon fill="#000000" stroke="#000000" points="2209.638,-1032.1753 2206.9721,-1021.9213 2202.6617,-1031.5997 2209.638,-1032.1753"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.memeqbody (0.98s)">
<text text-anchor="middle" x="2198.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.98s</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node46" class="node">
<title>N45</title>
<g id="a_node46"><a xlink:title="main.tryParseFloat (1s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1392.8472,-1242.5 1285.8784,-1242.5 1285.8784,-1198.5 1392.8472,-1198.5 1392.8472,-1242.5"/>
<text text-anchor="middle" x="1339.3628" y="-1228.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseFloat</text>
<text text-anchor="middle" x="1339.3628" y="-1216.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.19s(0.43%)</text>
<text text-anchor="middle" x="1339.3628" y="-1204.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 1s(2.27%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N45 -->
<g id="edge43" class="edge">
<title>N2&#45;&gt;N45</title>
<g id="a_edge43"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (1s)">
<path fill="none" stroke="#000000" d="M1472.5017,-1296.9073C1444.1861,-1280.6572 1412.2205,-1262.3124 1386.709,-1247.6716"/>
<polygon fill="#000000" stroke="#000000" points="1388.3864,-1244.5988 1377.971,-1242.6569 1384.9021,-1250.6701 1388.3864,-1244.5988"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseFloat (1s)">
<text text-anchor="middle" x="1449.3369" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node48" class="node">
<title>N47</title>
<g id="a_node48"><a xlink:title="main.tryParseInt (0.96s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1506.0099,-1242.5 1410.7157,-1242.5 1410.7157,-1198.5 1506.0099,-1198.5 1506.0099,-1242.5"/>
<text text-anchor="middle" x="1458.3628" y="-1228.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.tryParseInt</text>
<text text-anchor="middle" x="1458.3628" y="-1216.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.19s(0.43%)</text>
<text text-anchor="middle" x="1458.3628" y="-1204.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.96s(2.18%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N47 -->
<g id="edge48" class="edge">
<title>N2&#45;&gt;N47</title>
<g id="a_edge48"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.96s)">
<path fill="none" stroke="#000000" d="M1508.506,-1296.953C1503.8183,-1291.0264 1499.1599,-1284.9207 1494.9146,-1279 1488.6339,-1270.2408 1482.2517,-1260.4101 1476.6156,-1251.3438"/>
<polygon fill="#000000" stroke="#000000" points="1479.4678,-1249.2993 1471.2596,-1242.6003 1473.4987,-1252.9559 1479.4678,-1249.2993"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.tryParseInt (0.96s)">
<text text-anchor="middle" x="1512.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.96s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node53" class="node">
<title>N52</title>
<g id="a_node53"><a xlink:title="main.(*machine).loadLocalWords.func2 (0.79s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1002.3315,-1242.5 792.394,-1242.5 792.394,-1198.5 1002.3315,-1198.5 1002.3315,-1242.5"/>
<text text-anchor="middle" x="897.3628" y="-1228.9" font-family="Times,serif" font-size="12.00" fill="#000000">main.(*machine).loadLocalWords.func2</text>
<text text-anchor="middle" x="897.3628" y="-1216.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.18s(0.41%)</text>
<text text-anchor="middle" x="897.3628" y="-1204.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.79s(1.79%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N52 -->
<g id="edge54" class="edge">
<title>N2&#45;&gt;N52</title>
<g id="a_edge54"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.79s)">
<path fill="none" stroke="#000000" d="M1413.0214,-1330.9535C1272.9298,-1323.1069 1059.2343,-1306.9918 982.9146,-1279 964.1002,-1272.0995 945.4637,-1260.1306 930.4113,-1248.8095"/>
<polygon fill="#000000" stroke="#000000" points="932.4853,-1245.9887 922.4393,-1242.6229 928.1937,-1251.5188 932.4853,-1245.9887"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLocalWords.func2 (0.79s)">
<text text-anchor="middle" x="1000.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.79s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node55" class="node">
<title>N54</title>
<g id="a_node55"><a xlink:title="main.wordIsWhitespace (0.76s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1742.3447,-1244 1600.3809,-1244 1600.3809,-1197 1742.3447,-1197 1742.3447,-1244"/>
<text text-anchor="middle" x="1671.3628" y="-1229.6" font-family="Times,serif" font-size="13.00" fill="#000000">main.wordIsWhitespace</text>
<text text-anchor="middle" x="1671.3628" y="-1216.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.34s(0.77%)</text>
<text text-anchor="middle" x="1671.3628" y="-1203.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.76s(1.72%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N54 -->
<g id="edge56" class="edge">
<title>N2&#45;&gt;N54</title>
<g id="a_edge56"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.76s)">
<path fill="none" stroke="#000000" d="M1586.7573,-1296.9073C1603.3901,-1281.8862 1622.0049,-1265.0752 1637.53,-1251.0544"/>
<polygon fill="#000000" stroke="#000000" points="1640.2645,-1253.3009 1645.3402,-1244.001 1635.5728,-1248.1059 1640.2645,-1253.3009"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.wordIsWhitespace (0.76s)">
<text text-anchor="middle" x="1635.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.76s</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node56" class="node">
<title>N55</title>
<g id="a_node56"><a xlink:title="main.(*CodeQuotation).nextWord (0.71s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2399.438,-1239.5 2181.2876,-1239.5 2181.2876,-1201.5 2399.438,-1201.5 2399.438,-1239.5"/>
<text text-anchor="middle" x="2290.3628" y="-1223.5" font-family="Times,serif" font-size="15.00" fill="#000000">main.(*CodeQuotation).nextWord</text>
<text text-anchor="middle" x="2290.3628" y="-1208.5" font-family="Times,serif" font-size="15.00" fill="#000000">0.71s(1.61%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N55 -->
<g id="edge57" class="edge">
<title>N2&#45;&gt;N55</title>
<g id="a_edge57"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.71s)">
<path fill="none" stroke="#000000" d="M1671.5654,-1330.348C1826.655,-1321.4309 2077.1286,-1303.8022 2167.3628,-1279 2196.0463,-1271.1159 2226.2415,-1256.8537 2249.5362,-1244.3858"/>
<polygon fill="#000000" stroke="#000000" points="2251.326,-1247.3964 2258.4283,-1239.5346 2247.9735,-1241.2513 2251.326,-1247.3964"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*CodeQuotation).nextWord (0.71s)">
<text text-anchor="middle" x="2222.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.71s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node61" class="node">
<title>N60</title>
<g id="a_node61"><a xlink:title="main.(*machine).loadLoopWords.func1 (0.61s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3103.3481,-1239.5 2927.3774,-1239.5 2927.3774,-1201.5 3103.3481,-1201.5 3103.3481,-1239.5"/>
<text text-anchor="middle" x="3015.3628" y="-1227.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadLoopWords.func1</text>
<text text-anchor="middle" x="3015.3628" y="-1217.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.091%)</text>
<text text-anchor="middle" x="3015.3628" y="-1207.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.61s(1.38%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N60 -->
<g id="edge93" class="edge">
<title>N2&#45;&gt;N60</title>
<g id="a_edge93"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.19s)">
<path fill="none" stroke="#000000" d="M1671.5236,-1334.0098C1944.3854,-1327.1941 2571.7805,-1308.7566 2783.3628,-1279 2838.5462,-1271.2391 2899.6054,-1255.5467 2945.2272,-1242.3672"/>
<polygon fill="#000000" stroke="#000000" points="2946.3935,-1245.6729 2955.012,-1239.5107 2944.4318,-1238.9533 2946.3935,-1245.6729"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).loadLoopWords.func1 (0.19s)">
<text text-anchor="middle" x="2871.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.19s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node68" class="node">
<title>N67</title>
<g id="a_node68"><a xlink:title="main.(*machine).executeMathWord (0.46s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2577.5035,-1239.5 2417.2221,-1239.5 2417.2221,-1201.5 2577.5035,-1201.5 2577.5035,-1239.5"/>
<text text-anchor="middle" x="2497.3628" y="-1227.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).executeMathWord</text>
<text text-anchor="middle" x="2497.3628" y="-1217.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.05s(0.11%)</text>
<text text-anchor="middle" x="2497.3628" y="-1207.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.46s(1.04%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N67 -->
<g id="edge71" class="edge">
<title>N2&#45;&gt;N67</title>
<g id="a_edge71"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.46s)">
<path fill="none" stroke="#000000" d="M1671.5134,-1330.4782C1812.3258,-1322.3951 2044.0849,-1306.2447 2242.3628,-1279 2316.7995,-1268.7719 2335.3787,-1264.8538 2408.3628,-1247 2414.3234,-1245.5419 2420.479,-1243.9315 2426.6398,-1242.2465"/>
<polygon fill="#000000" stroke="#000000" points="2427.6087,-1245.6099 2436.2982,-1239.5481 2425.7252,-1238.868 2427.6087,-1245.6099"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*machine).executeMathWord (0.46s)">
<text text-anchor="middle" x="2345.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.46s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node69" class="node">
<title>N68</title>
<g id="a_node69"><a xlink:title="runtime.writebarrierptr_nostore1 (0.46s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3584.8406,-1241 3423.885,-1241 3423.885,-1200 3584.8406,-1200 3584.8406,-1241"/>
<text text-anchor="middle" x="3504.3628" y="-1228.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.writebarrierptr_nostore1</text>
<text text-anchor="middle" x="3504.3628" y="-1217.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.12s(0.27%)</text>
<text text-anchor="middle" x="3504.3628" y="-1206.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.46s(1.04%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N68 -->
<g id="edge108" class="edge">
<title>N2&#45;&gt;N68</title>
<g id="a_edge108"><a xlink:title="main.(*machine).execute ... runtime.writebarrierptr_nostore1 (0.06s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1671.587,-1334.7668C2052.6175,-1327.9026 3155.0074,-1305.9381 3315.3628,-1279 3358.5849,-1271.7391 3405.6741,-1257.1831 3442.0379,-1244.408"/>
<polygon fill="#000000" stroke="#000000" points="3443.2724,-1247.6837 3451.5191,-1241.0323 3440.9244,-1241.0892 3443.2724,-1247.6837"/>
</a>
</g>
<g id="a_edge108&#45;label"><a xlink:title="main.(*machine).execute ... runtime.writebarrierptr_nostore1 (0.06s)">
<text text-anchor="middle" x="3390.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node76" class="node">
<title>N75</title>
<g id="a_node76"><a xlink:title="main.(*codeList).nextWord (0.37s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2791.6414,-1239.5 2665.0842,-1239.5 2665.0842,-1201.5 2791.6414,-1201.5 2791.6414,-1239.5"/>
<text text-anchor="middle" x="2728.3628" y="-1227.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*codeList).nextWord</text>
<text text-anchor="middle" x="2728.3628" y="-1217.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.068%)</text>
<text text-anchor="middle" x="2728.3628" y="-1207.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.37s(0.84%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N75 -->
<g id="edge79" class="edge">
<title>N2&#45;&gt;N75</title>
<g id="a_edge79"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*codeList).nextWord (0.37s)">
<path fill="none" stroke="#000000" d="M1671.4399,-1333.4887C1939.2707,-1325.7114 2537.9781,-1305.5955 2627.3628,-1279 2651.507,-1271.8161 2676.0187,-1257.8147 2694.8477,-1245.3108"/>
<polygon fill="#000000" stroke="#000000" points="2697.0537,-1248.0428 2703.3419,-1239.5158 2693.1087,-1242.2603 2697.0537,-1248.0428"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; main.(*codeList).nextWord (0.37s)">
<text text-anchor="middle" x="2676.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.37s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node80" class="node">
<title>N79</title>
<g id="a_node80"><a xlink:title="runtime.ifaceeq (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2909.4884,-1244 2809.2372,-1244 2809.2372,-1197 2909.4884,-1197 2909.4884,-1244"/>
<text text-anchor="middle" x="2859.3628" y="-1229.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.ifaceeq</text>
<text text-anchor="middle" x="2859.3628" y="-1216.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.31s(0.7%)</text>
<text text-anchor="middle" x="2859.3628" y="-1203.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.33s(0.75%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N79 -->
<g id="edge85" class="edge">
<title>N2&#45;&gt;N79</title>
<g id="a_edge85"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.31s)">
<path fill="none" stroke="#000000" d="M1671.4105,-1334.5447C1929.8872,-1328.9642 2502.8788,-1313.0816 2696.3628,-1279 2731.6312,-1272.7876 2769.3666,-1259.6922 2799.6386,-1247.4635"/>
<polygon fill="#000000" stroke="#000000" points="2801.2758,-1250.5747 2809.1923,-1243.5335 2798.6127,-1244.101 2801.2758,-1250.5747"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="main.(*machine).execute &#45;&gt; runtime.ifaceeq (0.31s)">
<text text-anchor="middle" x="2763.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N2 -->
<g id="edge4" class="edge">
<title>N3&#45;&gt;N2</title>
<g id="a_edge4"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (31.03s)">
<path fill="none" stroke="#000000" stroke-width="4" d="M3177.6073,-1239.6442C3159.7542,-1253.4045 3133.6092,-1270.902 3107.3628,-1279 2973.4309,-1320.3227 2039.8682,-1332.7066 1681.7594,-1335.9607"/>
<polygon fill="#000000" stroke="#000000" stroke-width="4" points="1681.5608,-1332.4623 1671.5927,-1336.0521 1681.6238,-1339.462 1681.5608,-1332.4623"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; main.(*machine).execute (31.03s)">
<text text-anchor="middle" x="3157.5869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 31.03s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node">
<title>N12</title>
<g id="a_node13"><a xlink:title="runtime.newobject (7.52s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1216.0001,-923 1110.7255,-923 1110.7255,-879 1216.0001,-879 1216.0001,-923"/>
<text text-anchor="middle" x="1163.3628" y="-909.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.newobject</text>
<text text-anchor="middle" x="1163.3628" y="-897.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.23s(0.52%)</text>
<text text-anchor="middle" x="1163.3628" y="-885.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 7.52s(17.06%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N12 -->
<g id="edge96" class="edge">
<title>N3&#45;&gt;N12</title>
<g id="a_edge96"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.14s)">
<path fill="none" stroke="#000000" d="M3144.5201,-1201.447C3133.9485,-1198.4805 3122.8995,-1195.8051 3112.3628,-1194 3028.1624,-1179.5751 2809.3179,-1203.2773 2728.3628,-1176 2628.125,-1142.2254 2621.39,-1098.1183 2532.3628,-1041 2484.8893,-1010.5418 2476.2234,-995.677 2423.3628,-976 2346.8031,-947.5011 2323.584,-952.7576 2242.3628,-944 2043.3518,-922.5418 1425.6042,-906.9632 1226.1478,-902.3856"/>
<polygon fill="#000000" stroke="#000000" points="1226.205,-898.8861 1216.1277,-902.1568 1226.0452,-905.8842 1226.205,-898.8861"/>
</a>
</g>
<g id="a_edge96&#45;label"><a xlink:title="main.(*machine).executeQuotation &#45;&gt; runtime.newobject (0.14s)">
<text text-anchor="middle" x="2568.0869" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.14s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node">
<title>N4</title>
<g id="a_node5"><a xlink:title="main.(*machine).loadDebugWords.func3 (31.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="3274.7931,-1355 3125.9325,-1355 3125.9325,-1319 3274.7931,-1319 3274.7931,-1355"/>
<text text-anchor="middle" x="3200.3628" y="-1338.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadDebugWords.func3</text>
<text text-anchor="middle" x="3200.3628" y="-1330.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 31.24s(70.87%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N3 -->
<g id="edge1" class="edge">
<title>N4&#45;&gt;N3</title>
<g id="a_edge1"><a xlink:title="main.(*machine).loadDebugWords.func3 &#45;&gt; main.(*machine).executeQuotation (31.24s)">
<path fill="none" stroke="#000000" stroke-width="4" d="M3200.3628,-1318.7969C3200.3628,-1300.4022 3200.3628,-1271.6808 3200.3628,-1250.0249"/>
<polygon fill="#000000" stroke="#000000" stroke-width="4" points="3203.8629,-1249.7376 3200.3628,-1239.7376 3196.8629,-1249.7376 3203.8629,-1249.7376"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.(*machine).loadDebugWords.func3 &#45;&gt; main.(*machine).executeQuotation (31.24s)">
<text text-anchor="middle" x="3220.5869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 31.24s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node">
<title>N5</title>
<g id="a_node6"><a xlink:title="main.(*machine).loadIOWords.func1 (31.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1609.9065,-1545 1474.8191,-1545 1474.8191,-1509 1609.9065,-1509 1609.9065,-1545"/>
<text text-anchor="middle" x="1542.3628" y="-1528.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadIOWords.func1</text>
<text text-anchor="middle" x="1542.3628" y="-1520.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 31.24s(70.87%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N2 -->
<g id="edge2" class="edge">
<title>N5&#45;&gt;N2</title>
<g id="a_edge2"><a xlink:title="main.(*machine).loadIOWords.func1 &#45;&gt; main.(*machine).execute (31.24s)">
<path fill="none" stroke="#000000" stroke-width="4" d="M1542.3628,-1508.782C1542.3628,-1481.0982 1542.3628,-1427.4317 1542.3628,-1387.4151"/>
<polygon fill="#000000" stroke="#000000" stroke-width="4" points="1545.8629,-1387.3013 1542.3628,-1377.3014 1538.8629,-1387.3014 1545.8629,-1387.3013"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="main.(*machine).loadIOWords.func1 &#45;&gt; main.(*machine).execute (31.24s)">
<text text-anchor="middle" x="1562.5869" y="-1397.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 31.24s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node">
<title>N7</title>
<g id="a_node8"><a xlink:title="main.(*machine).loadStringWords.func9 (26.90s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1640.0208,-1129 1444.7048,-1129 1444.7048,-1088 1640.0208,-1088 1640.0208,-1129"/>
<text text-anchor="middle" x="1542.3628" y="-1116.2" font-family="Times,serif" font-size="11.00" fill="#000000">main.(*machine).loadStringWords.func9</text>
<text text-anchor="middle" x="1542.3628" y="-1105.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.11s(0.25%)</text>
<text text-anchor="middle" x="1542.3628" y="-1094.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 26.90s(61.03%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N7 -->
<g id="edge6" class="edge">
<title>N6&#45;&gt;N7</title>
<g id="a_edge6"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadStringWords.func9 (24.70s)">
<path fill="none" stroke="#000000" stroke-width="3" d="M1959.5601,-1199.8879C1953.5417,-1197.6166 1947.3665,-1195.5642 1941.3628,-1194 1868.0753,-1174.9057 1846.345,-1189.991 1771.9146,-1176 1718.7001,-1165.9971 1706.3042,-1159.2945 1654.3628,-1144 1641.7328,-1140.281 1628.3516,-1136.1806 1615.401,-1132.1275"/>
<polygon fill="#000000" stroke="#000000" stroke-width="3" points="1616.1905,-1128.7068 1605.601,-1129.0444 1614.0897,-1135.3841 1616.1905,-1128.7068"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadStringWords.func9 (24.70s)">
<text text-anchor="middle" x="1791.5869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 24.70s</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node44" class="node">
<title>N43</title>
<g id="a_node44"><a xlink:title="main.(*machine).loadPredefinedValues.func3 (1.10s)">
<polygon fill="#f8f8f8" stroke="#000000" points="2434.8047,-1127.5 2235.9209,-1127.5 2235.9209,-1089.5 2434.8047,-1089.5 2434.8047,-1127.5"/>
<text text-anchor="middle" x="2335.3628" y="-1115.5" font-family="Times,serif" font-size="10.00" fill="#000000">main.(*machine).loadPredefinedValues.func3</text>
<text text-anchor="middle" x="2335.3628" y="-1105.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.068%)</text>
<text text-anchor="middle" x="2335.3628" y="-1095.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 1.10s(2.50%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N43 -->
<g id="edge41" class="edge">
<title>N6&#45;&gt;N43</title>
<g id="a_edge41"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.10s)">
<path fill="none" stroke="#000000" d="M2047.0345,-1199.9687C2073.5425,-1187.9666 2108.261,-1173.0537 2139.9146,-1162 2174.2249,-1150.0185 2212.6705,-1138.9952 2246.3271,-1130.1076"/>
<polygon fill="#000000" stroke="#000000" points="2247.3568,-1133.4561 2256.1455,-1127.5393 2245.5852,-1126.684 2247.3568,-1133.4561"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="main.NilWord.func1 &#45;&gt; main.(*machine).loadPredefinedValues.func3 (1.10s)">
<text text-anchor="middle" x="2156.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.10s</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N2 -->
<g id="edge5" class="edge">
<title>N7&#45;&gt;N2</title>
<g id="a_edge5"><a xlink:title="main.(*machine).loadStringWords.func9 &#45;&gt; main.(*machine).execute (26.25s)">
<path fill="none" stroke="#000000" stroke-width="3" d="M1542.3628,-1129.0226C1542.3628,-1164.2822 1542.3628,-1237.332 1542.3628,-1286.7682"/>
<polygon fill="#000000" stroke="#000000" stroke-width="3" points="1538.8629,-1286.9368 1542.3628,-1296.9369 1545.8629,-1286.9369 1538.8629,-1286.9368"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.(*machine).loadStringWords.func9 &#45;&gt; main.(*machine).execute (26.25s)">
<text text-anchor="middle" x="1562.5869" y="-1216.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 26.25s</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N12 -->
<g id="edge110" class="edge">
<title>N7&#45;&gt;N12</title>
<g id="a_edge110"><a xlink:title="main.(*machine).loadStringWords.func9 &#45;&gt; runtime.newobject (0.05s)">
<path fill="none" stroke="#000000" d="M1540.4993,-1087.9065C1536.5775,-1057.8476 1524.579,-1002.644 1488.3628,-976 1447.2249,-945.7351 1308.4781,-921.5697 1226.1652,-909.467"/>
<polygon fill="#000000" stroke="#000000" points="1226.5704,-905.9893 1216.1713,-908.0161 1225.5646,-912.9166 1226.5704,-905.9893"/>
</a>
</g>
<g id="a_edge110&#45;label"><a xlink:title="main.(*machine).loadStringWords.func9 &#45;&gt; runtime.newobject (0.05s)">
<text text-anchor="middle" x="1540.0869" y="-995.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N19 -->
<g id="edge87" class="edge">
<title>N7&#45;&gt;N19</title>
<g id="a_edge87"><a xlink:title="main.(*machine).loadStringWords.func9 &#45;&gt; runtime.convT2I (0.28s)">
<path fill="none" stroke="#000000" d="M1501.7532,-1087.983C1464.2123,-1069.171 1412.7129,-1043.8138 1402.3628,-1041 1307.6944,-1015.2631 1279.3372,-1037.848 1182.3628,-1023 1168.596,-1020.8921 1153.9382,-1017.9934 1140.1021,-1014.9508"/>
<polygon fill="#000000" stroke="#000000" points="1140.7218,-1011.5027 1130.1971,-1012.7191 1139.1832,-1018.3315 1140.7218,-1011.5027"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="main.(*machine).loadStringWords.func9 &#45;&gt; runtime.convT2I (0.28s)">
<text text-anchor="middle" x="1450.0869" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.28s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node78" class="node">
<title>N77</title>
<g id="a_node78"><a xlink:title="runtime.stringiter2 (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1732.982,-1017.5 1619.7436,-1017.5 1619.7436,-981.5 1732.982,-981.5 1732.982,-1017.5"/>
<text text-anchor="middle" x="1676.3628" y="-1002.1" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.stringiter2</text>
<text text-anchor="middle" x="1676.3628" y="-989.1" font-family="Times,serif" font-size="13.00" fill="#000000">0.36s(0.82%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N77 -->
<g id="edge111" class="edge">
<title>N7&#45;&gt;N77</title>
<g id="a_edge111"><a xlink:title="main.(*machine).loadStringWords.func9 &#45;&gt; runtime.stringiter2 (0.05s)">
<path fill="none" stroke="#000000" d="M1567.5672,-1087.9979C1589.8113,-1069.9038 1622.2892,-1043.4853 1645.9668,-1024.2251"/>
<polygon fill="#000000" stroke="#000000" points="1648.3946,-1026.762 1653.9436,-1017.7365 1643.9774,-1021.3316 1648.3946,-1026.762"/>
</a>
</g>
<g id="a_edge111&#45;label"><a xlink:title="main.(*machine).loadStringWords.func9 &#45;&gt; runtime.stringiter2 (0.05s)">
<text text-anchor="middle" x="1641.0869" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node">
<title>N8</title>
<g id="a_node9"><a xlink:title="runtime.mallocgc (9.79s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1248.422,-826 1078.3036,-826 1078.3036,-752 1248.422,-752 1248.422,-826"/>
<text text-anchor="middle" x="1163.3628" y="-804.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.mallocgc</text>
<text text-anchor="middle" x="1163.3628" y="-782.4" font-family="Times,serif" font-size="22.00" fill="#000000">2.78s(6.31%)</text>
<text text-anchor="middle" x="1163.3628" y="-760.4" font-family="Times,serif" font-size="22.00" fill="#000000">of 9.79s(22.21%)</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node">
<title>N24</title>
<g id="a_node25"><a xlink:title="runtime.gcStart (1.90s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1200.6039,-687.5 1126.1217,-687.5 1126.1217,-651.5 1200.6039,-651.5 1200.6039,-687.5"/>
<text text-anchor="middle" x="1163.3628" y="-675.8" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.gcStart</text>
<text text-anchor="middle" x="1163.3628" y="-666.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.023%)</text>
<text text-anchor="middle" x="1163.3628" y="-657.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 1.90s(4.31%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N24 -->
<g id="edge22" class="edge">
<title>N8&#45;&gt;N24</title>
<g id="a_edge22"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (1.90s)">
<path fill="none" stroke="#000000" d="M1163.3628,-751.8445C1163.3628,-734.476 1163.3628,-714.1204 1163.3628,-697.9933"/>
<polygon fill="#000000" stroke="#000000" points="1166.8629,-697.5926 1163.3628,-687.5927 1159.8629,-697.5927 1166.8629,-697.5926"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (1.90s)">
<text text-anchor="middle" x="1180.0869" y="-722.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.90s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node">
<title>N25</title>
<g id="a_node26"><a xlink:title="runtime.heapBitsSetType (1.74s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1426.6917,-702 1218.0339,-702 1218.0339,-637 1426.6917,-637 1426.6917,-702"/>
<text text-anchor="middle" x="1322.3628" y="-682.8" font-family="Times,serif" font-size="19.00" fill="#000000">runtime.heapBitsSetType</text>
<text text-anchor="middle" x="1322.3628" y="-663.8" font-family="Times,serif" font-size="19.00" fill="#000000">1.69s(3.83%)</text>
<text text-anchor="middle" x="1322.3628" y="-644.8" font-family="Times,serif" font-size="19.00" fill="#000000">of 1.74s(3.95%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N25 -->
<g id="edge25" class="edge">
<title>N8&#45;&gt;N25</title>
<g id="a_edge25"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (1.74s)">
<path fill="none" stroke="#000000" d="M1212.7998,-751.8445C1231.223,-737.9981 1252.1723,-722.2532 1270.7831,-708.2659"/>
<polygon fill="#000000" stroke="#000000" points="1272.9848,-710.9895 1278.8759,-702.1835 1268.7791,-705.3937 1272.9848,-710.9895"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.heapBitsSetType (1.74s)">
<text text-anchor="middle" x="1270.0869" y="-722.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.74s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node40" class="node">
<title>N39</title>
<g id="a_node40"><a xlink:title="runtime.(*mcache).nextFree (1.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1574.1443,-688.5 1444.5812,-688.5 1444.5812,-650.5 1574.1443,-650.5 1574.1443,-688.5"/>
<text text-anchor="middle" x="1509.3628" y="-676.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcache).nextFree</text>
<text text-anchor="middle" x="1509.3628" y="-666.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.02s(0.045%)</text>
<text text-anchor="middle" x="1509.3628" y="-656.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 1.19s(2.70%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N39 -->
<g id="edge37" class="edge">
<title>N8&#45;&gt;N39</title>
<g id="a_edge37"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (1.19s)">
<path fill="none" stroke="#000000" d="M1248.6861,-764.2073C1302.6821,-747.9047 1373.6893,-725.3338 1435.3628,-702 1442.9202,-699.1407 1450.8221,-695.9232 1458.531,-692.6535"/>
<polygon fill="#000000" stroke="#000000" points="1460.0029,-695.8304 1467.8023,-688.6597 1457.2335,-689.4015 1460.0029,-695.8304"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).nextFree (1.19s)">
<text text-anchor="middle" x="1401.0869" y="-722.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.19s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node58" class="node">
<title>N57</title>
<g id="a_node58"><a xlink:title="runtime.memclr (0.68s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1208.5813,-142 1096.1443,-142 1096.1443,-104 1208.5813,-104 1208.5813,-142"/>
<text text-anchor="middle" x="1152.3628" y="-126" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.memclr</text>
<text text-anchor="middle" x="1152.3628" y="-111" font-family="Times,serif" font-size="15.00" fill="#000000">0.68s(1.54%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N57 -->
<g id="edge102" class="edge">
<title>N8&#45;&gt;N57</title>
<g id="a_edge102"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.11s)">
<path fill="none" stroke="#000000" d="M1248.6513,-786.1958C1583.8303,-774.0639 2792.3628,-719.4068 2792.3628,-562 2792.3628,-562 2792.3628,-562 2792.3628,-244 2792.3628,-163.7238 1526.1203,-131.0997 1218.9088,-124.3658"/>
<polygon fill="#000000" stroke="#000000" points="1218.8891,-120.8647 1208.8153,-124.1464 1218.7368,-127.863 1218.8891,-120.8647"/>
</a>
</g>
<g id="a_edge102&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.memclr (0.11s)">
<text text-anchor="middle" x="2808.8306" y="-459.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node">
<title>N11</title>
<g id="a_node12"><a xlink:title="runtime.gcDrain (8.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="276.0177,-1242.5 176.7079,-1242.5 176.7079,-1198.5 276.0177,-1198.5 276.0177,-1242.5"/>
<text text-anchor="middle" x="226.3628" y="-1228.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.gcDrain</text>
<text text-anchor="middle" x="226.3628" y="-1216.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.22s(0.5%)</text>
<text text-anchor="middle" x="226.3628" y="-1204.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 8.64s(19.60%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N11 -->
<g id="edge8" class="edge">
<title>N9&#45;&gt;N11</title>
<g id="a_edge8"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcDrain (8.56s)">
<path fill="none" stroke="#000000" d="M324.2378,-1318.7969C305.8837,-1300.3637 277.2041,-1271.5605 255.6257,-1249.8891"/>
<polygon fill="#000000" stroke="#000000" points="257.854,-1247.1665 248.3179,-1242.5497 252.8936,-1252.1056 257.854,-1247.1665"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcDrain (8.56s)">
<text text-anchor="middle" x="301.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 8.56s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node">
<title>N10</title>
<g id="a_node11"><a xlink:title="runtime.systemstack (8.85s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1228.5633,-587 1098.1623,-587 1098.1623,-537 1228.5633,-537 1228.5633,-587"/>
<text text-anchor="middle" x="1163.3628" y="-571.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.systemstack</text>
<text text-anchor="middle" x="1163.3628" y="-557.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.50s(1.13%)</text>
<text text-anchor="middle" x="1163.3628" y="-543.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 8.85s(20.08%)</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node">
<title>N17</title>
<g id="a_node18"><a xlink:title="runtime.notewakeup (3.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1448.8993,-481.5 1367.8263,-481.5 1367.8263,-445.5 1448.8993,-445.5 1448.8993,-481.5"/>
<text text-anchor="middle" x="1408.3628" y="-465.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notewakeup</text>
<text text-anchor="middle" x="1408.3628" y="-457.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 3.77s(8.55%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N17 -->
<g id="edge23" class="edge">
<title>N10&#45;&gt;N17</title>
<g id="a_edge23"><a xlink:title="runtime.systemstack ... runtime.notewakeup (1.87s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1228.7858,-538.4895C1267.1415,-524.3285 1316.3571,-505.504 1359.3628,-487 1360.3594,-486.5712 1361.3654,-486.1334 1362.3779,-485.6885"/>
<polygon fill="#000000" stroke="#000000" points="1363.9121,-488.8361 1371.5884,-481.5336 1361.0337,-482.4553 1363.9121,-488.8361"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.systemstack ... runtime.notewakeup (1.87s)">
<text text-anchor="middle" x="1329.0869" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.87s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node">
<title>N28</title>
<g id="a_node29"><a xlink:title="runtime.gcAssistAlloc.func1 (1.68s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1638.3381,-487 1472.3875,-487 1472.3875,-440 1638.3381,-440 1638.3381,-487"/>
<text text-anchor="middle" x="1555.3628" y="-472.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.gcAssistAlloc.func1</text>
<text text-anchor="middle" x="1555.3628" y="-459.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.27s(0.61%)</text>
<text text-anchor="middle" x="1555.3628" y="-446.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.68s(3.81%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N28 -->
<g id="edge27" class="edge">
<title>N10&#45;&gt;N28</title>
<g id="a_edge27"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcAssistAlloc.func1 (1.68s)">
<path fill="none" stroke="#000000" d="M1228.9212,-547.4492C1264.6091,-539.3761 1309.4941,-528.9757 1349.3628,-519 1386.476,-509.7137 1427.1757,-498.8861 1462.5261,-489.2727"/>
<polygon fill="#000000" stroke="#000000" points="1463.6199,-492.6023 1472.3474,-486.5957 1461.779,-485.8487 1463.6199,-492.6023"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcAssistAlloc.func1 (1.68s)">
<text text-anchor="middle" x="1418.0869" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.68s</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node">
<title>N30</title>
<g id="a_node31"><a xlink:title="runtime.semasleep1 (1.45s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1027.121,-481.5 947.6046,-481.5 947.6046,-445.5 1027.121,-445.5 1027.121,-481.5"/>
<text text-anchor="middle" x="987.3628" y="-465.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep1</text>
<text text-anchor="middle" x="987.3628" y="-457.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.45s(3.29%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N30 -->
<g id="edge30" class="edge">
<title>N10&#45;&gt;N30</title>
<g id="a_edge30"><a xlink:title="runtime.systemstack ... runtime.semasleep1 (1.45s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1118.4952,-536.8894C1090.7704,-521.373 1055.457,-501.6095 1028.4623,-486.5017"/>
<polygon fill="#000000" stroke="#000000" points="1030.0852,-483.3992 1019.6495,-481.5696 1026.6665,-489.5076 1030.0852,-483.3992"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.systemstack ... runtime.semasleep1 (1.45s)">
<text text-anchor="middle" x="1103.0869" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.45s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node49" class="node">
<title>N48</title>
<g id="a_node49"><a xlink:title="runtime.(*mcache).nextFree.func1 (0.91s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1212.5579,-481.5 1072.1676,-481.5 1072.1676,-445.5 1212.5579,-445.5 1212.5579,-481.5"/>
<text text-anchor="middle" x="1142.3628" y="-469.8" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.(*mcache).nextFree.func1</text>
<text text-anchor="middle" x="1142.3628" y="-460.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.023%)</text>
<text text-anchor="middle" x="1142.3628" y="-451.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 0.91s(2.06%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N48 -->
<g id="edge50" class="edge">
<title>N10&#45;&gt;N48</title>
<g id="a_edge50"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.91s)">
<path fill="none" stroke="#000000" d="M1158.0093,-536.8894C1155.0562,-523.038 1151.3815,-505.802 1148.3355,-491.5149"/>
<polygon fill="#000000" stroke="#000000" points="1151.7563,-490.7738 1146.248,-481.7234 1144.9101,-492.2334 1151.7563,-490.7738"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mcache).nextFree.func1 (0.91s)">
<text text-anchor="middle" x="1171.0869" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.91s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node51" class="node">
<title>N50</title>
<g id="a_node51"><a xlink:title="runtime.deferproc.func1 (0.85s)">
<polygon fill="#f8f8f8" stroke="#000000" points="581.4766,-485.5 449.2489,-485.5 449.2489,-441.5 581.4766,-441.5 581.4766,-485.5"/>
<text text-anchor="middle" x="515.3628" y="-471.9" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.deferproc.func1</text>
<text text-anchor="middle" x="515.3628" y="-459.9" font-family="Times,serif" font-size="12.00" fill="#000000">0.22s(0.5%)</text>
<text text-anchor="middle" x="515.3628" y="-447.9" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.85s(1.93%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N50 -->
<g id="edge52" class="edge">
<title>N10&#45;&gt;N50</title>
<g id="a_edge52"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.85s)">
<path fill="none" stroke="#000000" d="M1097.9634,-552.0589C977.3483,-533.7246 720.4828,-494.6795 591.9498,-475.1417"/>
<polygon fill="#000000" stroke="#000000" points="592.2073,-471.6407 581.7949,-473.5981 591.1553,-478.5612 592.2073,-471.6407"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferproc.func1 (0.85s)">
<text text-anchor="middle" x="895.0869" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.85s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node72" class="node">
<title>N71</title>
<g id="a_node72"><a xlink:title="runtime.writebarrierptr_nostore1.func1 (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1833.4746,-482.5 1661.251,-482.5 1661.251,-444.5 1833.4746,-444.5 1833.4746,-482.5"/>
<text text-anchor="middle" x="1747.3628" y="-470.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.writebarrierptr_nostore1.func1</text>
<text text-anchor="middle" x="1747.3628" y="-460.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.091%)</text>
<text text-anchor="middle" x="1747.3628" y="-450.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.42s(0.95%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N71 -->
<g id="edge74" class="edge">
<title>N10&#45;&gt;N71</title>
<g id="a_edge74"><a xlink:title="runtime.systemstack &#45;&gt; runtime.writebarrierptr_nostore1.func1 (0.42s)">
<path fill="none" stroke="#000000" d="M1228.6167,-553.5154C1321.8476,-541.0243 1498.3801,-516.0038 1647.3628,-487 1651.1921,-486.2545 1655.0971,-485.4648 1659.037,-484.644"/>
<polygon fill="#000000" stroke="#000000" points="1659.828,-488.0541 1668.8789,-482.5467 1658.369,-481.2078 1659.828,-488.0541"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.writebarrierptr_nostore1.func1 (0.42s)">
<text text-anchor="middle" x="1559.0869" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node77" class="node">
<title>N76</title>
<g id="a_node77"><a xlink:title="runtime.deferreturn.func1 (0.36s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1350.1493,-482.5 1230.5763,-482.5 1230.5763,-444.5 1350.1493,-444.5 1350.1493,-482.5"/>
<text text-anchor="middle" x="1290.3628" y="-470.5" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.deferreturn.func1</text>
<text text-anchor="middle" x="1290.3628" y="-460.5" font-family="Times,serif" font-size="10.00" fill="#000000">0.04s(0.091%)</text>
<text text-anchor="middle" x="1290.3628" y="-450.5" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.36s(0.82%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N76 -->
<g id="edge80" class="edge">
<title>N10&#45;&gt;N76</title>
<g id="a_edge80"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.36s)">
<path fill="none" stroke="#000000" d="M1195.7389,-536.8894C1214.6878,-522.1928 1238.5493,-503.6861 1257.5697,-488.934"/>
<polygon fill="#000000" stroke="#000000" points="1259.9072,-491.5504 1265.6641,-482.6561 1255.6171,-486.0191 1259.9072,-491.5504"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.deferreturn.func1 (0.36s)">
<text text-anchor="middle" x="1252.0869" y="-507.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.36s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node">
<title>N13</title>
<g id="a_node14"><a xlink:title="runtime.scanobject (7.25s)">
<polygon fill="#f8f8f8" stroke="#000000" points="325.2964,-284 127.4292,-284 127.4292,-204 325.2964,-204 325.2964,-284"/>
<text text-anchor="middle" x="226.3628" y="-260.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.scanobject</text>
<text text-anchor="middle" x="226.3628" y="-236.8" font-family="Times,serif" font-size="24.00" fill="#000000">3.71s(8.42%)</text>
<text text-anchor="middle" x="226.3628" y="-212.8" font-family="Times,serif" font-size="24.00" fill="#000000">of 7.25s(16.45%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N13 -->
<g id="edge10" class="edge">
<title>N11&#45;&gt;N13</title>
<g id="a_edge10"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.scanobject (5.91s)">
<path fill="none" stroke="#000000" d="M226.3628,-1198.1875C226.3628,-1175.5833 226.3628,-1139.6111 226.3628,-1108.5 226.3628,-1108.5 226.3628,-1108.5 226.3628,-362 226.3628,-339.8306 226.3628,-315.3183 226.3628,-294.4054"/>
<polygon fill="#000000" stroke="#000000" points="229.8629,-294.1426 226.3628,-284.1427 222.8629,-294.1427 229.8629,-294.1426"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.scanobject (5.91s)">
<text text-anchor="middle" x="243.0869" y="-722.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 5.91s</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N8 -->
<g id="edge9" class="edge">
<title>N12&#45;&gt;N8</title>
<g id="a_edge9"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (7.29s)">
<path fill="none" stroke="#000000" d="M1163.3628,-878.8724C1163.3628,-866.6483 1163.3628,-850.9749 1163.3628,-836.1503"/>
<polygon fill="#000000" stroke="#000000" points="1166.8629,-836.0756 1163.3628,-826.0757 1159.8629,-836.0757 1166.8629,-836.0756"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="runtime.newobject &#45;&gt; runtime.mallocgc (7.29s)">
<text text-anchor="middle" x="1180.0869" y="-846.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 7.29s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node">
<title>N23</title>
<g id="a_node24"><a xlink:title="runtime.greyobject (2.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="302.8137,-154 149.9119,-154 149.9119,-92 302.8137,-92 302.8137,-154"/>
<text text-anchor="middle" x="226.3628" y="-135.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.greyobject</text>
<text text-anchor="middle" x="226.3628" y="-117.6" font-family="Times,serif" font-size="18.00" fill="#000000">1.29s(2.93%)</text>
<text text-anchor="middle" x="226.3628" y="-99.6" font-family="Times,serif" font-size="18.00" fill="#000000">of 2.44s(5.54%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N23 -->
<g id="edge17" class="edge">
<title>N13&#45;&gt;N23</title>
<g id="a_edge17"><a xlink:title="runtime.scanobject &#45;&gt; runtime.greyobject (2.39s)">
<path fill="none" stroke="#000000" d="M226.3628,-203.7088C226.3628,-191.1408 226.3628,-177.2583 226.3628,-164.6022"/>
<polygon fill="#000000" stroke="#000000" points="229.8629,-164.3154 226.3628,-154.3154 222.8629,-164.3154 229.8629,-164.3154"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.scanobject &#45;&gt; runtime.greyobject (2.39s)">
<text text-anchor="middle" x="243.0869" y="-174.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.39s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node">
<title>N34</title>
<g id="a_node35"><a xlink:title="runtime.heapBitsForObject (1.26s)">
<polygon fill="#f8f8f8" stroke="#000000" points="532.8252,-145 319.9004,-145 319.9004,-101 532.8252,-101 532.8252,-145"/>
<text text-anchor="middle" x="426.3628" y="-126.6" font-family="Times,serif" font-size="18.00" fill="#000000">runtime.heapBitsForObject</text>
<text text-anchor="middle" x="426.3628" y="-108.6" font-family="Times,serif" font-size="18.00" fill="#000000">1.26s(2.86%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N34 -->
<g id="edge39" class="edge">
<title>N13&#45;&gt;N34</title>
<g id="a_edge39"><a xlink:title="runtime.scanobject &#45;&gt; runtime.heapBitsForObject (1.15s)">
<path fill="none" stroke="#000000" d="M292.6821,-203.8768C321.7974,-186.2621 355.2256,-166.038 381.371,-150.22"/>
<polygon fill="#000000" stroke="#000000" points="383.1975,-153.2058 389.9418,-145.0347 379.574,-147.2166 383.1975,-153.2058"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.scanobject &#45;&gt; runtime.heapBitsForObject (1.15s)">
<text text-anchor="middle" x="361.0869" y="-174.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.15s</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N12 -->
<g id="edge12" class="edge">
<title>N14&#45;&gt;N12</title>
<g id="a_edge12"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (4.74s)">
<path fill="none" stroke="#000000" d="M1163.3628,-1195.4294C1163.3628,-1138.1355 1163.3628,-997.639 1163.3628,-933.6735"/>
<polygon fill="#000000" stroke="#000000" points="1166.8629,-933.3713 1163.3628,-923.3714 1159.8629,-933.3714 1166.8629,-933.3713"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.newobject (4.74s)">
<text text-anchor="middle" x="1180.0869" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.74s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node38" class="node">
<title>N37</title>
<g id="a_node38"><a xlink:title="runtime.typedmemmove (1.24s)">
<polygon fill="#f8f8f8" stroke="#000000" points="708.1081,-926 554.6175,-926 554.6175,-876 708.1081,-876 708.1081,-926"/>
<text text-anchor="middle" x="631.3628" y="-910.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.typedmemmove</text>
<text text-anchor="middle" x="631.3628" y="-896.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.51s(1.16%)</text>
<text text-anchor="middle" x="631.3628" y="-882.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.24s(2.81%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N37 -->
<g id="edge104" class="edge">
<title>N14&#45;&gt;N37</title>
<g id="a_edge104"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.typedmemmove (0.09s)">
<path fill="none" stroke="#000000" d="M1144.3547,-1195.4391C1118.5923,-1163.0375 1069.6489,-1106.7732 1016.3628,-1073 996.2554,-1060.2558 987.9594,-1063.986 965.9146,-1055 868.2243,-1015.1792 757.4927,-962.7199 691.1072,-930.4532"/>
<polygon fill="#000000" stroke="#000000" points="692.5633,-927.2694 682.0403,-926.0377 689.4984,-933.5628 692.5633,-927.2694"/>
</a>
</g>
<g id="a_edge104&#45;label"><a xlink:title="main.(*CodeQuotation).cloneCode &#45;&gt; runtime.typedmemmove (0.09s)">
<text text-anchor="middle" x="983.0869" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node">
<title>N15</title>
<g id="a_node16"><a xlink:title="main.(*machine).loadLoopWords.func2 (4.34s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1772.3511,-1545 1628.3745,-1545 1628.3745,-1509 1772.3511,-1509 1772.3511,-1545"/>
<text text-anchor="middle" x="1700.3628" y="-1528.6" font-family="Times,serif" font-size="8.00" fill="#000000">main.(*machine).loadLoopWords.func2</text>
<text text-anchor="middle" x="1700.3628" y="-1520.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 4.34s(9.85%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N2 -->
<g id="edge13" class="edge">
<title>N15&#45;&gt;N2</title>
<g id="a_edge13"><a xlink:title="main.(*machine).loadLoopWords.func2 &#45;&gt; main.(*machine).execute (4.34s)">
<path fill="none" stroke="#000000" d="M1687.7581,-1508.9527C1672.3018,-1487.1224 1644.9922,-1449.5067 1619.3628,-1419 1609.7687,-1407.5801 1599.0457,-1395.6757 1588.7213,-1384.5923"/>
<polygon fill="#000000" stroke="#000000" points="1591.0523,-1381.9616 1581.6561,-1377.0664 1585.9488,-1386.7527 1591.0523,-1381.9616"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func2 &#45;&gt; main.(*machine).execute (4.34s)">
<text text-anchor="middle" x="1626.0869" y="-1397.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 4.34s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node">
<title>N16</title>
<g id="a_node17"><a xlink:title="runtime.mach_semaphore_signal (3.77s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1575.2691,-390 1241.4565,-390 1241.4565,-334 1575.2691,-334 1575.2691,-390"/>
<text text-anchor="middle" x="1408.3628" y="-366.8" font-family="Times,serif" font-size="24.00" fill="#000000">runtime.mach_semaphore_signal</text>
<text text-anchor="middle" x="1408.3628" y="-342.8" font-family="Times,serif" font-size="24.00" fill="#000000">3.77s(8.55%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N16 -->
<g id="edge14" class="edge">
<title>N17&#45;&gt;N16</title>
<g id="a_edge14"><a xlink:title="runtime.notewakeup ... runtime.mach_semaphore_signal (3.77s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1408.3628,-445.3538C1408.3628,-432.9374 1408.3628,-416.0057 1408.3628,-400.6451"/>
<polygon fill="#000000" stroke="#000000" points="1411.8629,-400.3366 1408.3628,-390.3367 1404.8629,-400.3367 1411.8629,-400.3366"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="runtime.notewakeup ... runtime.mach_semaphore_signal (3.77s)">
<text text-anchor="middle" x="1425.0869" y="-410.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 3.77s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N38 -->
<g id="edge90" class="edge">
<title>N18&#45;&gt;N38</title>
<g id="a_edge90"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.22s)">
<path fill="none" stroke="#000000" d="M2059.4207,-1072.9601C2090.3362,-1057.7122 2125.8381,-1040.2022 2154.4249,-1026.1029"/>
<polygon fill="#000000" stroke="#000000" points="2156.0284,-1029.2146 2163.4487,-1021.6522 2152.932,-1022.9366 2156.0284,-1029.2146"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.memeqbody (0.22s)">
<text text-anchor="middle" x="2140.0869" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node41" class="node">
<title>N40</title>
<g id="a_node41"><a xlink:title="runtime.aeshashbody (1.19s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1351.3564,-1020.5 1191.3691,-1020.5 1191.3691,-978.5 1351.3564,-978.5 1351.3564,-1020.5"/>
<text text-anchor="middle" x="1271.3628" y="-1002.9" font-family="Times,serif" font-size="17.00" fill="#000000">runtime.aeshashbody</text>
<text text-anchor="middle" x="1271.3628" y="-985.9" font-family="Times,serif" font-size="17.00" fill="#000000">1.19s(2.70%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N40 -->
<g id="edge40" class="edge">
<title>N18&#45;&gt;N40</title>
<g id="a_edge40"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (1.13s)">
<path fill="none" stroke="#000000" d="M1862.9253,-1074.4892C1860.0501,-1073.9611 1857.193,-1073.4632 1854.3628,-1073 1730.2274,-1052.6818 1696.9839,-1068.419 1571.9146,-1055 1548.2771,-1052.4639 1383.6423,-1027.8194 1360.3628,-1023 1359.8933,-1022.9028 1359.4226,-1022.8047 1358.9508,-1022.7056"/>
<polygon fill="#000000" stroke="#000000" points="1359.4267,-1019.2269 1348.909,-1020.5034 1357.9271,-1026.0644 1359.4267,-1019.2269"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.mapaccess2_faststr &#45;&gt; runtime.aeshashbody (1.13s)">
<text text-anchor="middle" x="1589.0869" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.13s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N12 -->
<g id="edge19" class="edge">
<title>N19&#45;&gt;N12</title>
<g id="a_edge19"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (2.13s)">
<path fill="none" stroke="#000000" d="M1092.5349,-975.9155C1099.1199,-965.6945 1107.375,-953.8413 1115.9146,-944 1120.0266,-939.2612 1124.6316,-934.5219 1129.3124,-930.0127"/>
<polygon fill="#000000" stroke="#000000" points="1131.7452,-932.5297 1136.6704,-923.1493 1126.9705,-927.4109 1131.7452,-932.5297"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.newobject (2.13s)">
<text text-anchor="middle" x="1133.0869" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.13s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N37 -->
<g id="edge75" class="edge">
<title>N19&#45;&gt;N37</title>
<g id="a_edge75"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.40s)">
<path fill="none" stroke="#000000" d="M1046.2626,-975.725C1028.6244,-963.9984 1005.8165,-950.916 983.3628,-944 872.2391,-909.7724 836.9919,-945.498 722.3628,-926 720.899,-925.751 719.4248,-925.4883 717.9428,-925.2132"/>
<polygon fill="#000000" stroke="#000000" points="718.5687,-921.7691 708.0752,-923.2309 717.1899,-928.632 718.5687,-921.7691"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="runtime.convT2I &#45;&gt; runtime.typedmemmove (0.40s)">
<text text-anchor="middle" x="1031.0869" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.40s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node">
<title>N20</title>
<g id="a_node21"><a xlink:title="runtime.memmove (2.71s)">
<polygon fill="#f8f8f8" stroke="#000000" points="436.6569,-388 254.0687,-388 254.0687,-336 436.6569,-336 436.6569,-388"/>
<text text-anchor="middle" x="345.3628" y="-366.4" font-family="Times,serif" font-size="22.00" fill="#000000">runtime.memmove</text>
<text text-anchor="middle" x="345.3628" y="-344.4" font-family="Times,serif" font-size="22.00" fill="#000000">2.71s(6.15%)</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node">
<title>N21</title>
<g id="a_node22"><a xlink:title="runtime.schedule (2.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="479.1327,-1017.5 405.5929,-1017.5 405.5929,-981.5 479.1327,-981.5 479.1327,-1017.5"/>
<text text-anchor="middle" x="442.3628" y="-1001.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.schedule</text>
<text text-anchor="middle" x="442.3628" y="-993.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 2.63s(5.97%)</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node57" class="node">
<title>N56</title>
<g id="a_node57"><a xlink:title="runtime.stopm (0.69s)">
<polygon fill="#f8f8f8" stroke="#000000" points="485.1327,-919 411.5929,-919 411.5929,-883 485.1327,-883 485.1327,-919"/>
<text text-anchor="middle" x="448.3628" y="-902.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.stopm</text>
<text text-anchor="middle" x="448.3628" y="-894.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.69s(1.57%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N56 -->
<g id="edge58" class="edge">
<title>N21&#45;&gt;N56</title>
<g id="a_edge58"><a xlink:title="runtime.schedule ... runtime.stopm (0.69s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M443.4633,-981.4336C444.3458,-966.9456 445.6009,-946.3416 446.6198,-929.6145"/>
<polygon fill="#000000" stroke="#000000" points="450.1344,-929.4798 447.249,-919.2855 443.1473,-929.0541 450.1344,-929.4798"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.schedule ... runtime.stopm (0.69s)">
<text text-anchor="middle" x="463.0869" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.69s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N8 -->
<g id="edge21" class="edge">
<title>N22&#45;&gt;N8</title>
<g id="a_edge21"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (2.03s)">
<path fill="none" stroke="#000000" d="M607.6626,-980.4483C712.1226,-944.46 939.5375,-866.1117 1068.7256,-821.6041"/>
<polygon fill="#000000" stroke="#000000" points="1069.9218,-824.894 1078.2364,-818.3275 1067.6417,-818.2757 1069.9218,-824.894"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.mallocgc (2.03s)">
<text text-anchor="middle" x="926.0869" y="-896.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 2.03s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N20 -->
<g id="edge105" class="edge">
<title>N22&#45;&gt;N20</title>
<g id="a_edge105"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.09s)">
<path fill="none" stroke="#000000" d="M496.9694,-979.0084C469.8923,-968.9545 442.7724,-958.8117 441.3628,-958 421.9325,-946.8116 417.919,-942.1468 402.3628,-926 392.68,-915.9496 383.3628,-914.9558 383.3628,-901 383.3628,-901 383.3628,-901 383.3628,-463.5 383.3628,-440.482 374.6855,-416.2853 365.624,-397.2925"/>
<polygon fill="#000000" stroke="#000000" points="368.6478,-395.5143 361.0382,-388.1424 362.3898,-398.6507 368.6478,-395.5143"/>
</a>
</g>
<g id="a_edge105&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.memmove (0.09s)">
<text text-anchor="middle" x="400.0869" y="-665.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.09s</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N37 -->
<g id="edge99" class="edge">
<title>N22&#45;&gt;N37</title>
<g id="a_edge99"><a xlink:title="runtime.growslice &#45;&gt; runtime.typedmemmove (0.12s)">
<path fill="none" stroke="#000000" d="M570.6747,-975.9068C578.4096,-966.0083 587.5471,-954.4026 595.9146,-944 598.4349,-940.8667 601.0712,-937.6173 603.7194,-934.3723"/>
<polygon fill="#000000" stroke="#000000" points="606.6353,-936.3359 610.2674,-926.3831 601.2214,-931.8986 606.6353,-936.3359"/>
</a>
</g>
<g id="a_edge99&#45;label"><a xlink:title="runtime.growslice &#45;&gt; runtime.typedmemmove (0.12s)">
<text text-anchor="middle" x="613.0869" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node43" class="node">
<title>N42</title>
<g id="a_node43"><a xlink:title="runtime/internal/atomic.Or8 (1.11s)">
<polygon fill="#f8f8f8" stroke="#000000" points="330.0548,-42 122.6708,-42 122.6708,0 330.0548,0 330.0548,-42"/>
<text text-anchor="middle" x="226.3628" y="-24.4" font-family="Times,serif" font-size="17.00" fill="#000000">runtime/internal/atomic.Or8</text>
<text text-anchor="middle" x="226.3628" y="-7.4" font-family="Times,serif" font-size="17.00" fill="#000000">1.11s(2.52%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N42 -->
<g id="edge42" class="edge">
<title>N23&#45;&gt;N42</title>
<g id="a_edge42"><a xlink:title="runtime.greyobject &#45;&gt; runtime/internal/atomic.Or8 (1.10s)">
<path fill="none" stroke="#000000" d="M226.3628,-91.8424C226.3628,-79.3012 226.3628,-64.8635 226.3628,-52.3073"/>
<polygon fill="#000000" stroke="#000000" points="229.8629,-52.2855 226.3628,-42.2855 222.8629,-52.2856 229.8629,-52.2855"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.greyobject &#45;&gt; runtime/internal/atomic.Or8 (1.10s)">
<text text-anchor="middle" x="243.0869" y="-62.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.10s</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N10 -->
<g id="edge24" class="edge">
<title>N24&#45;&gt;N10</title>
<g id="a_edge24"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (1.84s)">
<path fill="none" stroke="#000000" d="M1163.3628,-651.2641C1163.3628,-636.542 1163.3628,-615.3861 1163.3628,-597.3651"/>
<polygon fill="#000000" stroke="#000000" points="1166.8629,-597.1891 1163.3628,-587.1891 1159.8629,-597.1892 1166.8629,-597.1891"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (1.84s)">
<text text-anchor="middle" x="1180.0869" y="-607.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.84s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node">
<title>N26</title>
<g id="a_node27"><a xlink:title="runtime.morestack (1.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="486.121,-1355 410.6046,-1355 410.6046,-1319 486.121,-1319 486.121,-1355"/>
<text text-anchor="middle" x="448.3628" y="-1338.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.morestack</text>
<text text-anchor="middle" x="448.3628" y="-1330.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1.70s(3.86%)</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node">
<title>N27</title>
<g id="a_node28"><a xlink:title="runtime.newstack (1.70s)">
<polygon fill="#f8f8f8" stroke="#000000" points="524.0927,-1238.5 444.6328,-1238.5 444.6328,-1202.5 524.0927,-1202.5 524.0927,-1238.5"/>
<text text-anchor="middle" x="484.3628" y="-1226.8" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.newstack</text>
<text text-anchor="middle" x="484.3628" y="-1217.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.023%)</text>
<text text-anchor="middle" x="484.3628" y="-1208.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 1.70s(3.86%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N27 -->
<g id="edge26" class="edge">
<title>N26&#45;&gt;N27</title>
<g id="a_edge26"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (1.70s)">
<path fill="none" stroke="#000000" d="M445.3146,-1318.9821C443.533,-1304.0684 442.7004,-1282.5583 448.9146,-1265 451.2172,-1258.4937 454.9038,-1252.2239 459.0473,-1246.5462"/>
<polygon fill="#000000" stroke="#000000" points="461.8176,-1248.686 465.3369,-1238.6928 456.3539,-1244.3102 461.8176,-1248.686"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.morestack &#45;&gt; runtime.newstack (1.70s)">
<text text-anchor="middle" x="466.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.70s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node">
<title>N29</title>
<g id="a_node30"><a xlink:title="runtime.goschedImpl (1.64s)">
<polygon fill="#f8f8f8" stroke="#000000" points="442.5961,-1126.5 350.1295,-1126.5 350.1295,-1090.5 442.5961,-1090.5 442.5961,-1126.5"/>
<text text-anchor="middle" x="396.3628" y="-1114.8" font-family="Times,serif" font-size="9.00" fill="#000000">runtime.goschedImpl</text>
<text text-anchor="middle" x="396.3628" y="-1105.8" font-family="Times,serif" font-size="9.00" fill="#000000">0.01s(0.023%)</text>
<text text-anchor="middle" x="396.3628" y="-1096.8" font-family="Times,serif" font-size="9.00" fill="#000000">of 1.64s(3.72%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N29 -->
<g id="edge28" class="edge">
<title>N27&#45;&gt;N29</title>
<g id="a_edge28"><a xlink:title="runtime.newstack ... runtime.goschedImpl (1.64s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M469.8314,-1202.0055C455.415,-1183.6574 433.1875,-1155.3678 416.9555,-1134.7089"/>
<polygon fill="#000000" stroke="#000000" points="419.5542,-1132.3512 410.6238,-1126.6504 414.0499,-1136.676 419.5542,-1132.3512"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.newstack ... runtime.goschedImpl (1.64s)">
<text text-anchor="middle" x="465.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.64s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node">
<title>N31</title>
<g id="a_node32"><a xlink:title="runtime.gcDrainN (1.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1681.895,-381 1592.8306,-381 1592.8306,-343 1681.895,-343 1681.895,-381"/>
<text text-anchor="middle" x="1637.3628" y="-369" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.gcDrainN</text>
<text text-anchor="middle" x="1637.3628" y="-359" font-family="Times,serif" font-size="10.00" fill="#000000">0.05s(0.11%)</text>
<text text-anchor="middle" x="1637.3628" y="-349" font-family="Times,serif" font-size="10.00" fill="#000000">of 1.40s(3.18%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N31 -->
<g id="edge31" class="edge">
<title>N28&#45;&gt;N31</title>
<g id="a_edge31"><a xlink:title="runtime.gcAssistAlloc.func1 &#45;&gt; runtime.gcDrainN (1.40s)">
<path fill="none" stroke="#000000" d="M1574.3813,-439.9587C1586.7098,-424.6986 1602.8028,-404.7785 1615.6353,-388.8944"/>
<polygon fill="#000000" stroke="#000000" points="1618.4496,-390.9803 1622.0114,-381.002 1613.0045,-386.5813 1618.4496,-390.9803"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.gcAssistAlloc.func1 &#45;&gt; runtime.gcDrainN (1.40s)">
<text text-anchor="middle" x="1615.0869" y="-410.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.40s</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N21 -->
<g id="edge29" class="edge">
<title>N29&#45;&gt;N21</title>
<g id="a_edge29"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (1.63s)">
<path fill="none" stroke="#000000" d="M404.1661,-1090.0096C411.4462,-1072.7589 422.4031,-1046.7959 430.7174,-1027.0945"/>
<polygon fill="#000000" stroke="#000000" points="434.0112,-1028.2913 434.6748,-1017.7173 427.562,-1025.5696 434.0112,-1028.2913"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (1.63s)">
<text text-anchor="middle" x="442.0869" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.63s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node52" class="node">
<title>N51</title>
<g id="a_node52"><a xlink:title="runtime.mach_semaphore_timedwait (0.80s)">
<polygon fill="#f8f8f8" stroke="#000000" points="841.0661,-382 587.6595,-382 587.6595,-342 841.0661,-342 841.0661,-382"/>
<text text-anchor="middle" x="714.3628" y="-365.2" font-family="Times,serif" font-size="16.00" fill="#000000">runtime.mach_semaphore_timedwait</text>
<text text-anchor="middle" x="714.3628" y="-349.2" font-family="Times,serif" font-size="16.00" fill="#000000">0.80s(1.81%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N51 -->
<g id="edge53" class="edge">
<title>N30&#45;&gt;N51</title>
<g id="a_edge53"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_timedwait (0.80s)">
<path fill="none" stroke="#000000" d="M947.3739,-448.6323C902.8975,-432.0962 830.4328,-405.1542 778.1135,-385.7022"/>
<polygon fill="#000000" stroke="#000000" points="779.183,-382.3658 768.5901,-382.1614 776.7435,-388.927 779.183,-382.3658"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_timedwait (0.80s)">
<text text-anchor="middle" x="892.0869" y="-410.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.80s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node59" class="node">
<title>N58</title>
<g id="a_node59"><a xlink:title="runtime.mach_semaphore_wait (0.65s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1063.5496,-381 859.176,-381 859.176,-343 1063.5496,-343 1063.5496,-381"/>
<text text-anchor="middle" x="961.3628" y="-365" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.mach_semaphore_wait</text>
<text text-anchor="middle" x="961.3628" y="-350" font-family="Times,serif" font-size="15.00" fill="#000000">0.65s(1.47%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N58 -->
<g id="edge59" class="edge">
<title>N30&#45;&gt;N58</title>
<g id="a_edge59"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.65s)">
<path fill="none" stroke="#000000" d="M982.7145,-445.3538C978.8317,-430.1959 973.2251,-408.3087 968.7314,-390.7658"/>
<polygon fill="#000000" stroke="#000000" points="972.1076,-389.8412 966.2356,-381.0225 965.3266,-391.5783 972.1076,-389.8412"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.semasleep1 &#45;&gt; runtime.mach_semaphore_wait (0.65s)">
<text text-anchor="middle" x="994.0869" y="-410.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.65s</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N13 -->
<g id="edge34" class="edge">
<title>N31&#45;&gt;N13</title>
<g id="a_edge34"><a xlink:title="runtime.gcDrainN &#45;&gt; runtime.scanobject (1.34s)">
<path fill="none" stroke="#000000" d="M1606.299,-342.9317C1599.3041,-339.4017 1591.7564,-336.1536 1584.3628,-334 1415.2596,-284.7443 1365.056,-314.4062 1189.3628,-302 880.015,-280.156 514.3916,-259.5695 335.7201,-249.8484"/>
<polygon fill="#000000" stroke="#000000" points="335.703,-246.3424 325.5278,-249.2946 335.3231,-253.3321 335.703,-246.3424"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.gcDrainN &#45;&gt; runtime.scanobject (1.34s)">
<text text-anchor="middle" x="1528.0869" y="-304.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.34s</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N10 -->
<g id="edge77" class="edge">
<title>N32&#45;&gt;N10</title>
<g id="a_edge77"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.38s)">
<path fill="none" stroke="#000000" d="M345.7797,-1193.744C335.0635,-1171.5743 322.3628,-1138.889 322.3628,-1108.5 322.3628,-1108.5 322.3628,-1108.5 322.3628,-951 322.3628,-880.6861 310.8952,-685.9599 361.3628,-637 374.3501,-624.4007 890.8276,-583.1305 1087.9636,-567.8011"/>
<polygon fill="#000000" stroke="#000000" points="1088.2536,-571.2892 1097.9525,-567.0253 1087.7115,-564.3102 1088.2536,-571.2892"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.systemstack (0.38s)">
<text text-anchor="middle" x="339.0869" y="-896.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N20 -->
<g id="edge89" class="edge">
<title>N32&#45;&gt;N20</title>
<g id="a_edge89"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.22s)">
<path fill="none" stroke="#000000" d="M324.7392,-1193.7492C301.845,-1173.2665 276.3628,-1142.7708 276.3628,-1108.5 276.3628,-1108.5 276.3628,-1108.5 276.3628,-463.5 276.3628,-437.7709 291.714,-413.7317 307.9348,-395.5125"/>
<polygon fill="#000000" stroke="#000000" points="310.6199,-397.7655 314.8975,-388.0726 305.509,-392.9824 310.6199,-397.7655"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.memmove (0.22s)">
<text text-anchor="middle" x="293.0869" y="-784.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.22s</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N18 -->
<g id="edge63" class="edge">
<title>N33&#45;&gt;N18</title>
<g id="a_edge63"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.58s)">
<path fill="none" stroke="#000000" d="M1874.2199,-1198.3724C1891.4369,-1184.6964 1914.089,-1166.7033 1934.5992,-1150.4115"/>
<polygon fill="#000000" stroke="#000000" points="1936.9826,-1152.9881 1942.636,-1144.0276 1932.6287,-1147.5069 1936.9826,-1152.9881"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.mapaccess2_faststr (0.58s)">
<text text-anchor="middle" x="1933.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node70" class="node">
<title>N69</title>
<g id="a_node70"><a xlink:title="main.isPrefixChar (0.44s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1845.357,-1126.5 1727.3686,-1126.5 1727.3686,-1090.5 1845.357,-1090.5 1845.357,-1126.5"/>
<text text-anchor="middle" x="1786.3628" y="-1111.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.isPrefixChar</text>
<text text-anchor="middle" x="1786.3628" y="-1097.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.44s(1%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N69 -->
<g id="edge72" class="edge">
<title>N33&#45;&gt;N69</title>
<g id="a_edge72"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.44s)">
<path fill="none" stroke="#000000" d="M1834.5087,-1198.3724C1824.8234,-1180.2932 1811.0963,-1154.6692 1800.7762,-1135.4051"/>
<polygon fill="#000000" stroke="#000000" points="1803.8238,-1133.682 1796.0164,-1126.52 1797.6534,-1136.9876 1803.8238,-1133.682"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; main.isPrefixChar (0.44s)">
<text text-anchor="middle" x="1838.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.44s</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N77 -->
<g id="edge97" class="edge">
<title>N33&#45;&gt;N77</title>
<g id="a_edge97"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.13s)">
<path fill="none" stroke="#000000" d="M1925.2473,-1198.4757C2006.1924,-1175.876 2120.3628,-1144 2120.3628,-1144 2150.8494,-1109.3654 2164.4791,-1075.07 2133.3628,-1041 2107.6198,-1012.8134 1864.2606,-1003.5706 1743.5677,-1000.7051"/>
<polygon fill="#000000" stroke="#000000" points="1743.4133,-997.2008 1733.3357,-1000.4705 1743.2528,-1004.1989 1743.4133,-997.2008"/>
</a>
</g>
<g id="a_edge97&#45;label"><a xlink:title="main.(*machine).hasPrefixWord &#45;&gt; runtime.stringiter2 (0.13s)">
<text text-anchor="middle" x="2167.0869" y="-1104.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.13s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node45" class="node">
<title>N44</title>
<g id="a_node45"><a xlink:title="runtime.mapassign1 (1.01s)">
<polygon fill="#f8f8f8" stroke="#000000" points="822.0113,-1133.5 692.7143,-1133.5 692.7143,-1083.5 822.0113,-1083.5 822.0113,-1133.5"/>
<text text-anchor="middle" x="757.3628" y="-1118.3" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.mapassign1</text>
<text text-anchor="middle" x="757.3628" y="-1104.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.39s(0.88%)</text>
<text text-anchor="middle" x="757.3628" y="-1090.3" font-family="Times,serif" font-size="14.00" fill="#000000">of 1.01s(2.29%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N44 -->
<g id="edge47" class="edge">
<title>N35&#45;&gt;N44</title>
<g id="a_edge47"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.97s)">
<path fill="none" stroke="#000000" d="M729.7906,-1199.8146C739.4986,-1193.6054 748.4338,-1185.7668 754.3628,-1176 760.1289,-1166.5015 762.0386,-1154.7903 762.1563,-1143.8045"/>
<polygon fill="#000000" stroke="#000000" points="765.6461,-1143.457 761.7874,-1133.5899 758.6507,-1143.7097 765.6461,-1143.457"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.mapassign1 (0.97s)">
<text text-anchor="middle" x="777.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.97s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node71" class="node">
<title>N70</title>
<g id="a_node71"><a xlink:title="main.(*machine).popValue (0.42s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1006.9775,-1126.5 839.7481,-1126.5 839.7481,-1090.5 1006.9775,-1090.5 1006.9775,-1126.5"/>
<text text-anchor="middle" x="923.3628" y="-1111.3" font-family="Times,serif" font-size="14.00" fill="#000000">main.(*machine).popValue</text>
<text text-anchor="middle" x="923.3628" y="-1097.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.42s(0.95%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N70 -->
<g id="edge100" class="edge">
<title>N35&#45;&gt;N70</title>
<g id="a_edge100"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.11s)">
<path fill="none" stroke="#000000" d="M665.2426,-1199.7882C659.7477,-1187.4184 656.2889,-1172.1833 665.4272,-1162 690.1999,-1134.3948 795.3188,-1152.7503 831.3628,-1144 845.4196,-1140.5875 860.2193,-1135.5605 873.7402,-1130.3564"/>
<polygon fill="#000000" stroke="#000000" points="875.3232,-1133.494 883.3307,-1126.5563 872.7446,-1126.9863 875.3232,-1133.494"/>
</a>
</g>
<g id="a_edge100&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; main.(*machine).popValue (0.11s)">
<text text-anchor="middle" x="682.8306" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node73" class="node">
<title>N72</title>
<g id="a_node73"><a xlink:title="runtime.assertI2T (0.40s)">
<polygon fill="#f8f8f8" stroke="#000000" points="674.2545,-1129 580.4711,-1129 580.4711,-1088 674.2545,-1088 674.2545,-1129"/>
<text text-anchor="middle" x="627.3628" y="-1116.2" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.assertI2T</text>
<text text-anchor="middle" x="627.3628" y="-1105.2" font-family="Times,serif" font-size="11.00" fill="#000000">0.09s(0.2%)</text>
<text text-anchor="middle" x="627.3628" y="-1094.2" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.40s(0.91%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N72 -->
<g id="edge103" class="edge">
<title>N35&#45;&gt;N72</title>
<g id="a_edge103"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.10s)">
<path fill="none" stroke="#000000" d="M631.7531,-1199.9697C622.6015,-1193.6442 614.1874,-1185.7173 608.9146,-1176 602.6511,-1164.4571 604.9669,-1150.6265 609.7334,-1138.4986"/>
<polygon fill="#000000" stroke="#000000" points="613.0027,-1139.7646 613.9643,-1129.2135 606.6328,-1136.862 613.0027,-1139.7646"/>
</a>
</g>
<g id="a_edge103&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func1 &#45;&gt; runtime.assertI2T (0.10s)">
<text text-anchor="middle" x="626.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.10s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N10 -->
<g id="edge49" class="edge">
<title>N36&#45;&gt;N10</title>
<g id="a_edge49"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.91s)">
<path fill="none" stroke="#000000" d="M3299.2342,-1196.9103C3295.6003,-1195.7833 3291.9546,-1194.7934 3288.3628,-1194 3235.0557,-1182.2246 2846.235,-1200.3273 2797.3628,-1176 2762.7195,-1158.7555 2742.3628,-1147.1979 2742.3628,-1108.5 2742.3628,-1108.5 2742.3628,-1108.5 2742.3628,-669.5 2742.3628,-593.2171 1553.8372,-568.3823 1239.0855,-563.1429"/>
<polygon fill="#000000" stroke="#000000" points="1238.7581,-559.6371 1228.7018,-562.9719 1238.6428,-566.6361 1238.7581,-559.6371"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.deferproc &#45;&gt; runtime.systemstack (0.91s)">
<text text-anchor="middle" x="2759.0869" y="-896.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.91s</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N20 -->
<g id="edge81" class="edge">
<title>N37&#45;&gt;N20</title>
<g id="a_edge81"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.34s)">
<path fill="none" stroke="#000000" d="M593.8998,-875.724C576.8154,-862.5953 557.513,-845.2731 544.3628,-826 488.8665,-744.6636 452.3378,-489.6897 397.3628,-408 394.4512,-403.6736 391.0385,-399.4957 387.3773,-395.5396"/>
<polygon fill="#000000" stroke="#000000" points="389.6316,-392.8431 380.0964,-388.2246 384.6703,-397.7813 389.6316,-392.8431"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.memmove (0.34s)">
<text text-anchor="middle" x="488.0869" y="-607.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node74" class="node">
<title>N73</title>
<g id="a_node74"><a xlink:title="runtime.heapBitsBulkBarrier (0.39s)">
<polygon fill="#f8f8f8" stroke="#000000" points="708.998,-811 553.7276,-811 553.7276,-767 708.998,-767 708.998,-811"/>
<text text-anchor="middle" x="631.3628" y="-797.4" font-family="Times,serif" font-size="12.00" fill="#000000">runtime.heapBitsBulkBarrier</text>
<text text-anchor="middle" x="631.3628" y="-785.4" font-family="Times,serif" font-size="12.00" fill="#000000">0.18s(0.41%)</text>
<text text-anchor="middle" x="631.3628" y="-773.4" font-family="Times,serif" font-size="12.00" fill="#000000">of 0.39s(0.88%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N73 -->
<g id="edge76" class="edge">
<title>N37&#45;&gt;N73</title>
<g id="a_edge76"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.39s)">
<path fill="none" stroke="#000000" d="M631.3628,-875.865C631.3628,-859.7353 631.3628,-838.6374 631.3628,-821.2734"/>
<polygon fill="#000000" stroke="#000000" points="634.8629,-821.0221 631.3628,-811.0221 627.8629,-821.0222 634.8629,-821.0221"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.typedmemmove &#45;&gt; runtime.heapBitsBulkBarrier (0.39s)">
<text text-anchor="middle" x="648.0869" y="-846.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.39s</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N10 -->
<g id="edge38" class="edge">
<title>N39&#45;&gt;N10</title>
<g id="a_edge38"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (1.15s)">
<path fill="none" stroke="#000000" d="M1468.6897,-650.3764C1457.9735,-645.687 1446.3368,-640.8997 1435.3628,-637 1370.0757,-613.7998 1293.897,-593.3407 1238.7935,-579.6763"/>
<polygon fill="#000000" stroke="#000000" points="1239.3039,-576.1975 1228.7571,-577.2048 1237.6301,-582.9945 1239.3039,-576.1975"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.(*mcache).nextFree &#45;&gt; runtime.systemstack (1.15s)">
<text text-anchor="middle" x="1394.0869" y="-607.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1.15s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node42" class="node">
<title>N41</title>
<g id="a_node42"><a xlink:title="strings.ContainsRune (1.12s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1425.9489,-1132 1298.7767,-1132 1298.7767,-1085 1425.9489,-1085 1425.9489,-1132"/>
<text text-anchor="middle" x="1362.3628" y="-1117.6" font-family="Times,serif" font-size="13.00" fill="#000000">strings.ContainsRune</text>
<text text-anchor="middle" x="1362.3628" y="-1104.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.34s(0.77%)</text>
<text text-anchor="middle" x="1362.3628" y="-1091.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 1.12s(2.54%)</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node54" class="node">
<title>N53</title>
<g id="a_node54"><a xlink:title="strings.IndexRune (0.78s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1479.8237,-1023 1368.9018,-1023 1368.9018,-976 1479.8237,-976 1479.8237,-1023"/>
<text text-anchor="middle" x="1424.3628" y="-1008.6" font-family="Times,serif" font-size="13.00" fill="#000000">strings.IndexRune</text>
<text text-anchor="middle" x="1424.3628" y="-995.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.27s(0.61%)</text>
<text text-anchor="middle" x="1424.3628" y="-982.6" font-family="Times,serif" font-size="13.00" fill="#000000">of 0.78s(1.77%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N53 -->
<g id="edge55" class="edge">
<title>N41&#45;&gt;N53</title>
<g id="a_edge55"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.78s)">
<path fill="none" stroke="#000000" d="M1360.1012,-1084.9185C1359.8611,-1071.273 1361.4666,-1054.2367 1368.9146,-1041 1371.0372,-1037.2275 1373.6594,-1033.6954 1376.5987,-1030.4106"/>
<polygon fill="#000000" stroke="#000000" points="1379.2616,-1032.7011 1383.9464,-1023.1982 1374.3581,-1027.7055 1379.2616,-1032.7011"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="strings.ContainsRune &#45;&gt; strings.IndexRune (0.78s)">
<text text-anchor="middle" x="1386.0869" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.78s</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N2 -->
<g id="edge45" class="edge">
<title>N43&#45;&gt;N2</title>
<g id="a_edge45"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (0.99s)">
<path fill="none" stroke="#000000" d="M2434.6476,-1126.4373C2525.6589,-1147.1335 2638.888,-1186.3216 2586.3628,-1247 2528.3023,-1314.0729 1952.6352,-1331.1844 1681.8291,-1335.5304"/>
<polygon fill="#000000" stroke="#000000" points="1681.4794,-1332.0354 1671.5355,-1335.6918 1681.5892,-1339.0345 1681.4794,-1332.0354"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; main.(*machine).execute (0.99s)">
<text text-anchor="middle" x="2616.0869" y="-1216.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.99s</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N12 -->
<g id="edge109" class="edge">
<title>N43&#45;&gt;N12</title>
<g id="a_edge109"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.05s)">
<path fill="none" stroke="#000000" d="M2336.6449,-1089.0766C2337.4116,-1059.4987 2333.965,-1003.6883 2300.3628,-976 2258.6405,-941.6208 1458.9412,-911.2624 1226.3238,-903.1307"/>
<polygon fill="#000000" stroke="#000000" points="1226.4455,-899.6329 1216.3297,-902.7828 1226.2019,-906.6287 1226.4455,-899.6329"/>
</a>
</g>
<g id="a_edge109&#45;label"><a xlink:title="main.(*machine).loadPredefinedValues.func3 &#45;&gt; runtime.newobject (0.05s)">
<text text-anchor="middle" x="2345.0869" y="-995.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N37 -->
<g id="edge88" class="edge">
<title>N44&#45;&gt;N37</title>
<g id="a_edge88"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.27s)">
<path fill="none" stroke="#000000" d="M742.1642,-1083.4707C719.602,-1046.3146 677.1967,-976.4805 651.8942,-934.8116"/>
<polygon fill="#000000" stroke="#000000" points="654.7973,-932.8491 646.6152,-926.1181 648.814,-936.4823 654.7973,-932.8491"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.typedmemmove (0.27s)">
<text text-anchor="middle" x="722.0869" y="-995.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.27s</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N40 -->
<g id="edge107" class="edge">
<title>N44&#45;&gt;N40</title>
<g id="a_edge107"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.06s)">
<path fill="none" stroke="#000000" d="M802.7385,-1083.4409C811.678,-1079.3695 821.1481,-1075.6313 830.3628,-1073 904.6956,-1051.774 926.973,-1066.8531 1003.3628,-1055 1063.0219,-1045.7429 1129.4802,-1032.0029 1181.2916,-1020.5103"/>
<polygon fill="#000000" stroke="#000000" points="1182.1226,-1023.911 1191.1209,-1018.3181 1180.5988,-1017.0789 1182.1226,-1023.911"/>
</a>
</g>
<g id="a_edge107&#45;label"><a xlink:title="runtime.mapassign1 &#45;&gt; runtime.aeshashbody (0.06s)">
<text text-anchor="middle" x="1095.0869" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.06s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N41 -->
<g id="edge64" class="edge">
<title>N45&#45;&gt;N41</title>
<g id="a_edge64"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.58s)">
<path fill="none" stroke="#000000" d="M1343.9069,-1198.3724C1347.2053,-1182.3103 1351.7267,-1160.293 1355.4687,-1142.0712"/>
<polygon fill="#000000" stroke="#000000" points="1358.9273,-1142.628 1357.5106,-1132.1283 1352.0704,-1141.2198 1358.9273,-1142.628"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.tryParseFloat &#45;&gt; strings.ContainsRune (0.58s)">
<text text-anchor="middle" x="1368.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.58s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node47" class="node">
<title>N46</title>
<g id="a_node47"><a xlink:title="runtime.mcall (1s)">
<polygon fill="#f8f8f8" stroke="#000000" points="524.1327,-1126.5 460.5928,-1126.5 460.5928,-1090.5 524.1327,-1090.5 524.1327,-1126.5"/>
<text text-anchor="middle" x="492.3628" y="-1110.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.mcall</text>
<text text-anchor="middle" x="492.3628" y="-1102.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 1s(2.27%)</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N21 -->
<g id="edge44" class="edge">
<title>N46&#45;&gt;N21</title>
<g id="a_edge44"><a xlink:title="runtime.mcall ... runtime.schedule (1s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M484.4915,-1090.3824C478.5262,-1076.7526 470.0684,-1057.6409 462.3628,-1041 460.2477,-1036.4323 457.9637,-1031.6021 455.7218,-1026.9147"/>
<polygon fill="#000000" stroke="#000000" points="458.7393,-1025.1139 451.2465,-1017.6234 452.4328,-1028.1516 458.7393,-1025.1139"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.mcall ... runtime.schedule (1s)">
<text text-anchor="middle" x="476.3369" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 1s</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N41 -->
<g id="edge67" class="edge">
<title>N47&#45;&gt;N41</title>
<g id="a_edge67"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.54s)">
<path fill="none" stroke="#000000" d="M1439.3963,-1198.3724C1425.0524,-1181.6379 1405.1679,-1158.4393 1389.1944,-1139.8035"/>
<polygon fill="#000000" stroke="#000000" points="1391.781,-1137.4431 1382.6156,-1132.1283 1386.4661,-1141.9987 1391.781,-1137.4431"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.tryParseInt &#45;&gt; strings.ContainsRune (0.54s)">
<text text-anchor="middle" x="1436.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node50" class="node">
<title>N49</title>
<g id="a_node50"><a xlink:title="runtime.(*mcentral).cacheSpan (0.90s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1223.3617,-381 1081.3639,-381 1081.3639,-343 1223.3617,-343 1223.3617,-381"/>
<text text-anchor="middle" x="1152.3628" y="-369" font-family="Times,serif" font-size="10.00" fill="#000000">runtime.(*mcentral).cacheSpan</text>
<text text-anchor="middle" x="1152.3628" y="-359" font-family="Times,serif" font-size="10.00" fill="#000000">0.03s(0.068%)</text>
<text text-anchor="middle" x="1152.3628" y="-349" font-family="Times,serif" font-size="10.00" fill="#000000">of 0.90s(2.04%)</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N49 -->
<g id="edge51" class="edge">
<title>N48&#45;&gt;N49</title>
<g id="a_edge51"><a xlink:title="runtime.(*mcache).nextFree.func1 ... runtime.(*mcentral).cacheSpan (0.90s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1144.1506,-445.3538C1145.63,-430.3376 1147.7601,-408.7172 1149.4802,-391.2588"/>
<polygon fill="#000000" stroke="#000000" points="1152.9912,-391.3175 1150.4887,-381.0225 1146.025,-390.6311 1152.9912,-391.3175"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.(*mcache).nextFree.func1 ... runtime.(*mcentral).cacheSpan (0.90s)">
<text text-anchor="middle" x="1165.0869" y="-410.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.90s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node63" class="node">
<title>N62</title>
<g id="a_node63"><a xlink:title="runtime.(*mheap).alloc (0.56s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1197.9449,-262 1106.7807,-262 1106.7807,-226 1197.9449,-226 1197.9449,-262"/>
<text text-anchor="middle" x="1152.3628" y="-245.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.(*mheap).alloc</text>
<text text-anchor="middle" x="1152.3628" y="-237.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.56s(1.27%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N62 -->
<g id="edge65" class="edge">
<title>N49&#45;&gt;N62</title>
<g id="a_edge65"><a xlink:title="runtime.(*mcentral).cacheSpan ... runtime.(*mheap).alloc (0.56s)">
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M1152.3628,-342.7786C1152.3628,-323.5848 1152.3628,-293.8776 1152.3628,-272.0519"/>
<polygon fill="#000000" stroke="#000000" points="1155.8629,-272.0511 1152.3628,-262.0511 1148.8629,-272.0511 1155.8629,-272.0511"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan ... runtime.(*mheap).alloc (0.56s)">
<text text-anchor="middle" x="1169.0869" y="-304.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.56s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node79" class="node">
<title>N78</title>
<g id="a_node79"><a xlink:title="runtime.lock (0.35s)">
<polygon fill="#f8f8f8" stroke="#000000" points="105.0461,-264.5 17.6795,-264.5 17.6795,-223.5 105.0461,-223.5 105.0461,-264.5"/>
<text text-anchor="middle" x="61.3628" y="-251.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.lock</text>
<text text-anchor="middle" x="61.3628" y="-240.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.06s(0.14%)</text>
<text text-anchor="middle" x="61.3628" y="-229.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.35s(0.79%)</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N78 -->
<g id="edge112" class="edge">
<title>N49&#45;&gt;N78</title>
<g id="a_edge112"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.05s)">
<path fill="none" stroke="#000000" d="M1104.7517,-342.8577C1094.2383,-339.3324 1083.0465,-336.1048 1072.3628,-334 864.0755,-292.9653 319.0519,-353.2196 118.3628,-284 109.3824,-280.9026 100.5446,-275.938 92.6081,-270.5443"/>
<polygon fill="#000000" stroke="#000000" points="94.5383,-267.6207 84.3858,-264.5913 90.4331,-273.2907 94.5383,-267.6207"/>
</a>
</g>
<g id="a_edge112&#45;label"><a xlink:title="runtime.(*mcentral).cacheSpan &#45;&gt; runtime.lock (0.05s)">
<text text-anchor="middle" x="350.0869" y="-304.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.05s</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N20 -->
<g id="edge106" class="edge">
<title>N50&#45;&gt;N20</title>
<g id="a_edge106"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.07s)">
<path fill="none" stroke="#000000" d="M484.3633,-441.302C469.2428,-430.7908 450.6308,-418.3119 433.3628,-408 424.8153,-402.8957 415.6459,-397.7534 406.5702,-392.85"/>
<polygon fill="#000000" stroke="#000000" points="408.0224,-389.6578 397.5523,-388.0366 404.7262,-395.8332 408.0224,-389.6578"/>
</a>
</g>
<g id="a_edge106&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.memmove (0.07s)">
<text text-anchor="middle" x="471.0869" y="-410.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.07s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node65" class="node">
<title>N64</title>
<g id="a_node65"><a xlink:title="runtime.newdefer (0.54s)">
<polygon fill="#f8f8f8" stroke="#000000" points="569.984,-387 454.7416,-387 454.7416,-337 569.984,-337 569.984,-387"/>
<text text-anchor="middle" x="512.3628" y="-371.8" font-family="Times,serif" font-size="14.00" fill="#000000">runtime.newdefer</text>
<text text-anchor="middle" x="512.3628" y="-357.8" font-family="Times,serif" font-size="14.00" fill="#000000">0.53s(1.20%)</text>
<text text-anchor="middle" x="512.3628" y="-343.8" font-family="Times,serif" font-size="14.00" fill="#000000">of 0.54s(1.23%)</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N64 -->
<g id="edge68" class="edge">
<title>N50&#45;&gt;N64</title>
<g id="a_edge68"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.54s)">
<path fill="none" stroke="#000000" d="M514.7118,-441.476C514.3319,-428.6208 513.8435,-412.0989 513.4106,-397.4522"/>
<polygon fill="#000000" stroke="#000000" points="516.9016,-397.0901 513.1076,-387.1979 509.9046,-397.2969 516.9016,-397.0901"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.deferproc.func1 &#45;&gt; runtime.newdefer (0.54s)">
<text text-anchor="middle" x="531.0869" y="-410.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.54s</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N18 -->
<g id="edge83" class="edge">
<title>N52&#45;&gt;N18</title>
<g id="a_edge83"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.33s)">
<path fill="none" stroke="#000000" d="M1002.5957,-1200.3508C1018.2288,-1197.882 1034.1839,-1195.6519 1049.3628,-1194 1229.3657,-1174.4105 1275.6474,-1187.2574 1456.3628,-1176 1498.3069,-1173.3871 1778.6851,-1153.7664 1852.5714,-1143.9845"/>
<polygon fill="#000000" stroke="#000000" points="1853.5379,-1147.3793 1862.9146,-1142.4469 1852.5086,-1140.4554 1853.5379,-1147.3793"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.mapaccess2_faststr (0.33s)">
<text text-anchor="middle" x="1661.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N70 -->
<g id="edge98" class="edge">
<title>N52&#45;&gt;N70</title>
<g id="a_edge98"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.12s)">
<path fill="none" stroke="#000000" d="M902.4996,-1198.3724C906.6202,-1180.6219 912.4292,-1155.5985 916.8716,-1136.4621"/>
<polygon fill="#000000" stroke="#000000" points="920.3275,-1137.0525 919.1796,-1126.52 913.5089,-1135.4695 920.3275,-1137.0525"/>
</a>
</g>
<g id="a_edge98&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; main.(*machine).popValue (0.12s)">
<text text-anchor="middle" x="927.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.12s</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N72 -->
<g id="edge95" class="edge">
<title>N52&#45;&gt;N72</title>
<g id="a_edge95"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.15s)">
<path fill="none" stroke="#000000" d="M804.7092,-1198.4866C762.717,-1188.3617 721.3669,-1178.1186 716.9146,-1176 707.5871,-1171.5617 706.6102,-1168.2193 698.3628,-1162 686.7608,-1153.2512 674.0896,-1143.7014 662.7047,-1135.1231"/>
<polygon fill="#000000" stroke="#000000" points="664.7688,-1132.296 654.6758,-1129.0738 660.5564,-1137.8867 664.7688,-1132.296"/>
</a>
</g>
<g id="a_edge95&#45;label"><a xlink:title="main.(*machine).loadLocalWords.func2 &#45;&gt; runtime.assertI2T (0.15s)">
<text text-anchor="middle" x="734.0869" y="-1164.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.15s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node81" class="node">
<title>N80</title>
<g id="a_node81"><a xlink:title="runtime.indexbytebody (0.33s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1092.811,-919 955.9145,-919 955.9145,-883 1092.811,-883 1092.811,-919"/>
<text text-anchor="middle" x="1024.3628" y="-903.6" font-family="Times,serif" font-size="13.00" fill="#000000">runtime.indexbytebody</text>
<text text-anchor="middle" x="1024.3628" y="-890.6" font-family="Times,serif" font-size="13.00" fill="#000000">0.33s(0.75%)</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N80 -->
<g id="edge84" class="edge">
<title>N53&#45;&gt;N80</title>
<g id="a_edge84"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.33s)">
<path fill="none" stroke="#000000" d="M1368.688,-978.4566C1365.8858,-977.5864 1363.0996,-976.7613 1360.3628,-976 1247.4145,-944.582 1214.8871,-955.2684 1101.3628,-926 1096.6759,-924.7916 1091.8565,-923.456 1087.0252,-922.0491"/>
<polygon fill="#000000" stroke="#000000" points="1087.7142,-918.6017 1077.1301,-919.0794 1085.7019,-925.3063 1087.7142,-918.6017"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="strings.IndexRune &#45;&gt; runtime.indexbytebody (0.33s)">
<text text-anchor="middle" x="1298.0869" y="-946.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.33s</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N77 -->
<g id="edge94" class="edge">
<title>N54&#45;&gt;N77</title>
<g id="a_edge94"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.17s)">
<path fill="none" stroke="#000000" d="M1671.8979,-1196.8491C1672.8265,-1155.8041 1674.7322,-1071.571 1675.7268,-1027.6091"/>
<polygon fill="#000000" stroke="#000000" points="1679.226,-1027.6796 1675.9532,-1017.6029 1672.2278,-1027.5212 1679.226,-1027.6796"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="main.wordIsWhitespace &#45;&gt; runtime.stringiter2 (0.17s)">
<text text-anchor="middle" x="1691.0869" y="-1104.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.17s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node62" class="node">
<title>N61</title>
<g id="a_node62"><a xlink:title="runtime.notesleep (0.61s)">
<polygon fill="#f8f8f8" stroke="#000000" points="485.1327,-807 411.5929,-807 411.5929,-771 485.1327,-771 485.1327,-807"/>
<text text-anchor="middle" x="448.3628" y="-790.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.notesleep</text>
<text text-anchor="middle" x="448.3628" y="-782.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.61s(1.38%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N61 -->
<g id="edge62" class="edge">
<title>N56&#45;&gt;N61</title>
<g id="a_edge62"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.61s)">
<path fill="none" stroke="#000000" d="M448.3628,-882.5055C448.3628,-864.7282 448.3628,-837.6184 448.3628,-817.1587"/>
<polygon fill="#000000" stroke="#000000" points="451.8629,-817.1503 448.3628,-807.1504 444.8629,-817.1504 451.8629,-817.1503"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.stopm &#45;&gt; runtime.notesleep (0.61s)">
<text text-anchor="middle" x="465.0869" y="-846.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.61s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node60" class="node">
<title>N59</title>
<g id="a_node60"><a xlink:title="runtime.semasleep (0.63s)">
<polygon fill="#f8f8f8" stroke="#000000" points="812.121,-687.5 736.6046,-687.5 736.6046,-651.5 812.121,-651.5 812.121,-687.5"/>
<text text-anchor="middle" x="774.3628" y="-671.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.semasleep</text>
<text text-anchor="middle" x="774.3628" y="-663.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.63s(1.43%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N10 -->
<g id="edge60" class="edge">
<title>N59&#45;&gt;N10</title>
<g id="a_edge60"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.63s)">
<path fill="none" stroke="#000000" d="M812.37,-658.9967C876.0252,-641.4056 1005.329,-605.6726 1087.975,-582.8334"/>
<polygon fill="#000000" stroke="#000000" points="1089.1086,-586.1514 1097.815,-580.1141 1087.244,-579.4043 1089.1086,-586.1514"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.semasleep &#45;&gt; runtime.systemstack (0.63s)">
<text text-anchor="middle" x="1021.0869" y="-607.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.63s</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N2 -->
<g id="edge73" class="edge">
<title>N60&#45;&gt;N2</title>
<g id="a_edge73"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (0.42s)">
<path fill="none" stroke="#000000" d="M3007.5474,-1239.662C3000.8962,-1253.2403 2989.927,-1270.4974 2974.3628,-1279 2918.3133,-1309.6192 2030.776,-1328.4357 1681.7678,-1334.6829"/>
<polygon fill="#000000" stroke="#000000" points="1681.5365,-1331.1864 1671.6005,-1334.8641 1681.6613,-1338.1853 1681.5365,-1331.1864"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; main.(*machine).execute (0.42s)">
<text text-anchor="middle" x="3007.0869" y="-1267.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.42s</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N12 -->
<g id="edge101" class="edge">
<title>N60&#45;&gt;N12</title>
<g id="a_edge101"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.11s)">
<path fill="none" stroke="#000000" d="M2952.6205,-1201.4839C2941.3013,-1198.5912 2929.5444,-1195.9319 2918.3628,-1194 2813.8317,-1175.9395 2781.0377,-1209.429 2680.3628,-1176 2522.9774,-1123.7404 2520.7379,-1033.9639 2365.3628,-976 2275.26,-942.3864 2247.0889,-953.2146 2151.3628,-944 1803.2481,-910.4906 1383.5977,-903.0831 1226.6461,-901.4551"/>
<polygon fill="#000000" stroke="#000000" points="1226.2817,-897.9514 1216.2474,-901.3517 1226.2121,-904.951 1226.2817,-897.9514"/>
</a>
</g>
<g id="a_edge101&#45;label"><a xlink:title="main.(*machine).loadLoopWords.func1 &#45;&gt; runtime.newobject (0.11s)">
<text text-anchor="middle" x="2511.8306" y="-1043.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.11s</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N59 -->
<g id="edge61" class="edge">
<title>N61&#45;&gt;N59</title>
<g id="a_edge61"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.61s)">
<path fill="none" stroke="#000000" d="M485.2116,-774.5654C503.0404,-767.6409 524.7759,-759.2863 544.3628,-752 607.2802,-728.5949 680.2966,-702.6019 726.8861,-686.1636"/>
<polygon fill="#000000" stroke="#000000" points="728.1459,-689.4306 736.4136,-682.8052 725.8187,-682.8288 728.1459,-689.4306"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.notesleep &#45;&gt; runtime.semasleep (0.61s)">
<text text-anchor="middle" x="644.0869" y="-722.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.61s</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N57 -->
<g id="edge66" class="edge">
<title>N62&#45;&gt;N57</title>
<g id="a_edge66"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.56s)">
<path fill="none" stroke="#000000" d="M1152.3628,-225.8851C1152.3628,-206.4205 1152.3628,-175.1929 1152.3628,-152.2409"/>
<polygon fill="#000000" stroke="#000000" points="1155.8629,-152.0383 1152.3628,-142.0383 1148.8629,-152.0384 1155.8629,-152.0383"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.memclr (0.56s)">
<text text-anchor="middle" x="1169.0869" y="-174.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.56s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node64" class="node">
<title>N63</title>
<g id="a_node64"><a xlink:title="runtime.usleep (0.56s)">
<polygon fill="#f8f8f8" stroke="#000000" points="104.5887,-40 .1368,-40 .1368,-2 104.5887,-2 104.5887,-40"/>
<text text-anchor="middle" x="52.3628" y="-24" font-family="Times,serif" font-size="15.00" fill="#000000">runtime.usleep</text>
<text text-anchor="middle" x="52.3628" y="-9" font-family="Times,serif" font-size="15.00" fill="#000000">0.56s(1.27%)</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node66" class="node">
<title>N65</title>
<g id="a_node66"><a xlink:title="runtime._System (0.50s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1108.1327,-687.5 1034.5929,-687.5 1034.5929,-651.5 1108.1327,-651.5 1108.1327,-687.5"/>
<text text-anchor="middle" x="1071.3628" y="-671.1" font-family="Times,serif" font-size="8.00" fill="#000000">runtime._System</text>
<text text-anchor="middle" x="1071.3628" y="-663.1" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.50s(1.13%)</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N10 -->
<g id="edge69" class="edge">
<title>N65&#45;&gt;N10</title>
<g id="a_edge69"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.50s)">
<path fill="none" stroke="#000000" d="M1086.5774,-651.3691C1097.4811,-638.4102 1112.5424,-620.5808 1125.9146,-605 1128.6708,-601.7886 1131.5507,-598.4506 1134.4363,-595.1179"/>
<polygon fill="#000000" stroke="#000000" points="1137.212,-597.2595 1141.1237,-587.4132 1131.9255,-592.671 1137.212,-597.2595"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (0.50s)">
<text text-anchor="middle" x="1143.0869" y="-607.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node67" class="node">
<title>N66</title>
<g id="a_node67"><a xlink:title="runtime.osyield (0.50s)">
<polygon fill="#f8f8f8" stroke="#000000" points="89.1327,-141 15.5929,-141 15.5929,-105 89.1327,-105 89.1327,-141"/>
<text text-anchor="middle" x="52.3628" y="-124.6" font-family="Times,serif" font-size="8.00" fill="#000000">runtime.osyield</text>
<text text-anchor="middle" x="52.3628" y="-116.6" font-family="Times,serif" font-size="8.00" fill="#000000">0 of 0.50s(1.13%)</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N63 -->
<g id="edge70" class="edge">
<title>N66&#45;&gt;N63</title>
<g id="a_edge70"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.50s)">
<path fill="none" stroke="#000000" d="M52.3628,-104.7644C52.3628,-89.6742 52.3628,-67.9473 52.3628,-50.4029"/>
<polygon fill="#000000" stroke="#000000" points="55.8629,-50.1162 52.3628,-40.1162 48.8629,-50.1162 55.8629,-50.1162"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.osyield &#45;&gt; runtime.usleep (0.50s)">
<text text-anchor="middle" x="69.0869" y="-62.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.50s</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N10 -->
<g id="edge82" class="edge">
<title>N68&#45;&gt;N10</title>
<g id="a_edge82"><a xlink:title="runtime.writebarrierptr_nostore1 &#45;&gt; runtime.systemstack (0.34s)">
<path fill="none" stroke="#000000" d="M3439.5201,-1199.9787C3431.4322,-1197.7788 3423.2381,-1195.7198 3415.3628,-1194 3282.9238,-1165.0775 2811.3628,-1244.0603 2811.3628,-1108.5 2811.3628,-1108.5 2811.3628,-1108.5 2811.3628,-951 2811.3628,-809.3198 2859.6017,-734.031 2756.3628,-637 2700.4767,-584.4744 1547.6155,-566.685 1238.8645,-562.8532"/>
<polygon fill="#000000" stroke="#000000" points="1238.7159,-559.3512 1228.6737,-562.728 1238.6299,-566.3507 1238.7159,-559.3512"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.writebarrierptr_nostore1 &#45;&gt; runtime.systemstack (0.34s)">
<text text-anchor="middle" x="2831.0869" y="-896.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.34s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node75" class="node">
<title>N74</title>
<g id="a_node75"><a xlink:title="runtime.gcmarkwb_m (0.38s)">
<polygon fill="#f8f8f8" stroke="#000000" points="1813.3114,-382.5 1699.4142,-382.5 1699.4142,-341.5 1813.3114,-341.5 1813.3114,-382.5"/>
<text text-anchor="middle" x="1756.3628" y="-369.7" font-family="Times,serif" font-size="11.00" fill="#000000">runtime.gcmarkwb_m</text>
<text text-anchor="middle" x="1756.3628" y="-358.7" font-family="Times,serif" font-size="11.00" fill="#000000">0.10s(0.23%)</text>
<text text-anchor="middle" x="1756.3628" y="-347.7" font-family="Times,serif" font-size="11.00" fill="#000000">of 0.38s(0.86%)</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N74 -->
<g id="edge78" class="edge">
<title>N71&#45;&gt;N74</title>
<g id="a_edge78"><a xlink:title="runtime.writebarrierptr_nostore1.func1 &#45;&gt; runtime.gcmarkwb_m (0.38s)">
<path fill="none" stroke="#000000" d="M1749.0556,-444.4086C1750.3338,-429.9938 1752.115,-409.9055 1753.5988,-393.1714"/>
<polygon fill="#000000" stroke="#000000" points="1757.1257,-393.0225 1754.5227,-382.7524 1750.153,-392.4041 1757.1257,-393.0225"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.writebarrierptr_nostore1.func1 &#45;&gt; runtime.gcmarkwb_m (0.38s)">
<text text-anchor="middle" x="1768.0869" y="-410.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.38s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N37 -->
<g id="edge86" class="edge">
<title>N72&#45;&gt;N37</title>
<g id="a_edge86"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.31s)">
<path fill="none" stroke="#000000" d="M627.761,-1087.8455C628.4437,-1052.4274 629.8452,-979.7235 630.6845,-936.1859"/>
<polygon fill="#000000" stroke="#000000" points="634.1864,-936.1143 630.8799,-926.0487 627.1877,-935.9794 634.1864,-936.1143"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.assertI2T &#45;&gt; runtime.typedmemmove (0.31s)">
<text text-anchor="middle" x="647.0869" y="-995.3" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.31s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N66 -->
<g id="edge92" class="edge">
<title>N78&#45;&gt;N66</title>
<g id="a_edge92"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.20s)">
<path fill="none" stroke="#000000" d="M59.8361,-223.474C58.3621,-203.6572 56.1178,-173.4836 54.4732,-151.3736"/>
<polygon fill="#000000" stroke="#000000" points="57.9523,-150.9608 53.7201,-141.248 50.9716,-151.4801 57.9523,-150.9608"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.lock &#45;&gt; runtime.osyield (0.20s)">
<text text-anchor="middle" x="74.0869" y="-174.8" font-family="Times,serif" font-size="14.00" fill="#000000"> 0.20s</text>
</a>
</g>
</g>
</g>
</g></svg>

Deleted pod.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
:PRE -% ( dict? key -- dict ) [ ensure-dictionary ] dip [ t swap dict-set ] each-char ;
:PRE [] ( vec idx -- ) string>int vec-at ;
:PRE $: ( quot varName -- ) change ;
:PRE $ ( name -- val ) get-local ;
:PRE : ( val name -- ) set-local ;
:PRE -? ( dict key -- dict ? ) dict-has-key? ;
:PRE ++ ( varName -- . ) [ 1 + ] swap change ;
:PRE -- ( varname -- . ) [ 1 - ] swap change ;
:PRE -$ ( dict key -- val ) dict-get ;
:PRE -: ( dict? val key -- dict ) [ [ ensure-dictionary ] dip ] dip dict-set ;
:DOC 2vector ( a b -- vec )  ;
: 2vector ( a b -- vec ) <vector> 2 [ swap vec-prepend ] times ;
:DOC symb-eq ( symb symb -- eq? ) Are a and b equal symbols? ;
: symb-eq ( symb symb -- eq? ) symb-neq not ;
:DOC min ( a b -- smaller )  ;
: min ( a b -- smaller ) 2dup > [ nip ] [ drop ] if ;
:DOC over ( x y -- x y x )  ;
: over ( x y -- x y x ) 1 pick-dup ;
:DOC even? ( n -- ? )  ;
: even? ( n -- ? ) 2 mod zero? ;
:DOC quot>dict ( quot -- dict )  ;
: quot>dict ( quot -- dict ) get-locals call <dict> [ dict-set ] each-local drop-locals ;
:DOC show-locals ( -- ) Shows which locals are in current scope ;
: show-locals ( -- ) [ over >string " = " swap concat concat nip print ] each-local ;
:DOC nip ( a b -- b )  ;
: nip ( a b -- b ) 1 pick-del ;
:DOC abs ( a -- a )  ;
: abs ( a -- a ) dup 0 < [ -1 * ] when ;
:DOC 2dup ( a b -- a b a b ) Duplicates the top two elements of the stack ;
: 2dup ( a b -- a b a b ) 2 [ 1 pick-dup ] times ;
:DOC > ( a b -- ? )  ;
: > ( a b -- ? ) <= not ;
:DOC . ( a -- )  ;
: . ( a -- ) drop ;
:DOC = ( a b -- ? )  ;
: = ( a b -- ? ) - zero? ;
:DOC <= ( a b -- ? )  ;
: <= ( a b -- ? ) 2dup < [ = ] dip or ;
:DOC inspect ( a -- a )  ;
: inspect ( a -- a ) dup print ;
:DOC dict-if-not-dict ( .. -- dict )  ;
: dict-if-not-dict ( .. -- dict ) dup typeof "Dictionary" str-neq [ <dict> ] when ;
:DOC dup ( a -- a a ) Duplicates the top of the stack ;
: dup ( a -- a a ) 0 pick-dup ;
:DOC swap ( a b -- b a ) Swaps the top two elements of the stack ;
: swap ( a b -- b a ) 1 pick-drop ;
:DOC 2drop ( a b -- )  ;
: 2drop ( a b -- ) 2 [ drop ] times ;
:DOC keep ( ..a x quot: [ ..a x --- ..b ] -- ..b x )  ;
: keep ( ..a x quot: [ ..a x --- ..b ] -- ..b x ) over [ call ] dip ;
:DOC print ( a -- )  ;
: print ( a -- ) >string priv_puts ;
:DOC 3drop ( a b c -- )  ;
: 3drop ( a b c -- ) 3 [ drop ] times ;
:DOC when ( ? true -- res )  ;
: when ( ? true -- res ) [ ] ? call ;
:DOC >= ( a b -- ? )  ;
: >= ( a b -- ? ) < not ;
:DOC dict-if-empty-stack ( .. -- dict? )  ;
: dict-if-empty-stack ( .. -- dict? ) stack-empty? [ <dict> ] when ;
:DOC each2 ( v1 v2 quot -- v3 ) Applies a quotation to each elementwise pair in v1 and v2, to result in v3 ;
: each2 ( v1 v2 quot -- v3 ) get-locals :quot :v2 :v1 0 :i <vector> $v2 len $v1 len min [ $v1 $i vec-at $v2 $i vec-at quot vec-append [ 1 + ] $:i ] times drop-locals ;
:DOC bi ( a quot1 quot2 -- ... )  ;
: bi ( a quot1 quot2 -- ... ) [ keep ] dip call ;
:DOC str-neq ( str-a str-b -- eq? )  ;
: str-neq ( str-a str-b -- eq? ) str-eq not ;
:DOC dict-has-key? ( dict key -- dict bool )  ;
: dict-has-key? ( dict key -- dict bool ) "dict-has-key" extern-call ;
:DOC vec-reverse ( vec -- reversevec ) Reverses a vector ;
: vec-reverse ( vec -- reversevec ) get-locals dup :vec len :end 0 :i [ 1 - ] $:end $end 2 / [ $vec $i vec-at :x $vec $end vec-at :y $vec $y $i vec-set-at :vec $vec $x $end vec-set-at :vec [ 1 - ] $:end [ 1 + ] $:i ] times $vec drop-locals ;
:DOC drop ( a -- )  ;
: drop ( a -- ) 0 pick-del ;
:DOC quot>vector ( quot -- vec ) Take all the elements placed on the stack by quot, and put them in an array. Not local clean. ;
: quot>vector ( quot -- vec ) get-locals <vector> :vec <symbol> dup :mark /* Mark the stack */ swap call /* Fill the stack with info from the quotation */ [ dup $mark symb-neq ] [ [ swap vec-append ] $:vec ] while drop /* the mark */ $vec vec-reverse drop-locals ;
:DOC clear-stack ( -- )  ;
: clear-stack ( -- ) [ stack-empty? not ] [ drop ] while ;
:DOC divisor? ( n m -- ? )  ;
: divisor? ( n m -- ? ) mod zero? ;
:DOC ensure-dictionary ( .. -- dict )  ;
: ensure-dictionary ( .. -- dict ) dict-if-empty-stack dict-if-not-dict ;
:DOC splat ( vec -- items... ) Dump the contents of the vector onto the stack ;
: splat ( vec -- items... ) [ ] vec-each ;
:DOC max ( a b -- larger )  ;
: max ( a b -- larger ) 2dup > [ drop ] [ nip ] if ;
:DOC change ( quot varName -- .. )  ;
: change ( quot varName -- .. ) swap [ [ get-local ] keep ] dip dip set-local ;
:DOC if ( ? true false -- res ) if ? is t, call true quot, otherwise call falseQuot. Defined as `? call` ;
: if ( ? true false -- res ) ? call ;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
















































































































































































Added poem.txt.







































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
I’ve decided to tackle it
It’s going to get done
Doesn’t matter if I’m fit
Or if it should be fun

Sleep becomes an afterthought
Thoughts narrow into bytes
Solutions, researched and sought
slowly form neath flickery lights

Abstractions are conceived
Ideas are slowly sprung
One works this time, I’m relieved
Unlike the first 10 things I’d flung

But as I go more bugs crawl out
My understanding is incomplete
Undeterred, I consult cout
To render those bugs concrete

And through the night errors retreat
Further through this code we go
“Please work” I oft entreat
“I need this for Dr. Guo”

And finally the data’s stored and clear
And knowing I’ve done it, relief
Tho hours blurred to seconds mere
My work now strengthens my belief
That I can solve problems

So it’s done for now
Still sits in my head
But as sleepy as a cow
I go to bed 

Changes to preload.go.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178

































































package main

type GoWord func(*machine) error

func NilWord(f func(*machine)) GoWord {
	return GoWord(func(m *machine) error {
		f(m)
		return nil
	})
}

func (m *machine) loadPredefinedValues() {
	if m.predefinedWords == nil {
		panic("Uninitialized stack machine!")
	}
	m.predefinedWords["t"] = NilWord(func(m *machine) {
		m.pushValue(Boolean(true))
	})
	m.predefinedWords["f"] = NilWord(func(m *machine) {
		m.pushValue(Boolean(false))
	})
	m.predefinedWords["dip"] = NilWord(func(m *machine) {
		quot := m.popValue().(quotation).toCode()
		a := m.popValue()
		executeWordsOnMachine(m, quot)
		m.pushValue(a)
	})
	m.predefinedWords["pick-dup"] = NilWord(func(m *machine) {
		distBack := int(m.popValue().(Integer))
		m.pushValue(m.values[len(m.values)-distBack-1])
	})
	m.predefinedWords["pick-drop"] = NilWord(func(m *machine) {
		distBack := int(m.popValue().(Integer))
		valIdx := len(m.values) - distBack - 1
		val := m.values[valIdx]
		m.values = append(m.values[:valIdx], m.values[valIdx+1:]...)
		m.pushValue(val)
	})
	m.predefinedWords["pick-del"] = NilWord(func(m *machine) {
		distBack := int(m.popValue().(Integer))
		valIdx := len(m.values) - distBack - 1
		m.values = append(m.values[:valIdx], m.values[valIdx+1:]...)
	})
	m.predefinedWords["len"] = NilWord(func(m *machine) {
		length := m.popValue().(lenable).Length()
		m.pushValue(Integer(length))
	})

	m.loadDebugWords()
	m.loadLocalWords()
	m.loadStringWords()
	m.loadBooleanWords()
	m.loadLoopWords()
	m.loadDictWords()
	m.loadVectorWords()
	m.loadSymbolWords()
	m.loadHigherMathWords()
	m.loadHelpWords()
	m.loadIOWords()
	m.loadShellWords()
	m.loadRandyWords()

	code := &codeList{
		idx: 0,
		code: `
			"std_lib.pisc" import `,
		codePosition: codePosition{
			source: "preloaded:1",
		},
	}

	err := executeWordsOnMachine(m, code)
	if err != nil {
		err = m.loadBackupPod()
		if err != nil {
			panic("Error loading pod! " + err.Error())
		}
	}
}

func (m *machine) loadBackupPod() error {
	podBackup := `:PRE -% ( dict? key -- dict ) [ ensure-dictionary ] dip [ t swap dict-set ] each-char ;
:PRE [] ( vec idx -- ) string>int vec-at ;
:PRE $: ( quot varName -- ) change ;
:PRE $ ( name -- val ) get-local ;
:PRE : ( val name -- ) set-local ;
:PRE -? ( dict key -- dict ? ) dict-has-key? ;
:PRE ++ ( varName -- . ) [ 1 + ] swap change ;
:PRE -- ( varname -- . ) [ 1 - ] swap change ;
:PRE -$ ( dict key -- val ) dict-get ;
:PRE -: ( dict? val key -- dict ) [ [ ensure-dictionary ] dip ] dip dict-set ;
:DOC 2vector ( a b -- vec )  ;
: 2vector ( a b -- vec ) <vector> 2 [ swap vec-prepend ] times ;
:DOC symb-eq ( symb symb -- eq? ) Are a and b equal symbols? ;
: symb-eq ( symb symb -- eq? ) symb-neq not ;
:DOC min ( a b -- smaller )  ;
: min ( a b -- smaller ) 2dup > [ nip ] [ drop ] if ;
:DOC over ( x y -- x y x )  ;
: over ( x y -- x y x ) 1 pick-dup ;
:DOC even? ( n -- ? )  ;
: even? ( n -- ? ) 2 mod zero? ;
:DOC quot>dict ( quot -- dict )  ;
: quot>dict ( quot -- dict ) get-locals call <dict> [ dict-set ] each-local drop-locals ;
:DOC show-locals ( -- ) Shows which locals are in current scope ;
: show-locals ( -- ) [ over >string " = " swap concat concat nip print ] each-local ;
:DOC nip ( a b -- b )  ;
: nip ( a b -- b ) 1 pick-del ;
:DOC abs ( a -- a )  ;
: abs ( a -- a ) dup 0 < [ -1 * ] when ;
:DOC 2dup ( a b -- a b a b ) Duplicates the top two elements of the stack ;
: 2dup ( a b -- a b a b ) 2 [ 1 pick-dup ] times ;
:DOC > ( a b -- ? )  ;
: > ( a b -- ? ) <= not ;
:DOC . ( a -- )  ;
: . ( a -- ) drop ;
:DOC = ( a b -- ? )  ;
: = ( a b -- ? ) - zero? ;
:DOC <= ( a b -- ? )  ;
: <= ( a b -- ? ) 2dup < [ = ] dip or ;
:DOC inspect ( a -- a )  ;
: inspect ( a -- a ) dup print ;
:DOC dict-if-not-dict ( .. -- dict )  ;
: dict-if-not-dict ( .. -- dict ) dup typeof "Dictionary" str-neq [ <dict> ] when ;
:DOC dup ( a -- a a ) Duplicates the top of the stack ;
: dup ( a -- a a ) 0 pick-dup ;
:DOC swap ( a b -- b a ) Swaps the top two elements of the stack ;
: swap ( a b -- b a ) 1 pick-drop ;
:DOC 2drop ( a b -- )  ;
: 2drop ( a b -- ) 2 [ drop ] times ;
:DOC keep ( ..a x quot: [ ..a x --- ..b ] -- ..b x )  ;
: keep ( ..a x quot: [ ..a x --- ..b ] -- ..b x ) over [ call ] dip ;
:DOC print ( a -- )  ;
: print ( a -- ) >string priv_puts ;
:DOC 3drop ( a b c -- )  ;
: 3drop ( a b c -- ) 3 [ drop ] times ;
:DOC when ( ? true -- res )  ;
: when ( ? true -- res ) [ ] ? call ;
:DOC >= ( a b -- ? )  ;
: >= ( a b -- ? ) < not ;
:DOC dict-if-empty-stack ( .. -- dict? )  ;
: dict-if-empty-stack ( .. -- dict? ) stack-empty? [ <dict> ] when ;
:DOC each2 ( v1 v2 quot -- v3 ) Applies a quotation to each elementwise pair in v1 and v2, to result in v3 ;
: each2 ( v1 v2 quot -- v3 ) get-locals :quot :v2 :v1 0 :i <vector> $v2 len $v1 len min [ $v1 $i vec-at $v2 $i vec-at quot vec-append [ 1 + ] $:i ] times drop-locals ;
:DOC bi ( a quot1 quot2 -- ... )  ;
: bi ( a quot1 quot2 -- ... ) [ keep ] dip call ;
:DOC str-neq ( str-a str-b -- eq? )  ;
: str-neq ( str-a str-b -- eq? ) str-eq not ;
:DOC dict-has-key? ( dict key -- dict bool )  ;
: dict-has-key? ( dict key -- dict bool ) "dict-has-key" extern-call ;
:DOC vec-reverse ( vec -- reversevec ) Reverses a vector ;
: vec-reverse ( vec -- reversevec ) get-locals dup :vec len :end 0 :i [ 1 - ] $:end $end 2 / [ $vec $i vec-at :x $vec $end vec-at :y $vec $y $i vec-set-at :vec $vec $x $end vec-set-at :vec [ 1 - ] $:end [ 1 + ] $:i ] times $vec drop-locals ;
:DOC drop ( a -- )  ;
: drop ( a -- ) 0 pick-del ;
:DOC quot>vector ( quot -- vec ) Take all the elements placed on the stack by quot, and put them in an array. Not local clean. ;
: quot>vector ( quot -- vec ) get-locals <vector> :vec <symbol> dup :mark /* Mark the stack */ swap call /* Fill the stack with info from the quotation */ [ dup $mark symb-neq ] [ [ swap vec-append ] $:vec ] while drop /* the mark */ $vec vec-reverse drop-locals ;
:DOC clear-stack ( -- )  ;
: clear-stack ( -- ) [ stack-empty? not ] [ drop ] while ;
:DOC divisor? ( n m -- ? )  ;
: divisor? ( n m -- ? ) mod zero? ;
:DOC ensure-dictionary ( .. -- dict )  ;
: ensure-dictionary ( .. -- dict ) dict-if-empty-stack dict-if-not-dict ;
:DOC splat ( vec -- items... ) Dump the contents of the vector onto the stack ;
: splat ( vec -- items... ) [ ] vec-each ;
:DOC max ( a b -- larger )  ;
: max ( a b -- larger ) 2dup > [ drop ] [ nip ] if ;
:DOC change ( quot varName -- .. )  ;
: change ( quot varName -- .. ) swap [ [ get-local ] keep ] dip dip set-local ;
:DOC if ( ? true false -- res ) if ? is t, call true quot, otherwise call falseQuot. Defined as '? call' ;
: if ( ? true false -- res ) ? call ;

`
	code := &codeList{
		idx:  0,
		code: podBackup,
	}
	code.source = "Pod:"
	return executeWordsOnMachine(m, code)
}

































































|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
package pisc

import "fmt"
import "reflect"
import "strings"

// GoWord a wrapper for functions that implement pieces of PISC
type GoWord func(*Machine) error

// NilWord a wrapper for GoWords that should never fail
func NilWord(f func(*Machine)) GoWord {
	return GoWord(func(m *Machine) error {
		f(m)
		return nil
	})
}

func docify(doc string) string {
	return strings.Replace(doc, "<code>", "`", -1)
}

func (m *Machine) AddGoWordWithStack(name, stackEffect, docstring string, impl GoWord) {
	m.DefinedStackComments[name] = stackEffect
	m.HelpDocs[name] = docify(docstring)
	m.PredefinedWords[name] = impl
}

func (m *Machine) AppendToHelpTopic(topic, content string) {
	if help, found := m.HelpDocs[topic]; found {
		m.HelpDocs[topic] = help + docify(content)
		return
	}
	m.HelpDocs[topic] = docify(content)
}

func (m *Machine) AddGoWord(name, docstring string, impl GoWord) {
	m.HelpDocs[name] = docstring
	m.PredefinedWords[name] = impl
}

func t(m *Machine) error {
	m.PushValue(Boolean(true))
	return nil
}

func f(m *Machine) error {
	m.PushValue(Boolean(false))
	return nil
}

func condOperator(m *Machine) error {
	return m.runConditionalOperator()
}

func call(m *Machine) error {
	return m.ExecuteQuotation()
}

func isStackEmpty(m *Machine) error {
	m.PushValue(Boolean(len(m.Values) == 0))
	return nil
}

func typeof(m *Machine) error {
	m.PushValue(String(m.PopValue().Type()))
	return nil
}

func dip(m *Machine) error {
	quot := m.PopValue().(*Quotation).toCode()
	a := m.PopValue()
	err := m.execute(quot)
	if err != nil {
		return err
	}
	m.PushValue(a)
	return nil
}

func pickDup(m *Machine) error {
	distBack := int(m.PopValue().(Integer))
	if distBack > len(m.Values)+1 {
		return fmt.Errorf("Cannot pick %v items back from stack of length %v", distBack, len(m.Values))
	}
	m.PushValue(m.Values[len(m.Values)-distBack-1])
	return nil
}

func pickDrop(m *Machine) error {
	distBack := int(m.PopValue().(Integer))
	if distBack > len(m.Values)+1 {
		return fmt.Errorf("Cannot pick %v items back from stack of length %v", distBack, len(m.Values))
	}
	valIdx := len(m.Values) - distBack - 1
	val := m.Values[valIdx]
	m.Values = append(m.Values[:valIdx], m.Values[valIdx+1:]...)
	m.PushValue(val)
	return nil
}

func pickDel(m *Machine) error {
	distBack := int(m.PopValue().(Integer))
	if distBack > len(m.Values)+1 {
		return fmt.Errorf("Cannot pick %v items back from stack of length %v", distBack, len(m.Values))
	}
	valIdx := len(m.Values) - distBack - 1
	m.Values = append(m.Values[:valIdx], m.Values[valIdx+1:]...)
	return nil
}

func lenEntry(m *Machine) error {
	length := m.PopValue().(Lenable).Length()
	m.PushValue(Integer(length))
	return nil
}

func errorFromEntry(m *Machine) error {
	msg := m.PopValue().String()
	return fmt.Errorf(msg)
}

func reflectEq(m *Machine) error {
	a := m.PopValue()
	b := m.PopValue()
	m.PushValue(Boolean(reflect.DeepEqual(a, b)))
	return nil
}

func isModuleLoaded(m *Machine) error {
	modName := m.PopValue().String()
	for _, mod := range m.LoadedModules {
		if modName == mod {
			m.PushValue(Boolean(true))
			return nil
		}
	}
	m.PushValue(Boolean(false))
	return nil
}

var ModPISCCore = Module{
	Author:    "Andrew Owen",
	Name:      "PISCCore",
	License:   "MIT",
	DocString: "Eventally, the small batch of core PISC words",
	Load:      loadPISCCore,
}

// These are the standard libraries that are currently trusted to not cause problems in general
var StandardModules = []Module{
	ModLoopCore,
	ModLocalsCore,
	ModDictionaryCore,
	ModHelpCore,
	ModStringsCore,
	ModMathCore,
	ModBoolCore,
	ModVectorCore,
	ModSymbolCore,
	ModRandomCore,
	ModPISCCore,
}

func loadPISCCore(m *Machine) error {
	if m.PredefinedWords == nil {
		panic("Uninitialized stack machine!")
	}
	m.AddGoWordWithStack("t", "( -- t )", "The True constant", t)
	m.AddGoWordWithStack("f", "( -- f )", "The False constant", f)
	m.AddGoWordWithStack(
		"dip", "( a quot -- ... a )",
		"Execute a quoation without the top of the stack, and then restore the element at the top",
		dip)

	m.AddGoWordWithStack(
		"stack-empty?",
		"( -- empty? )",
		"Returns true if the stack is empty, false if isn't",
		isStackEmpty)

	m.AddGoWordWithStack(
		"typeof",
		"( a -- typeofa )",
		"Get the type of the value at the top of the stack", typeof)

	m.AddGoWordWithStack("?",
		"( a b ? -- a/b )",
		"The contintional operator: Takes a, b and a boolean. \n"+
			"Returns a if the boolean is true, b if it is false",
		condOperator)

	m.AddGoWordWithStack(
		"call",
		"( quot -- ... )",
		"Call the quotation or callable that is on the stack",
		call)

	m.AddGoWordWithStack("len",
		"( e -- lenOfE )",
		"Check the length of a given collection or string using a Go-side Length interface ",
		lenEntry)
	m.AddGoWordWithStack("eq",
		" ( a b -- same? ) ",
		"Run shallow equality",
		runEq)
	// Discourage use of reflection based eq via long name
	m.AddGoWordWithStack(
		"deep-slow-reflect-eq",
		"( a b -- same? )",
		"Run a deep, refection based comparison. Slower than reflect-eq, but easier to use for vectors",
		reflectEq)
	m.AddGoWordWithStack(
		"error",
		"( message -- !! )",
		"Create an error from msg",
		errorFromEntry)
	m.AddGoWordWithStack(
		"module-loaded?",
		"( module-name -- loaded? )",
		"Check to see if a module with the given name is loaded",
		isModuleLoaded)

	// These words are important for combinators,
	// but aren't documented on the PISC side
	m.AddGoWordWithStack(
		"pick-dup",
		"( ..x.. n -- ..x.. x )",
		"Duplicates a vale that is n entries from the top, or errors if there are less than n entries in the stack",
		pickDup)

	m.AddGoWordWithStack(
		"pick-drop",
		"( ..x.. n -- x )",
		"Removes a vale that is n entries from the top, putting it atop the stack. Raises an error if there are less than n entries in the stack",
		pickDrop)

	m.AddGoWordWithStack(
		"pick-del",
		"( ..x.. n -- )",
		"Deletes the value that is n entries from the top. Raises an error if there are less than n entries in the stack",
		pickDel)
	return m.ImportPISCAsset("stdlib/std_lib.pisc")
}

Changes to random.go.

1
2
3
4
5
6
7
8





9
10
11


12
13

14
15


16
17

18
19
20


21
22
23
24

25












package main

import (
	"math/rand"
	"time"
)

func (m *machine) loadRandyWords() {






	m.helpDocs[word("seed-rand-time")] = "( -- ) Seeds the PSRNG with the current time"
	m.predefinedWords["seed-rand-time"] = NilWord(func(m *machine) {


		rand.Seed(time.Now().UTC().UnixNano())
	})


	m.predefinedWords["rand-int"] = NilWord(func(m *machine) {


		m.pushValue(Integer(rand.Int()))
	})


	m.helpDocs[word("range-rand")] = "( min max -- value ) Take a min and max, give a random integer"
	m.predefinedWords["range-rand"] = NilWord(func(m *machine) {


		max := m.popValue().(Integer)
		min := m.popValue().(Integer)
		m.pushValue(min + Integer(rand.Intn(int(max-min))))
	})

}












|






|
>
>
>
>
>
|
<
<
>
>
|
<
>
|
<
>
>
|
<
>
|
<
<
>
>
|
|
|
<
>

>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14


15
16
17

18
19

20
21
22

23
24


25
26
27
28
29

30
31
32
33
34
35
36
37
38
39
40
41
42
43
package pisc

import (
	"math/rand"
	"time"
)

var ModRandomCore = Module{
	Author:    "Andrew Owen",
	Name:      "RandomCore",
	License:   "MIT",
	DocString: "Functions for random choice",
	Load:      loadRandy,
}



func _seedRandomTime(m *Machine) error {
	rand.Seed(time.Now().UTC().UnixNano())

	return nil
}


func _getRandInt(m *Machine) error {
	m.PushValue(Integer(rand.Int()))

	return nil
}



func _rangeRandomInt(m *Machine) error {
	max := m.PopValue().(Integer)
	min := m.PopValue().(Integer)
	m.PushValue(min + Integer(rand.Intn(int(max-min))))

	return nil
}

func loadRandy(m *Machine) error {

	m.AddGoWordWithStack("seed-rand-time", "( -- )", "Seeds the PSRNG with the current time", _seedRandomTime)
	m.AddGoWordWithStack("rand-int", "( -- random-int )", "Get a random positive int", _getRandInt)
	m.AddGoWordWithStack(
		"range-rand",
		"( min max -- random-int )",
		"Get a random positive int between min and max", _rangeRandomInt)

	return m.ImportPISCAsset("stdlib/random.pisc")
}

Deleted random.pisc.

1
: choice ( vec -- elem ) dup len rand-int swap mod vec-at ;
<


Added scripts/Fibonacci.pisc.





















































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Based on https://github.com/Shopify/go-lua

# This version of fibionacci simply takes *way* too long. 
# I might use it for profiling word dispatches.
: fib-recurse ( a -- b ) 
	:n

	$n 0 = [ 0 ] when
	$n 1 = [ 1 ] when
	$n 1 > [ 
		$n 1 - fib-recurse
		$n 2 - fib-recurse +
	] when
;

# Runs at a reasonable speed for fib(35)
: fib-tail ( n -- b ) :n 0 1 $n do-fib-tail ;

/* This is the tail-recursive version of fibionacci */
: do-fib-tail ( a b n -- q ) 
	:c :n1 :n0
	$c zero? [ $n0 ] when
	$c 1 = [ $n1 ] when
	$c 1 > [ $n1  $n0 $n1 +  $c 1 - do-fib-tail ] when
;

/* Currently the fastest way to calculate fibonacci numbers by far, only 3x slower than Lua 5.2 (not LuaJIT) */
: fib-iterate ( n -- q ) 
	:n
	$n zero? [ 0 ] when
	$n 1 = [ 1 ] when

	$n 1 > [ 
		0 :n0 1 :n1

		$n 1 - [ 
			# Using the stack as temp space
			$n0 $n1 + $n1 :n0 :n1
		] times
		$n1
	] when
;

Added scripts/FizzBuzz.pisc.





























>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* 
 Implementing fizzbuzz in PISC
*/

: fizzbuzz-n ( n -- )
:n /* Store the number from the stack into the n local variable  */
1 :i /* Store 1 into num variable */
$n [
	$i 3 divisor? [ "Fizz" ] [ "" ] if :f
	$i 5 divisor? [ "Buzz" ] [ "" ] if :b
	${ $f $b } :fb /* Save the result of the FizzBuzz checks into the fb local var */
    $fb len 0 > [ $fb println ] [ $i println ] if 
    $i 1 + :i
] times ;

Added scripts/SumsOf3And5.pisc.



































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
Sums below 1000 of multiples of 3 and 5
*/

"std_lib.pisc" import

: inc ( a -- b ) 1 + ;

get-locals
0 :n
 /* Maybe we can keep this on the stack? */
0 1000 [ /* Sum and loop count */
	dup inc :n
	[ 5 divisor? ] [ 3 divisor? ] bi or [ $n + ] when
] times
print
drop-locals

Added scripts/WikiCounting/download-wiki-pisc.pisc.



























































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# ${ "https://en.wikipedia.org/wiki/" $page } http-get .content-as-str ${ $page ".html" } 

: wiki-get ( page-name -- http-resp ) :name
	"GET" 
	${ "https://en.wikipedia.org/wiki/" $name }
	<dict> #options, can contain body and headers
	do-http-req
;

: str-to-file ( str/content path --  ) 
	:path :content
	$path open-file-writer :OUT
	$content $OUT .write-string
	$OUT .close
;

: main ( -- ) :quot 
	"ABCDEFGHIJKLMNOPQRSTUVWXYZ" :chars
	$chars len 26 = not [ "Invalid Alphabet length!" error ] when
	$chars [ :o
		$chars [ $o swap str-concat :name
			$name wiki-get .content-str $name save-str-to-path
		] each-char
	] each-char
;

: test ( -- )
	"GET" "http://junglecoder.com" <dict> do-http-req .content-str "out.html" save-str-to-path
;

Added scripts/WikiCounting/out.html.

































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352

<!DOCTYPE html>
<html>
	<head>
		<link href="/css/homepage.css" rel="stylesheet" type="text/css">
		<link href="/css/prettify.css" type="text/css" rel="stylesheet" />
		<script type="text/javascript" src="/js/prettify.js"></script>
		<title>
			Jungle Coder
		</title>
	</head>
	<body onload="prettyPrint();">
		<div class="headingBacker">
			<div class="headingForeground">
				<a class="heading" href="/">Jungle Coder</a>
				<p id="motto"><i>The musings of a third culture coder and missionary kid</i></p>
			</div>
		</div>
		<div id="main">
			<div class="sidebar"> 
			<div class="content">
				<div class="sidebar-link"><a href="/">Home</a></div>
				<div class="sidebar-link"><a href="/blog/AboutMe">About Me</a></div>
				<div class="sidebar-link"><a href="/blog/feed.xml">RSS feed</a></div>
				<p>
					Welcome to my blog. This website/blog is still under construction, so there are a few rough edges.
				</p>
				<p>UPDATE: Now with https, so that security is increased.</p>
				<p>UPDATE: RSS feed added, one edge smoothed</p>
				<p>
					To come as my <a href="http://www.catb.org/jargon/html/C/copious-free-time.html">copious free time</a> allows:
				</p>
				<ul>
					<li>Archive list of blog posts and date based permalinks
					</li>
					<li><del>RSS feed.</del>
					</li>
				</ul>
				<div class="sidebar-link"> 
				
				<a href="/blog/login">Login</a>
				
				</div>
			</div>

				</div>
			<div class="content left body">
					
					
					 
					
					<h2>
						<a class="title" href="/blog/two-android-tips">Two Android Tips </a> 
						
					</h2>
					 
					<p>Two random Android related tips:</p>

<p>1) If you&rsquo;re developing apps on less than common Android phones via Andriod Studio, like the One Plus One (my device), then using the <a href="https://www.londonappdeveloper.com/oneplus-one-adb-access-over-network-on-windows-10/">ADB network bridge</a> will save you having to figure out which set of drivers you&rsquo;d need to actually be able to connect to the phone via USB. It is cautioned against if you&rsquo;re on an untrusted network, and at least the One Plus One has you confirm that you want to create a debugging connection, but it does seem a bit handy.</p>
 <a href="/blog/two-android-tips" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/pisc-git-mirror">PISC now has a Github Mirror </a> 
						
					</h2>
					 
					<p>A while ago, I decided to self-host the <a href="https://pisc.junglecoder.com">PISC</a> repository using Fossil, mostly so that PISC could be easily self-hosted on hardware that I own, rather than relying on Github. Until now, this meant that to play with PISC, you had to either install fossil (which isn&rsquo;t hard, but is an extra step), or content yourself to a tarball/zip file.</p>

<p>As of this morning, there is now a Github based <a href="https://github.com/yumaikas/PISC-mirror">mirror repository</a>. While I don&rsquo;t intend to do my main development and documentation there, I will accept and work with issues and/or PRs there (such as I have time to do).</p>
 <a href="/blog/pisc-git-mirror" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/pisc-origin">My Programming Journey Part 2: Calculators led to Parsing led to Programming Languages </a> 
						
					</h2>
					 
					<p>Every programmer has a favorite toy problem or smallish program idea that they like to use to try out new tools. For quick testing of GUI tools, mine is a 4-function calculator. This fascination started at an early age, when I was programming QBASIC at the age of 14. I wrote one in 15 lines of code that prompted for the first number, operation and second number. When I moved on to <a href="http://basic.mindteq.com/index.php?i=70">Envelop Basic</a>, I created a GUI calculator with three text boxes, two inputs and one output, with a button for each of the 4 operations.</p>

<p>Then, as my family was traveling from Kansas to Florida in 2011, I was introduced to Petzold&rsquo;s <a href="http://www.charlespetzold.com/code/">CODE</a>, and advised that C# would be a good language to pick up for finding jobs. One of my key discoveries working in BASIC during my teenage years was that I had to have a project in mind if I was going to get any programming really done. So I decided that to learn C#, I would build as much of a scientific calculator as I could figure out.</p>
 <a href="/blog/pisc-origin" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/LateNightProgramming">Late Night Programming </a> 
						
					</h2>
					 
					<p>I&rsquo;ve decided to tackle it </br>
It&rsquo;s going to get done </br>
Doesn&rsquo;t matter if I&rsquo;m fit </br>
 <a href="/blog/LateNightProgramming" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/VanillaJSDOMAttributes">JS: DOM Attributes are lower-cased, and getAttribute is case insensitive </a> 
						
					</h2>
					 
					<p>A short reminder for those of us writing JS without libraries:</p>

<p>DOM attributes are a little strange from JS. When you iterate over them using the <code class="prettyprint">attributes</code> property, all the names come back completely lower cased. When you fetch them using <code class="prettyprint">getAttribute(name)</code>, the attribute name argument is completely case insensitive.</p>
 <a href="/blog/VanillaJSDOMAttributes" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/LifeInPNG">Life in PNG: Moving and moving and moving </a> 
						
					</h2>
					 
					<p>I had the opportunity to visit my parents in Papua New Guinea this summer, and it was an awesome trip. It gave me a chance to clear my head and get away from the constant stream of information and distraction that is so baked into life as an American technologist. It also gave me a chance to get a perspective on what missionary life is like.</p>

<p>One example of life overseas being just straight hard work is the sheer amount of moving that is involved. First, you have to pack up your entire American life. Every. Single. Thing. All your books, clothes, cars, shoes, plates, food and everything has to be dealt with in some fashion.</p>
 <a href="/blog/LifeInPNG" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/JavaEcosystemPain">Why I dislike the Java Ecosystem </a> 
						
					</h2>
					 
					<p>I am a programming polyglot. While I work by day in C#, I have wandered far and wide in my own time. Each language and surrounding ecosystem I&rsquo;ve tried has a different strengths and weaknesses*, but one stands out as disappointing to work with overall: Java.</p>

<p>Java, the language, is a little bit on the verbose side, and a little split-brained  in how it treats primitives vs classes, but it&rsquo;s very far north of tolerable, especially as generics and such have been added over the years. Java, the ecosystem, on the other hand, is a case study in making things more complicated and painful than it needs to be, especially on Windows.</p>
 <a href="/blog/JavaEcosystemPain" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/LD36Ideas">Ideas for LD36 </a> 
						
					</h2>
					 
					<p>So I had a bunch of ideas for Ludum Dare 36, as I tried to come up with an idea for each idea. As luck would have it, the theme was the one that I didn&rsquo;t plan for, but these ideas could still be made to work. <em>(Edit: I wasn&rsquo;t able to finish anything for LD 36 due to life getting in the way)</em></p>

<p>Enjoy!</p>
 <a href="/blog/LD36Ideas" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/NginxCookieReverseProxy">Adventures in using Nginx as a reverse proxy </a> 
						
					</h2>
					 
					<p>Lately I&rsquo;ve been trying to learn how to run more than one web application on a web server. I understand this often involves using nginx as a reverse proxy. I&rsquo;ve been interested in rewriting my blog in Elixir/Phoenix, but I want to keep the current blog up while I&rsquo;m making the changes. So I&rsquo;ve been stumbling through nginx reverse proxy tutorials. I will be taking notes into this post about various things that I&rsquo;ve learned about how to set up nginx as a reverse proxy for golang applications like this blog.</p>

<p>Currently my config is below:</p>
 <a href="/blog/NginxCookieReverseProxy" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/FilesStoredByDate">PowerShell: Organizing Desktop Detrius into Dated Folders </a> 
						
					</h2>
					 
					<p>I was reading an article written by a linux sysadmin about the trials of good file organization. After trying various hierarchical schemes, he settled on an interesting one: Storing files by Date, in folders. I&rsquo;ve also just learned about Engineering Notebooks, where ideas are logged for a company, and dated by page.</p>

<p>I decided to try something similar with a pile of documents on my current laptop. Hence, the following PowerShell script, run over several file extensions typs (see <code class="prettyprint">*.jpg</code>).</p>
 <a href="/blog/FilesStoredByDate" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/RunningServicesOnDemand">Make sure you&#39;re able to run timer based services on demand </a> 
						
					</h2>
					 
					<p>My job has had me working on service applications that run on a timed interval. One aspect of debugging these services that was slowing me down was waiting for the service to get triggered. For the longest time, I compensated by having the service be in on a 10 second timeout, since it didn&rsquo;t take very long to run a sync. This still slowed me down though, and it made it easier to get sidetracked while waiting for the service to fire.</p>

<p>The solution didn&rsquo;t strike me for a good 3 months: Add a way to trigger the service on demand. It is a very obvious solution in retrospect. And it makes a lot of difference when debugging, as I can fire off the service as much as is needed to test for different states.</p>
 <a href="/blog/RunningServicesOnDemand" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/CSharpDebugIfAttached">A .NET breakpoint that only breaks if a debugger is attached </a> 
						
					</h2>
					 
					<p>This is a helpful little function that I wrote when I found out about the <a href="https://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.isattached(v=vs.110">System.Diagnostics.Debugger.IsAttached</a>.aspx) property. I found it useful for debugging a synchronization service that I was working on at work.</p>

<p>What other little utilities like this have you made?</p>
 <a href="/blog/CSharpDebugIfAttached" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/LearningProjects">Academic Portfolio </a> 
						
					</h2>
					 
					<p><em>EDIT: These are rather old compared to what I&rsquo;ve had time to do since.</em></p>

<p>Below are some links to some of the more interesting programs that I&rsquo;ve done for school. None of these programs necessarily represents my best work, but you find might them entertaining or educational. This list will get updated as I add more of my learning-experience programs online.</p>
 <a href="/blog/LearningProjects" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/CKEditorSetDataNotWorking">CKEditor setData failing - Documenting the Arbitrary </a> 
						
					</h2>
					 
					<p><em>UPDATE:</em></p>

<p>The lead CKEditor developer responded to this blog post via a <a href="http://dev.ckeditor.com/ticket/12859">ticket</a>.</p>
 <a href="/blog/CKEditorSetDataNotWorking" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/InternationalBibleDay">International Bible Day </a> 
						
					</h2>
					 
					<p>I found out this evening that today was the International Day of the Bible. In celebration, I bring a verse and a call.</p>

<h3>Verse</h3>
 <a href="/blog/InternationalBibleDay" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/Meta">Meta: Bugs and Suggestions </a> 
						
					</h2>
					 
					<p>Thank you for reading my blog.
This website is currently done on my spare time, often during late nights (like much software). Because of this, there&rsquo;s occasional bugs and ugly pages. I&rsquo;d love to know when that happens, so that your reading experience isn&rsquo;t sullied by it.</p>

 <a href="/blog/Meta" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/CountingCSharpSLOCviaPowershell">Counting lines of C# using Powershell </a> 
						
					</h2>
					 
					<p>I recently wanted to see how many lines of code were in a particular C# project. Google lead me to the following article: <a href="http://www.limilabs.com/blog/source-lines-of-code-count-using-powershell">http://www.limilabs.com/blog/source-lines-of-code-count-using-powershell</a></p>

<p>I refined that script to exclude most of the designer files that Visual Studio generates via UI tools. The results are below in a gist.</p>
 <a href="/blog/CountingCSharpSLOCviaPowershell" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/RegexTimeoutNetPerformanceGotchas">Performance Gotchas in .Net 2 - Regex timeouts </a> 
						
					</h2>
					 
					<p><em>Every programming framework has certain corner cases suck the performance out of an application. The .Net Framework is no exception. I’ve discovered a few in my work with C#, and blog about them as I find time.</em></p>

<p>I love using regex for search/replace/text manipulation tasks in programming. You don&rsquo;t have to go to full perl mode for the awesomeness that is <code class="prettyprint">Regex.Replace(&quot;(\w+)-(\d+)&quot;, &quot;$2-$1&quot;);</code>. This awesomeness is counter-balanced with the risk of <a href="http://www.regular-expressions.info/catastrophic.html">catastrophic backtracking</a> when using the non-regular varieties of regex, like Perl, Javascript and, most pressing for me, .NET.</p>
 <a href="/blog/RegexTimeoutNetPerformanceGotchas" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/LifeAsAPedestrianWeek1">Life as a Pedestrian: My First Few Days in Bellingham </a> 
						
					</h2>
					 
					<p><em>Note: This is a piece that I wrote towards the beginning of my time in Bellingham. I plan another article soon as I am on the other side of my internship</em></p>

<p>The world is a bigger place when you have to walk everywhere. This is my profound discovery of these first few days in Bellingham. Walking is one thing that I&rsquo;ve done a lot over these past few days. It gives you a different perspective on life. I&rsquo;m thankful to the many drivers that have stopped for me to cross the road these past few days.</p>
 <a href="/blog/LifeAsAPedestrianWeek1" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/ProgrammingJourneyPart1Qbasic">My programming journey: Part 1 - QBasic </a> 
						
					</h2>
					 
					<p>One of the things that I’ve been blessed with is the opportunity to start programming from a young age. What follows is the start of that story, what abstractions and tools I picked up then, and what crazy things I was trying to do with them (more than I knew what I was getting into, usually). This post covers the 12-14 year old me learning ropes of programming (as remembered 8 years hence).</p>
<h3 id="the-olden-times-qbasic-boy-scout-magazines-and-input-validation">The Olden times: QBasic and Boy Scout Magazines</h3>
<p>I started in programming for the same reason as many others: I had video game ideas that I wanted to make on the computer. My father, a Bible translator, set me up with QBASIC. My textbook was a pile of Boy Scout magazines that I found in the kid’s room at the Pioneer Bible Translators offices.</p>
 <a href="/blog/ProgrammingJourneyPart1Qbasic" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/Jules">Jules </a> 
						
					</h2>
					 
					<p>There are stories of <a href="http://en.wikipedia.org/wiki/Rubber_duck_debugging">rubber ducky</a> (or teddy bear) problem solving, where the only thing that a person needs to do to solve a particular problem is articulate that problem to someone else, or in this case, something else. This leads to stories of engineers being able to solve their problems by explaining them to inanimate objects. When I explained this to my family, I suggested that I might want a rubby duck for Christmas, so that I would have something to explain my programming problems to.</p>

<p>So it was great fun to get a rubby duck for Christmas from my sister. She added a little story to it, projecting what Jules (the rubber duck) would be doing with me as I work on my programs. (She hadn’t read the wikipedia article that I linked to.)</p>
 <a href="/blog/Jules" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/MechanicalAndCreativeWork">Mechanical and Creative Work </a> 
						
					</h2>
					 
					<p>I have a very active mind. As a home schooler, I read around 1000 books (of various lengths) between learning to read and graduating. I also tend to have at least one program/board game/story idea percolating in the back of my mind. I started programming so that I could build a few of those ideas.</p>

<p>The creative process carries a great deal of intrinsic motivation. But there is also a mechanical side to programming that can’t be escaped. The mechanical side of programming is where a program gets its polish, but it can feel a bit gritty and tiresome at points. I find that it happens when performing ports to a familiar technology, or when writing yet another simple* SQL Query (YASSQ).</p>
 <a href="/blog/MechanicalAndCreativeWork" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/PerformanceGotchasBindingList">Performance gotchas in .NET: BindingList&lt;T&gt; </a> 
						
					</h2>
					 
					<p><i>Every programming framework has certain corner cases that can drain performance when mishandled. The .Net Framework is no exception. I’ve discovered a few in my work with C#. I’ll be blogging about these as I find them.</i></p>

<p>These are not micro-optimizations like using <code class="prettyprint">String.Concat</code> instead of <code class="prettyprint">+= ""</code> over a small string. These problems will suck the performance straight out of your application, and are inconspicuous in the code, requiring a some kind of profiling to realize what’s going on.</p>
 <a href="/blog/PerformanceGotchasBindingList" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/ThePeopleYouPlayWith">The People you Play with... </a> 
						
					</h2>
					 
					<p>My brother and I rolled dice and commanded armies, testing our strategy against the wits and armies of Kaser the Kaiser, as he like to call himself. Wars waged went back and forth over the RISK board, to the sound of much hilarity, fun, and explanation of rules. My first RISK game, colored by nostalgia and entertained by the fun nature of Mr. Kaser, seems like one of the funnest ones I've had. The people you play with have a dramatic effect on your board gaming experience. </p>

<p>Since then I've played RISK several times, but over time I've realized that it is a game that is fundamentally drawn out. My relish for RISK has faded with experience. I've moved on to other games that have more intrinsic fun, like Dominion, Settlers of Catan and Race for the Galaxy. These games bring better pacing, balance, and variety to family game night. But you can't escape the importance of the chemisty with your fellow gamers.</p>
 <a href="/blog/ThePeopleYouPlayWith" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/WellFactoredCode:CallingSql">Well Factored Code : Calling SQL </a> 
						
					</h2>
					 
					<p><em>Disclaimer: None of the SQL refers to data that I use at work. They were inspired by golang's <a href="http://golang.org/pkg/database/sql/#example_DB_Query">database/sql</a> package documentation</em></p>

<p>One of the things that I've been learning as a programmer is what well factored code looks like. There are several concerns that go into it, but one very important part of well factored code is the principle of Don't Repeat Yourself (DRY). The net result of DRY is that when you only have to write the unique elements of your code, removing repetitious noise. This helps you focus on actual differences in code, instead of trying to to filter the signal out of the noise.</p>
 <a href="/blog/WellFactoredCode:CallingSql" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/SkillIsNotCalling">Skill Is Not Calling </a> 
						
					</h2>
					 
					<p>In the Kingdom of God, obedience is worth more than skill. God is more than able to make up for our deficiencies. These are some things that I've known to be true on a mind level, but lately God has worked in me to help sink into my heart. When we go on our own skill, the best we can do is be something that the world could have produced on it's own. Thus we have people that do "good" things, whether by temperament, a guilty conscience or civic duty. We end up reflecting ourselves, in all our human fallibility, and will disappoint those who see us. </p>

<p>But God has not called us to run on our own skill. He has called us to obey his calling. His calling is not always <a href="http://www.biblegateway.com/passage/?search=Ezekiel%204&version=NIV">comfortable</a>, nor is it always <a href="http://www.biblegateway.com/passage/?search=Matthew%203&version=NIV">tame</a>. Regardless of how strange or difficult his calling is, he will provide for it to be fulfilled. When we are in tune with the Holy Spirit and obeying him, we don't run on the stuff of this world. The stuff of this world doesn't produce superhuman results.</p>
 <a href="/blog/SkillIsNotCalling" >Read more...</a>
					<hr>
					
					<h2>
						<a class="title" href="/blog/AboutMe">About Me </a> 
						
					</h2>
					 
					<p>I&rsquo;m Andrew Owen. My universal web handle/mascot is yumaikas, (pronounced you-MIKE-us) a Papua New Guinean tree said to  resemble a boy caked in dirt, pouring out rivers of sweat over white skin. I program, pray, and think; sometimes the result is worth discussion.</p>

<h4>Career</h4>
 <a href="/blog/AboutMe" >Read more...</a>
					<hr>
					
			</div>
		</div>
	</body>
</html>

Added scripts/WikiCounting/test.txt.



>
1
this is data

Added scripts/bathroom_stall.pisc.







































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* 
Solving this code golf problem http://codegolf.stackexchange.com/questions/89241/be-respectful-in-the-restroom
*/


: respect ( stalls -- respectfulPostion ) 

	<vector> :distances
	<vector> :full
	<vector> :empty
	0 :i 
	>string 
	[ 
		dup "1" str-eq? [ [ $i vec-append ] $:full ] when 
		"0" str-eq? [ [ $i vec-append ] $:empty ] when
		[ 1 + ] $:i
	] each-char 
	0 :i
	$empty [ :eElem 
		0 dup :dist :i 
		$full [ :fElem
		  [ $fElem $eElem - abs + ] $:dist
		  [ 1 + ] $:i
		] vec-each
	    $dist $i 0.0 + / $eElem 2vector [ swap vec-append ] $:distances
	] vec-each
	0 :maxDist
	0 :maxPos

	$distances dup print [ /* Pop the elements into vars */
		dup []0 :dist []1 :pos
		$maxDist $dist < [ $pos :maxPos $dist :maxDist ] when 
	] vec-each
	$maxPos
	;

Added scripts/build.pisc.

































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# An attempt at figuring out what a PISC build script would look like

/*
# targets: 
	pisc.exe, built by go in cmd/pisc, but located at the toplevel
		- depends on bindata.go being up to date
		- Should run tests after build
	the gopherjs playground.js file, located in cmd/playground/
		- depends on bindata.go being up to date
		- Deploy to server?
*/

: <target> ( command deps -- target ) 
	:deps :cmd
	<dict>
		$deps <<-deps
		$cmd <<-cmd
		f <<-is-file
;

: <file-target> ( command deps -- targ ) <target> t <<-is-file ;

: <build> ( targets -- build ) 
	:requested-targets
	<dict> :targets

	<dict>
		[ /* target deps cmd  -- */
			:cmd :deps :t-key
			$cmd $deps <target> :t-val
			$targets $t-val $t-key dict-set drop
		] <<-task
		[
			:cmd :deps :t-key
			$cmd $deps <file-target> :t-val
			$targets $t-val $t-key dict-set drop
		] <<-file-task
		[ 
			$requested-targets [   ] 
		] <<-run

;

{ "test" } <build> $bld

[ $bld .file-task ] :file-task
[ $bld .task ] :task
[ $bld .run ] :run

: exe ( str -- name ) is-windows [ ".exe" str-concat ] when ;

: pisc-stdlib ( --  ) "stdlib/" list-files-at [ ->name ".pisc" str-ends? ] vec-filter ;

"bindata.go" pisc-stdlib [
	{ "go-bindata.exe" "--pkg" "pisc" "stdlib/..." } exec
] file-task

"pisc.exe" { "bindata.go" } [
	"./cmd/pisc/" [
		{ "go" "build" } exec
	] in-dir

	${ "./cmd/pisc/pisc" exe } ${ "./pisc" exe } rename
] file-task

"playground" { "bindata.go" } [
	"./cmd/playground" [
		{ ${ "gopherjs" exe } " build -m" } exec
    ] in-dir
	# Maybe work on moving this file
] task

"deploy-playground" { "playground" "test" } [
	"./cmd/playground" pushd
	list-files [ :f 
		$f ->name ".js" str-ends? 
		$f ->name ".css" str-ends? or
		$f ->name ".hmtl" str-ends? or
	] vec-filter [
		->name :fname
		{ "scp" $fname ${ "yumaikas@junglecoder.com:/var/www/pisc-static/playground/" $fname} } exec
	] vec-each
] task

"test" { "pisc.exe" } [
	{ ${ "./pisc" exe }  "-f" "tests/all.pisc" } exec
] task

"clean" { } [ 
	${ "./pisc" exe } rm
	${ "./cmd/pisc/pisc" exe } rm
	"./cmd/playground/playground.js" rm
	"bindata.go" rm
] task

run

Added scripts/chars.pisc.













>
>
>
>
>
>
1
2
3
4
5
6
: char-any ( c chars -- ? )
	:chars :c
	f :isAny
	$chars [ $c str-eq $isAny or :isAny ] each-char
	$isAny
;

Added scripts/codegen/CSharp/immutable-classes.pisc.

































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# Change this function to set properties
: *props* ( -- data )
"
DateTime Time
String Message
" process-props ;

: main ( -- ) 
  [  "LogEntry" *props*  ] :args
  args gen-immutable-class
  args gen-ctor-call
;

: str-first-lower ( string -- String ) 
   :s 
   $s 0 1 str-substr str-lower :l
   $l $s 1 $s len str-substr str-concat
;

: str-first-upper ( string -- String ) 
   :s 
   $s 0 1 str-substr str-upper :u
   $u $s 1 $s len str-substr str-concat
;

: NL ( -- nl ) "\n" ;

: TAB ( -- t ) "&nbsp;&nbsp;&nbsp;&nbsp;" ;

: process-props ( str -- props ) 
    str-trim "\n" str-split [
        ";" "" str-replace " " str-split
        splat :n :t <dict> $n str-first-upper <<-name $t <<-type
    ] vec-map 
;

: gen-ctor ( name exposed-props -- str ) 
	:props :name
	${ 
	    # Gen args
        "public " $name "(" NL 
	    { $props [ :q ${ TAB $q ->type " " $q ->name } ] vec-each } ${ "," NL } str-join
	    ")" NL 
	    "{" NL
	    # Gen assignments
	    $props [ ->name :name TAB "this." $name str-first-lower " = " $name ";" NL ] vec-each 
	    "}" NL
	}
;

: gen-immutable-class ( name exposed-props -- str ) 
    :props :name
	${
    	"class " $name " {" NL
    	# emit public get-only properties
    	$props [ :q $q ->type :t $q ->name :n
			TAB "public " $t " " $n " { get { return " $n str-first-lower "; } } " NL
    	] vec-each 
	    NL

	    # emit ctor
	    $name $props gen-ctor NL   

	    # emit private backing fields
	    $props [ :q $q ->type :t $q ->name :n 
	        TAB "private readonly " $t " " $n str-first-lower ";" NL
	    ] vec-each
	   "}"
    }
;

: gen-ctor-call ( name exposed-props -- str ) 
	:props :name
	${ "new " $name "(" NL
	    { $props [ :q ${ TAB $q ->name ": " } ] vec-each } ${ "," NL } str-join
	    ");"
	}   
;

main

Added scripts/constest.pisc.

































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
: build ( counter list -- list )
	:list :counter
	$counter 0 = [ $list ] [ $counter 1 - { $counter $list } build ] if ;

: build-loop ( counter list -- list )
	:list :counter
	[ $counter 0 = not ] [ { $counter $list } :list $counter 1 - :counter ] while
;

: cons-test ( -- ) 
    # "Code took" is prefixed by time atm.
    ${ [ 100000 <vector> build-loop ] time " for loop version" } print
    ${ [ 100000 <vector> build drop ] time " for recursive version" } print
;

/* Run a test and see what this ends up doing */

Added scripts/counter.pisc.



















>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
/* This counter is an example of using closures for state management with dictionaries */
: <counter> ( val -- counter ) 
	dup :val :orig
	<dict> 
		[ $val 1 - dup :val 0 > ] <<-down
		[ $orig :val ] <<-reset 
;


Added scripts/counting/defs.pisc.























>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
#! /home/yumaikas/gocode/bin/pisc -f
# Update the shebang value by filling in the contents of 'which pisc'
# After installing pisc

: NL ( -- ) "\n" ;

${  NL
    "There are " count-go-words >string " Go words" NL
    "There are " count-pisc-words >string " PISC words" NL
    "There are " count-prefix-words >string " PREFIX  words" NL
} println

Added scripts/countize-nums.pisc.

















>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
0 :i
[ "\"" ] :'

"th st nd rd th th th th th th" " " str-split [
 :s ${ ' $i $s ' } 
 ++i
] vec-map 
",<br/>" str-join /* Using <br/> in web context, I'd use \n otherwise */

Added scripts/csv.pisc.



















































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* Parsing CSV data in PISC */

: parse-csv-core ( reader -- vec [ vec ] ) 
	:reader
	<vector> :results
	f :inString
	f :lastCharWasQuote
	[ $inString not ] :outOfString

	/* Set up the temporary variables */
	[ "" :tempStr ] :resetCell
	[ resetCell <vector> :tempVec ] dup call :resetLine

	[ $tempVec $tempStr vec-append :tempVec resetCell ] :addCell
	[ $results $tempVec vec-append :results resetLine ] :addLine

	[ $reader .EOF not ] :notEOF
	[ $reader .read-rune ] :readRune

	[ notEOF ] [ 
		/* By default, append a char */
		t :default
		[ f :default ] :break

		readRune
		dup "," str-eq? outOfString and [ addCell break ] when
		dup "\n" str-eq? outOfString and [ addCell addLine break ] when
		dup "\"" str-eq? [
			$lastCharWasQuote 
				[ f :lastCharWasQuote [ "\"" str-concat ] $:tempStr break ]
				[ t :lastCharWasQuote outOfString :inString break ] 
			if
		 ] when
		$default [ [ swap str-concat ] $:tempStr ] [ drop ] if
	] while 
	/* Add the straggling items */
	addCell addLine 
	$results ; 

: csv-of-file ( filepath -- vec [ vec ] ) open-file-reader parse-csv-core ;
: csv-of-string ( string -- vec [ vec ] ) str>rune-reader parse-csv-core ;

Added scripts/diff-filter.pisc.





























>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14

: diff-filter ( filt -- ci-command )
	:filt?
	[ "\"" ] :'

	"diff" get-paste-text
	"==================================================================" str-split 
	[ filt? ] vec-filter 
	[ 
		"+++" str-split 0 vec-at
		"---" "" str-replace str-trim
	] vec-map :arr
	${ "f ci " $arr " " str-join " -m 'Rename importPISCAsset to ImportPISCAsset'" } 
;

Added scripts/factorial.pisc.























>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
: factorial ( x -- y ) :x 
	$x 0 > [ $x $x 1 - factorial * ] [ 1 ] if ;

: factorial-loop ( x -- y ) 1 + :x  
 1 :result
 $x 1 - [
    $x 1 - :x
	$result $x * :result
 ] times 
 $result
;

Added scripts/ircbasics.pisc.

















































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

: handle-ping ( conn message -- was-ping ) 
	:msg :conn
	$msg .command "PING" str-eq? :was-ping
	$was-ping [
		$msg .params 0 vec-at :resp-key
		${ "PONG :" $resp-key } :resp 
		$resp $conn .send-message
	] when
	$was-ping
;

: irc-pong-server! ( addr -- )
	:addr
	"Before trying to connect" println
	$addr irc-dial :conn

	/* Get the server MOTD and the like */
	"PASS 0" $conn .send-message
	"NICK pisc-bot" $conn .send-message
	$conn dup .recieve-message handle-ping drop
	"USER piscbot piscbot i :piscbot" $conn .send-message
	$conn dup .recieve-message handle-ping drop

	t :reading-motd
	[ $reading-motd ] [
		$conn .recieve-message :msg
		$conn $msg handle-ping :junk
		$msg .raw-str println
		/* Waiting for a MODE command so we know that MOTD has been finished */
		$msg .command "MODE" str-eq? not :reading-motd
	] while

	"JOIN #botwars" $conn .send-message
	# "PRIVMSG #alakajam :!ping-bot to test me." $conn .send-message

	[ t ] [
		"Awaiting a message" println
		$conn .recieve-message :msg
		${ $msg .command " " } println
		$conn $msg handle-ping not [
			${ "<" $msg .params "><" str-join ">" } println
			$msg .params " " str-join :args
			$args "!ping-bot" str-contains? [
				"PRIVMSG #botwars :pong-bot!" $conn .send-message
			] when
			$args "!ping-leave" str-contains? [
				"QUIT :Fare thee well!" $conn .send-message
			] when
		] when
	] while
	$conn .close
;

: freenode-pong-server ( -- ) "irc.freenode.com:6667" irc-pong-server! ;
: afternet-pong-server ( -- ) "irc.afternet.org:6667" irc-pong-server! ;

Added scripts/irckit.pisc.

















































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
: handle-ping ( conn message -- was-ping )
    :msg :conn
	$msg .command "PING" str-eq? :was-ping
	$was-ping [
		$msg .params 0 vec-at :resp-key
		${ "PONG :" $resp-key } :resp 
		$resp $conn .send-message
	] when
	$was-ping
;

: irc-conf-defaults ( conf -- filledConf ) 
	:conf
	/* ( key fallbackVal --  ) */
	[ :v :k 
		$conf $k dict-has-key? not [
			$conf $v $k dict-set
		] when
	] :fallback

	"pass" "0" fallback
	"nick" "piscbot" fallback
	"chanlist" { "#botwars" } fallback
	"responders" { 
		 <ping-responder>
	} fallback
	"address" "" fallback
	$conf
;

: clean-chanlist ( chan-vec -- chancsv ) 
	:list
	{
		$list [ :c
			$c "#" str-starts? [ $c ] [ ${ "#" $c } ] if
		] vec-each 
	} "," str-join
;

: irc-evented-server! ( conf -- ) 
	irc-conf-defaults :conf
	"Checking address" println
	# Make sure we have an address
	$conf ->address len 0 > [
		$conf do-irc-evented-server!
	] [ "Need an address to dial into server!" println ] if
;

: do-irc-evented-server! ( conf -- )
	/* This server is single threaded for now */
	:conf 
	"Before trying to connect" println
	$conf ->address irc-dial :conn /* TODO: Figure out how to handle errors here, if at all */
	[ $conn .send-message ] :send
	[ $conn dup .recieve-message handle-ping ] :check-ping
	[ $conn .recieve-message ] :get-message

	$conf ->chanlist clean-chanlist :chanlist
	# Initialize the responders with an open connection
	{ $conf ->responders [ $conn swap call ] vec-each } :responders

	/* Get the server MOTD and the like */
	${ "PASS " $conf ->pass } send
	${ "NICK " $conf ->nick } send
	check-ping
	${ "USER piscbot piscbot i :" $conf ->nick } send
	check-ping


	/* Waiting for a MODE command so we know that MOTD has been finished */
	t :reading-motd
	[ $reading-motd ] [
		get-message :msg
		$msg .params " " str-join println
		$conn $msg handle-ping
		$msg .command "MODE" str-eq? not :reading-motd
	] while

	${ "JOIN " $chanlist } send

	[ t ] [
		get-message :msg
		$conn $msg handle-ping not [
			# This is a sandboxing technique
			$responders [ :resp $msg $resp call ] vec-each 
		] when
	] while
	$conn .close
;


: is-ping? ( msg -- ? ) :msg
		$msg .command "PRIVMSG" str-eq?
		$msg .params len 1 > [ $msg .params 1 vec-at "!ping" str-contains? ] when
	and
;

: <ping-responder> ( conn -- resp ) 
    [ :conn
        [ :msg
            $msg is-ping? [
                $msg .params 0 vec-at :replyId
                ${ "PRIVMSG " $replyId " ping!" } $conn .send-message
            ] when
        ]
    ]
;

: is-eval? ( msg -- ? ) :msg
		$msg .command "PRIVMSG" str-eq?
		$msg .params " " str-join "$pisc" str-contains?
	and
;

: clean-eval-output ( vec -- str )
    "|" str-join
    "\n" " " str-replace 
    dup len 100 > [ 0 100 str-substr " (Truncated...)" str-concat ] when
;

: clean-eval-code ( str -- code ) 
    :code 
    $code "$pisc" str-contains? 
    $code "$piscbot-help" str-contains? not and [ 
        $code "$pisc" str-idx-of :start
        $code len :end
        $code 
            $start "$pisc" len +  
            $end 
        str-substr
    ] [ "" ]  if
    dup println
;

# This is curried 3 ways
: <evalbot-responder> (  vm  -- [ conn - [ msg - response ] ] ) 
    :vm 
    [ :conn
        [ :msg
            $msg is-eval? [
                $msg .params
                    dup 0 vec-at :replyId
                        1 vec-at :eval-code
                $eval-code clean-eval-code
                $vm .eval 
                clean-eval-output :body
                
                ${ "PRIVMSG " $replyId " :" $body } $conn .send-message
            ] when
        ]
    ]
;

: is-help? ( msg -- ? ) :msg
        $msg .command "PRIVMSG" str-eq?
        $msg .params " " str-join "$piscbot-help" str-contains?
    and
        $msg .params len 0 >
    and
;

: help-message ( replying-to -- str ) :reply-id
    ${
        "PRIVMSG " 
        $reply-id
        " :I can be used to evaluate pisc on IRC. See https://pisc.junglecoder.com for language details" 
    } 
;

: <help-responder> ( -- [ conn - [ msg - response ] ] )
    [ :conn 
        [ :msg
            $msg is-help? [
                $msg .params 0 vec-at help-message  $conn .send-message
            ] when
        ] 
    ] 
;

: irc-conf-ping-freenode! ( -- ) 
	<dict> dup :conf
		"wiki-bot" <<-nick
		"0" <<-pass
		"irc.freenode.com:6667" <<-address
	irc-conf-defaults irc-evented-server!
;

: irc-eval-ludumdare! ( -- ) 
	<irc-vm> :vm
	<dict> 
		"piscbot" <<-nick
		"0" <<-pass
		"irc.afternet.org:6667" <<-address
		{ "#botwars" "#botspam" } <<-chanlist
		{ 
			<ping-responder>
			$vm <evalbot-responder>
            <help-responder>
		} <<-responders
    irc-evented-server!
;

: irc-eval-freenode! ( -- ) 
	<irc-vm> :vm
	<dict> 
		"piscbot" <<-nick
		"0" <<-pass
		"irc.freenode.org:6667" <<-address
		{ "#botwars" "#proglangdesign" "#lobsters" } <<-chanlist
		{ 
			<ping-responder>
			$vm <evalbot-responder>
            <help-responder>
		} <<-responders
    irc-evented-server!
;

Added scripts/sequences.pisc.

























































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
: <seq> ( dict -- seq )
  :proto
  $proto ->get-next :inner-get-next
  $proto [ 
    $proto .has-next [ inner-get-next ] [ "Sequence empty!" error ] if  
  ] <<-get-next
;

: <int-seq-at> ( start -- seq )
  :curr 
  <dict> 
    [ t ] <<-has-next
    [ $curr ++curr ] <<-get-next
    <seq>
;

: <int-seq> ( -- seq ) 0 <int-seq-at> ;

: <int-seq-bounded> ( start end -- seq ) 
  :end dup :start :curr
  <dict>
    [ $end $curr >= ] <<-has-next
    [ $curr ++curr ] <<-get-next
  <seq>
;

: filt-seq ( seq pred -- seq ) 
  :pred :seq
  <dict>
    [ $seq .has-next ] <<-has-next
    [ 
      $seq .get-next :item
      [ $item pred not $seq .has-next and ] [
        $seq .get-next :item
      ] while
      $item
    ] <<-get-next
  <seq>
;

: take-seq ( seq n -- elms ) 
  :n :seq $n [ $seq .has-next [ $seq .get-next ] when ] times
  # An alternative would be 
  # [ :seq ] dip [ $seq .get-next ] times
;

: seq-each ( seq quot -- .. ) 
  :quot :seq
  <dict> 
    [ $seq .has-next ] <<-has-next
    [ $seq .get-next quot ] <<-get-next
  <seq>
;

: seq-example ( -- .. ) <int-seq> [ even? ] filt-seq [ 2 * ] seq-each 10 take-seq ;

: seq-example-2 ( -- .. ) 
  1 100 <int-seq-bounded> :s 
  101 [ $s .get-next drop ] times 
;

Added scripts/serialization/out.txt.







































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
: . ( dict value key -- dict ) dict-push ;

	<dict>
		"foo" "key" .
		"Andrew Owen" "name" .
		{ 1 2.1 3 4 5 } "one-to-five" .
		
		<dict>
			3 "a" .
			4 "b" . "lerp" .
		{ 
			<dict>
				{ 1 2 3 } "arr" .
				1 "x" .
				3 "y" . 
			<dict>
				54 "x" .
				44 "y" . } "loc-hist" .
: . ( a -- ) drop ; 

Added scripts/serialization/saving.pisc.





























































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/* 

func (i Integer) Type() string {
	return "Integer"
}

func (d Double) Type() string {
	return "Double"
}

func (a Array) Type() string {
	return "Vector"
}

func (dict Dict) Type() string {
	return "Dictionary"
}

func (b Boolean) Type() string {
	return "Boolean"
}

func (s String) Type() string {
	return "String"
}

*/

: serial-mapping ( -- mapping )
	<dict>
		[ write-dict ] <<-Dictionary
		[ write-vec ] <<-Vector
		[ write-int ] <<-Integer
		[ write-double ] <<-Double
		[ write-string ] <<-String
		[ write-bool ] <<-Boolean
	:t-table

	[ :v 
	  $t-table $v typeof dict-has-key?
		[ $t-table $v typeof dict-get ]
		[ ${ "Type " $v typeof " cannot be saved." } error ]
	  if
	] 
;

: save-state ( path state -- state ) :state :path
	$state typeof :type
	f :success
	[ $path open-file-writer :OUT
		": . ( dict value key -- dict ) dict-push ;" $OUT .write-line
		<dict> 
			$OUT <<-OUT
			0 <<-tab
	] :get-output
	[ eq dup $success or :success ] :eqn
	$type "Dictionary" eqn [ get-output $state write-dict ] when
	$type "Vector" eqn [ get-output $state write-vec ] when
	$success
		[ "\n: . ( a -- ) drop ; " $OUT .write-line ]
		[ ${ "Cannot write value of type: " $type } error ]
	if
	$OUT .close
;

# Replace " with \" in the string, to keep it from breaking up
: quote-safe ( str -- str ) "\\" "\\\\" str-replace "\"" "\\\"" str-replace ;
: wrap-quotes ( str -- str ) "\"" swap str-concat "\"" str-concat ;

: write-dict ( ctx dict -- ) 
	:pairs dup :ctx ->OUT :OUT
	# Increase the tab-indent
	$ctx dup ->tab 1 + <-tab 

	serial-mapping :dispatch
	[ $OUT .write-string ] :output
	[ "\t" $ctx ->tab str-repeat output ] :TAB

	"\n" output
	TAB "<dict>" output

	$pairs [ :k $pairs ->$k :v
		$v dispatch :write
		"\n" output TAB "\t" output
		$ctx $v write 
		" " output
		$k quote-safe wrap-quotes output
		" ." output 
	] dict-each-key
	$ctx dup ->tab 1 - <-tab 
;
	
: write-vec ( ctx vec -- )
	:elems dup :ctx ->OUT :OUT
	$ctx dup ->tab 1 + <-tab 
	[ "\t" $ctx ->tab str-repeat output ] :TAB
	serial-mapping :dispatch
	# Increase the tab-indent
	[ $OUT .write-string ] :output

	"{" output 
	$elems [ :e
		" " output
		$ctx $e $e dispatch call 
	] vec-each
	" }" output
	$ctx dup ->tab 1 - <-tab 
;
 

: write-int ( ctx int -- ) >string swap ->OUT .write-string ;
: write-string ( ctx str -- ) quote-safe wrap-quotes swap ->OUT .write-string ; 
: write-double ( ctx double --  )  >string swap ->OUT .write-string ;
: write-bool ( ctx bool --  ) [ :ctx ] dip [ "t" ] [ "f" ] if $ctx ->OUT .write-string ;


# DEBUG
/*
"out.txt" import :d

"out.txt" $d save-state

"TODO: Add tests!!" println
"TODO: Consider switching dicts to use critbit trees" println
*/
# GUBED

Added scripts/toposort.pisc.













































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# Toposort.pisc
# Implementing a basic topological sort of a set of nodes+edges, for later use


: <node> ( id { edges } -- node ) <dict> swap <<-edges swap <<-id ;

# "foo" { "a" "b" "c" } <node>

# todo: benchmark this thing
: vec-contains? ( vec elem -- contains? ) 
	:elem :vec
	$vec len :l
	f :contained
	0 :i
	[ $i $l < $contained not and ] [
		$vec $i vec-at $elem eq :contained
		++i
	] while
	$contained
; 

: vecset-merge ( vec-a vec-b -- merged-vec ) 
	:b :a
	<vector> :dest
	$b [ $dest swap vec-append :dest ] vec-each
	$a [ :elem $dest $elem vec-contains? not [ $dest $elem vec-append :dest ] when ] vec-each
    $dest
;

: <graph> ( -- graph ) 
	<dict> :nodes
	<dict> 
	[  /* node -- error? */
		:n
		$nodes $n ->id dict-has-key?  [ 
			$n ->edges
		] [
			 $nodes $n ->id $n dict-set
		] if
	] <<-add-node
	[ $nodes ] <<-get-nodes
;

: topological-sort ( graph -- nodes )
	:graph
	<dict> :visited-nodes
	$graph .get-nodes 



;



Added scripts/trigrams.pisc.















































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/* By turning comma into a no-op, use commas for helping space a few wide expressions later */
: , ( -- ) ;

/* Seed the random number generator to keep from getting the same result each run */
seed-rand-time

: char-is-any? ( c chars -- ? )
	:chars :c
 	f :isAny 
	$chars [ $c str-eq? $isAny or :isAny ] each-char
	$isAny
; 

: get-words ( string -- words ) 
	:input <vector> :words
	"" :currWord
	$input [ :c
		/* Add words if  */
	 	$c " \t\n\r\"" char-is-any? :isSpace
	 	$currWord len 0 > :haveData
	 	$isSpace $haveData and [ 
	 		/* Add the word if it's had a chance to be longer than 0 */
	 		$words $currWord vec-push
	 		"" :currWord
	 	] [ 
	 		/* Add the char to the current word */
			$isSpace not [ $currWord $c str-concat :currWord ] when
 		] if
	] each-char
	/* finally, add any leftover word, leaving $words on the stack */
	$words $currWord vec-append 
;

: get-trigram ( words -- key value ) 
	:words
	${ $words 0 vec-at " " $words 1 vec-at }
	$words 2 vec-at 
;

: add-trigram ( trigrams key value -- ) 
	:value :key :trigrams
	# ${ $key "|" $value "|" $trigrams $key dict-has-key } print
	$trigrams $key dict-has-key? [
		/* Add the element to the vector */
		$trigrams $key dict-get $value vec-push
	] [
	 	$trigrams { $value } $key dict-set 
	] if
;

: trigrams-of-string ( string -- trigrams ) 
	get-words :words 
	<dict> :trigrams
	/* While we still have enough words to build trigrams. */
	[ $words len 3 >= ] [
		$trigrams 
			$words get-trigram add-trigram
		$words vec-dropfront :words
	] while
	$trigrams
;

: last-pair ( words -- pair ) 
	dup :words len :words-len
	$words-len 1 - :end
	$words-len 2 - :nextToEnd
	${ $words $nextToEnd vec-at , " " , $words $end vec-at }
;

: dict-rand-key ( dict -- key ) dict-get-rand drop ;
: dict-rand-value ( dict -- value ) dict-get-rand nip ;

: text-of-trigrams ( trigrams -- text ) 
	dup :trigrams dict-rand-key " " str-split :text
	$text last-pair :key
	[ $trigrams $key dict-has-key? ] [
	     $text $trigrams $key dict-get choice vec-push
	     $text last-pair :key
	] while
	$text " " str-join 
;

: text-from-string ( string -- text ) trigrams-of-string text-of-trigrams ;

/* Finally, some code to run when this is imported */
"poem.txt" get-str-at-path :input 
$input text-from-string print

Added scripts/vadd.pisc.







>
>
>
1
2
3
: min ( a b -- smaller ) 2dup > [ nip ] [ drop ] if ;

: vadd ( v1 v2 -- v3 ) [ + ] each2 ;

Added scripts/values-checker.pisc.









































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
	{ "Approachability" "Integrity" "Robustness" }
	{ "Availability" "Maintainability" "Safety" }
	{ "Compatibilty" "Measureability" "Security" }
	{ "Composability" "Operability" "Simplicity" } 
	{ "Debuggability" "Performance" "Stability" }
	{ "Expressiveness" "Portability" "Thoroughness" }
	{ "Extensibility" "Resiliency" "Transparency" }
	{ "Interoperability" "Rigor" "Velocity" }
} :data

"valueschecker.html" open-file-writer :OUT

[ $OUT .write-line ] :writeln
[ "\n" str-concat writeln ] :NL

: process-cell ( cell -- str ) :name ${ "<input type=\"checkbox\">" $name  } ;

: process-row ( row -- str ) :row ${ $row [ "<td>" swap process-cell "</td>" ] vec-each } ;

"<html>" NL
"<body>" NL
"<form>" NL

"<table>" NL
$data [
	"<tr>" writeln
	process-row writeln
	"</tr>" writeln
] vec-each
"</table>" NL
"</form>" NL
"</body>" NL
"</html>" writeln

$OUT .close

Added scripts/valueschecker.html.















































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<html>

<body>

<form>

<table>

<tr>
<td><input type="checkbox">Approachability</td><td><input type="checkbox">Integrity</td><td><input type="checkbox">Robustness</td>
</tr>
<tr>
<td><input type="checkbox">Availability</td><td><input type="checkbox">Maintainability</td><td><input type="checkbox">Safety</td>
</tr>
<tr>
<td><input type="checkbox">Compatibilty</td><td><input type="checkbox">Measureability</td><td><input type="checkbox">Security</td>
</tr>
<tr>
<td><input type="checkbox">Composability</td><td><input type="checkbox">Operability</td><td><input type="checkbox">Simplicity</td>
</tr>
<tr>
<td><input type="checkbox">Debuggability</td><td><input type="checkbox">Performance</td><td><input type="checkbox">Stability</td>
</tr>
<tr>
<td><input type="checkbox">Expressiveness</td><td><input type="checkbox">Portability</td><td><input type="checkbox">Thoroughness</td>
</tr>
<tr>
<td><input type="checkbox">Extensibility</td><td><input type="checkbox">Resiliency</td><td><input type="checkbox">Transparency</td>
</tr>
<tr>
<td><input type="checkbox">Interoperability</td><td><input type="checkbox">Rigor</td><td><input type="checkbox">Velocity</td>
</tr>
</table>

</form>

</body>

</html>

Deleted shell.go.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package main

import (
	"fmt"
	"io/ioutil"
	"os"
)

func (m *machine) loadShellWords() {
	m.predefinedWords["ls"] = GoWord(func(m *machine) error {
		files, err := ioutil.ReadDir(".")
		if err != nil {
			fmt.Println("Error: ", err)
		}
		arr := make(Array, len(files))
		for i, f := range files {
			arr[i] = fileInfoToDict(f)
		}
		m.pushValue(arr)
		return nil
	})

	m.predefinedWords["pwd"] = GoWord(func(m *machine) error {
		if dir, err := os.Getwd(); err != nil {
			return err
		} else {
			m.pushValue(String(dir))
			return nil
		}
	})

	//
	m.predefinedWords["cd"] = GoWord(func(m *machine) error {
		location := m.popValue().String()
		if err := os.Chdir(location); err != nil {
			return err
		}
		if dir, err := os.Getwd(); err != nil {
			return err
		} else {
			fmt.Println(dir)
		}
		return nil
	})
}

func fileInfoToDict(info os.FileInfo) Dict {
	dict := make(Dict)
	dict["name"] = String(info.Name())
	dict["size"] = Integer(info.Size())
	// dict["is-dir"] = Boolean(info.IsDir())
	dict["mode"] = String(info.Mode().String())
	dict["__type"] = String("inode")
	dict["__ordering"] = Array{
		String("name"),
		String("mode"),
		String("size"),
	}
	return dict
}
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
























































































































Added sqlite.go.



>
1
package pisc

Deleted std_lib.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*

This is the growing standard library of PISC.

*/

: print ( a --  ) >string priv_puts ;
:DOC t ( -- t )  t and f respectively push true and false onto the stack  ;
:DOC f ( -- f )  t and f respectively push true and false onto the stack  ;

/* Local Prefixes */
:PRE $ ( name -- val ) get-local ;
:PRE : ( val name --  ) set-local ;

/* stack-empty? checks if there are any entries on the stack
: stack-empty? ( .. -- empty? ) primitive
*/

/* The following calls are the current stack-shuffling primitives */

:DOC pick-dup ( .. n -- .. item )  pick-dup duplicates the nth item back on the stack  ;

:DOC pick-drop ( .. n -- ..` item )  pick-drop removes the item from the nth stack slot, placing it atop the stack  ;

:DOC pick-del ( .. n --  ..`  )  pick-del deletes the nth stack entry back, removing it from the stack entirely  ;


:DOC len ( lenable -- length )  Len is the go defined word that defers length checking to the go type system  ;


:DOC import ( filepath -- .. ) `import` current takes a file path, and attempts to execute the file at that relative file path. ;


"loops.pisc" import
"bools.pisc" import 
"strings.pisc" import
"locals.pisc" import
"io.pisc" import
"dicts.pisc" import
"vectors.pisc" import
"symbols.pisc" import
"math.pisc" import
"debug.pisc" import



/* Stack shufflers */
:DOC dup ( a -- a a ) Duplicates the top of the stack ;
: dup ( a -- a a ) 0 pick-dup ;

:DOC 2dup ( a -- a a ) Duplicates the top two elements of the stack ;
: 2dup ( a b -- a b a b ) 2 [ 1 pick-dup ] times ;

:DOC swap ( a b -- b a ) Swaps the top two elements of the stack ;
: swap ( a b -- b a ) 1 pick-drop ;

: drop ( a -- ) 0 pick-del ;
: nip ( a b -- b ) 1 pick-del ;
: 2drop ( a b -- ) 2 [ drop ] times ;
: 3drop ( a b c -- ) 3 [ drop ] times ;
: over ( x y -- x y x ) 1 pick-dup ;

:DOC dip ( a quot -- a ) Takes a quotation and a value, and puts the value back on the stack after calling the quotation ;

: keep ( ..a x quot: [ ..a x --- ..b ] -- ..b x ) over [ call ] dip ;
: bi ( a quot1 quot2 -- ... ) [ keep ] dip call ;

/*
: change ( quot name -- ... ) drop-locals :name :quot  ;

: change ( quot varName -- .. ) drop-locals :name :quot $name get-local $quot call $name set-local get-locals ;
*/

/* Copied from factor */
: change ( quot varName -- .. ) swap [ [ get-local ] keep ] dip dip set-local ; 

:PRE $: ( quot varName -- ) change ;

/* Increment and decrement variables */

:PRE ++ ( varName -- . ) [ 1 + ] swap change ;
:PRE -- ( varname -- . ) [ 1 - ] swap change ;

: str-neq ( str-a str-b -- eq? ) str-eq not ; 

/* Symbol manipulation */
: symb-eq ( symb symb  -- eq? ) symb-neq not ;

/* Arrays */

/* Take all the elements placed on the stack by quot and put in an array */
:DOC quot>vector ( quot -- vec ) Take all the elements placed on the stack by quot, and put them in an array. Not local clean. ; 
/* TODO: somehow make this local-clean */
: quot>vector ( quot -- vec ) 
	<vector> :vec
	<symbol> dup :mark /* Mark the stack */
	swap call /* Fill the stack with info from the quotation */
	[ dup $mark symb-neq ] [ [ swap vec-append ] $:vec ] while 
	drop /* the mark */ $vec vec-reverse ;


/* If statement */
:DOC if ( ? trueQuot falseQuot -- result ) if ? is t, call true quot, otherwise call falseQuot. Defined as `? call` ;
: if ( ? true false -- res ) ? call ;
/* When statement for when you don't need all of if */
: when ( ? true -- res ) [ ] ? call ;


/* Some basic math */
: even? ( n -- ? ) 2 mod zero? ;
: divisor? ( n m -- ? ) mod zero? ;

: = ( a b -- ? ) - zero? ;

/* < is already defined */
: >= ( a b -- ? ) < not ;
: <= ( a b -- ? ) 2dup < [ = ] dip or ;
: > ( a b -- ? ) <= not ;

: abs ( a -- a ) dup 0 < [ -1 * ] when ; 

/* : eq ( a b -- ? ) */
: . ( a -- ) drop ;


: inspect ( a -- a ) dup print ;

: clear-stack ( -- ) [ stack-empty? not ] [ drop ] while ;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
































































































































































































































































Added stdlib/bools.pisc.













>
>
>
>
>
>
1
2
3
4
5
6
/*
bools.pisc
*/

# I guess this is empty now?

Added stdlib/debug.pisc.











>
>
>
>
>
1
2
3
4
5

:DOC show-prefix-words ( -- ) Shows which prefix words are currently loaded ;

:DOC show-locals ( -- ) Shows which locals are in current scope ;
: show-locals ( -- ) [  over >string " = " swap str-concat str-concat nip print ] each-local ; 

Added stdlib/dicts.pisc.





































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* Dictionaries and their utilities */

: dict-if-empty-stack ( .. -- dict? ) stack-empty? [ <dict> ] when ;
: dict-if-not-dict ( .. -- dict ) dup typeof "Dictionary" str-neq? [ <dict> ] when ;
: ensure-dictionary ( .. -- dict ) dict-if-empty-stack dict-if-not-dict ;
: get-or-default ( dict key default -- value ) :default :key :dict
        $dict $key dict-has-key? [ $dict $key dict-get ][ $default ] if
;

/* Fetch from dictionary */
 :PRE -> ( dict key -- val ) dict-get ;
 :PRE ->> ( dict key -- val dict ) [ dup :d ] dip dict-get $d ;

/* Set the key for a given dictinoary value, but leave the dictionary on the stack */
 :PRE <<- ( dict val key -- dict ) dict-push ;
 :PRE <- ( dict val key -- ) dict-set ;

 :PRE ->$ ( dict key -- ) get-local dict-get ;
 :PRE ->>$ ( dict key -- dict ) [ dup ] dip get-local dict-get swap ;

 :PRE <-$ ( dict varname -- ) get-local dict-set ;
 :PRE <<-$ ( dict varname -- ) get-local dict-push ;

 :PRE $<- ( dict val key -- ) 
    "$<- has been deprecated. use $var <-$var instead" error /* dup get-local swap dict-set */ ;
 :PRE $<<- ( dict val key -- dict ) 
    "$<<- has been deprecated. use $var <<-$var instead" error /* [ [ dup ] dip ] dip dup get-local swap dict-set */ ;

/*  Set an entry to true for each unicode character in this string */
 :PRE -% ( dict? key -- dict ) [ ensure-dictionary ] dip [ :dict ] dip [ $dict swap t swap dict-set ] each-char $dict ;

 :PRE ->? ( dict key -- dict ? ) dict-has-key? ;

 :PRE . ( dict key -- .. ) dict-get call ;

Added stdlib/io.pisc.





























































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* The IO libraries of PISC */

/* This doc isn't for a specific word */
:DOC IO ( -- ) 
# Readers

Currently, PISC has reading and writing objects that are bound to underlying go based bufio objects. Each reader has the following functions loaded into its dictionary entries:

## read-byte ( -- byte )
Reads a byte from the reader as an int, setting the readers EOF to true if the end of the file is reached

## read-rune ( -- rune )
Reads a UTF-8 rune from the reader

## read-line ( -- str )
Reads a line from the reader, trimming '\r' and '\n' off the end

## EOF ( -- EOF? )
Returns true if the end of the file has been reached, false otherwise

;

:DOC open-file-reader ( path -- Reader ) File readers have a `close` entry that can be called to close the underlying file handle ;

:DOC open-file-writer ( path -- writer ) Writers are simpler than readers, as they can only write lines or strings ;
	
:DOC write-string ( str -- ) Write str to the attached writer ;

:DOC write-line ( str -- ) Write str to the attached writer, appending \n to the end ;

:DOC filepath>string ( fileName -- strContents )  A utility function for reading small files into strings. Do not use on large files  ;

:DOC priv_puts ( str -- )  priv_puts is the underlying word used for printing values  ;

: with-output ( path quot -- .. )
	:quot
	open-file-writer dup $quot with .close
;

# TODO
# : with-append-out 

: with-input ( path quot -- .. ) 
	:quot
	open-file-reader dup $quot with .close
;

Added stdlib/locals.pisc.

























































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* Locals in PISC */

:DOC set-local ( val name -- ) Set name to val  ;

:DOC get-local ( name -- val ) Get the value associated with a local value  ;

:DOC get-locals ( -- ) Push a stack frame for locals onto the locals stack ;

:DOC drop-locals ( -- ) Pop a frame of locals off the locals stack  ;

:DOC each-local ( quot [ k v - .. ] -- locals.. )  Run a quotation for each local in the current stack frame SEE: quot>dict  ;

/* Copied from factor */
: change ( quot varName -- .. ) swap [ [ get-local ] keep ] dip dip set-local ; 

# Attempting to change a local
:PRE $: ( quot varName -- ) change ;

/* Local Prefixes */
# Increment and decrement
 :PRE -- ( name -- ) decr-local-var ;
 :PRE ++ ( name -- ) incr-local-var ;

# Get and set local
 :PRE $ ( name -- val ) get-local ;
 :PRE : ( val name -- ) set-local ;

 :PRE _: ( dict name -- val ) dup get-local swap dict-set ;

Added stdlib/loops.pisc.













>
>
>
>
>
>
1
2
3
4
5
6
/*
Loops.pisc
*/

:DOC times ( n quot -- .. ) Execute `quot` n times ;
:DOC while ( pred quot -- .. ) Execute `quot` while `pred` leaves `t` ;

Added stdlib/math.pisc.







































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
:DOC >double ( x -- d ) Coerce a number to a double ;
:DOC acos ( x -- y ) Arc cosine ; 
:DOC acosh ( x -- y ) Hyperbolic arc cosine ; 
:DOC asin ( x -- y ) Arc sine ; 
:DOC asinh ( x -- y ) Hyperbolic arc sine ; 
:DOC atan ( x -- y ) Arc tangent ; 
:DOC atanh ( x -- y ) Hyperbolic arc tanget ; 
:DOC cbrt ( x -- y ) Cube root ; 
:DOC ceil ( x -- y ) Ceiling of a double precision number ; 
:DOC cos ( x -- y ) Cosine ; 
:DOC cosh ( x -- y ) Hyperbolic cosine ; 
:DOC erf ( x -- y ) Error function ; 
:DOC erfc ( x -- y ) Complementary error function ; 
:DOC exp ( x -- y ) Exponentiation ; 
:DOC exp2 ( x -- y ) Two the power of `x` ; 
:DOC expm1 ( x -- y ) `exp 1 -`, more precise for small numbers  ; 
:DOC floor ( x -- y ) Floor of a double precision number ; 
:DOC gamma ( x -- y ) Gamma function TODO ; 
:DOC j0 ( x -- y ) j0 Bessel function ; 
:DOC j1 ( x -- y ) First kind Bessel function ; 
:DOC log ( x -- y ) Natural Logarithm ;  
:DOC log10 ( x -- y ) Log base 10 ; 
:DOC log1p ( x -- y ) `x 1 + log `, but more accurate with small values ; 
:DOC log2 ( x -- y ) Log base 2 ; 
:DOC logb ( x -- y ) Binary exponent of x ; 
:DOC sin ( x -- y ) Sine function ; 
:DOC sinh ( x -- y ) Hyperbolic sine function ; 
:DOC sqrt ( x -- y ) Square root function ; 
:DOC tan ( x -- y ) Tangent function ; 
:DOC tanh ( x -- y ) Hyperbolic tangent function ; 
:DOC trunc ( x -- y ) Integer value of x, as a double ; 
:DOC y0 ( x -- y ) Order-zero Bessel function of the second kind ; 
:DOC y1 ( x -- y ) Order-one Bessel function of the second kind ; 
/*
TODO: all the two arg math functions
*/
: min ( a b -- smaller ) 2dup > [ nip ] [ drop ] if ;
: max ( a b -- larger )   2dup > [ drop ] [ nip ] if ;

/* Some basic math */
: even? ( n -- ? ) 2 mod zero? ;
: divisor? ( n m -- ? ) mod zero? ;

: = ( a b -- ? ) - zero? ;

/* < is already defined */
: >= ( a b -- ? ) < not ;
: <= ( a b -- ? ) 2dup < [ = ] dip or ;
: > ( a b -- ? ) <= not ;

: abs ( a -- a ) dup 0 < [ -1 * ] when ; 

Added stdlib/random.pisc.



>
1
: choice ( vec -- elem ) dup len rand-int swap mod vec-at ;

Added stdlib/shell.pisc.













































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

: ls ( -- ) list-files [ print ] vec-each ;

: in-dir ( dir quot -- .. ) 
	pwd :prev
	[ cd ] dip call
	$prev cd
;

: shell-module ( quot -- )
	<vector> :pathhist
	[ $pathhist pwd vec-append :pathhist ] :pushd
	[ $pathhist vec-popback swap :pathhist ] :popd

	<dict> dup :sh 
	[ list-files ] <<-ls
	[ 
		list-files [ 
			dup ->mode "d" str-contains [ print ] [ drop ] if 
		] vec-each 
	] <<-lsd 
	[ pushd ".." cd ] <<-up
	[ pushd cd ] <<-cd
	[ popd cd ] <<-back
	[ get-str-at-path ] <<-cat
	[ "\n" str-count ] <<-wcl
	[ "PATH" env-get ] <<-PATH
	[ env-get ] <<-env
	[ [ -$mode "d" str-contains ] ] <<-is-dir
	[ "Shell 0.1" ] <<-modname
;

: awk-init ( options -- .. )
	# Creating the state basics for an awk-style
	[ ] :BEGIN
	[ ] :END
	"\t" :IFS 
	"\n" :OFS
	"" :0
	t :needs-split
	<vector> :line
	[ ] :reset-for-line
	[ :ii $ii $line len >= [ "" ] [ $line $ii vec-at ] if ] :line-at
	[ $needs-split [ $0 $IFS str-split :line ] when ] :ensure-split
	[ ensure-split $line 0 vec-at ] :1
	[ ensure-split  ] :

	<dict>
	[ :BEGIN ] <<-BEGIN
	[ :END ] <<-END
 ;

# use this to set the shell as the withscope
: use-shell ( -- ) shell-module "_with" set-local ;

Added stdlib/std_lib.pisc.





































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* A few core words for PISC execution. */

: println ( a --  ) >string priv_puts "\n" priv_puts ;

: print ( a -- ) >string priv_puts ;


/* The following calls are the current stack-shuffling primitives */


:DOC len ( lenable -- length )  Len is the go defined word that defers length checking to the go type system  ;


:DOC import ( filepath -- .. ) `import` current takes a file path, and attempts to execute the file at that relative file path. ;


# TODO: Move the statments that import these to their respective modules

/* Stack shufflers */
:DOC dup ( a -- a a ) Duplicates the top of the stack ;
: dup ( a -- a a ) 0 pick-dup ;

:DOC 2dup ( a -- a a ) Duplicates the top two elements of the stack ;
: 2dup ( a b -- a b a b ) 2 [ 1 pick-dup ] times ;

:DOC swap ( a b -- b a ) Swaps the top two elements of the stack ;
: swap ( a b -- b a ) 1 pick-drop ;

: drop ( a -- ) 0 pick-del ;
: nip ( a b -- b ) 1 pick-del ;
: 2drop ( a b -- ) 2 [ drop ] times ;
: 3drop ( a b c -- ) 3 [ drop ] times ;
: over ( x y -- x y x ) 1 pick-dup ;

:DOC dip ( a quot -- a ) Takes a quotation and a value, and puts the value back on the stack after calling the quotation ;

: keep ( ..a x quot: [ ..a x --- ..b ] -- ..b x ) over [ call ] dip ;
: bi ( a quot1 quot2 -- ... ) [ keep ] dip call ;

/* If statement */
:DOC if ( ? trueQuot falseQuot -- result ) if ? is t, call true quot, otherwise call falseQuot. Defined as `? call` ;
: if ( ? true false -- res ) ? call ;
/* When statement for when you don't need all of if */
: when ( ? true -- res ) [ ] ? call ;

: ndrop ( n -- ) [ drop ] times ;

: inspect ( a -- a ) dup print ;

: clear-stack ( -- ) [ stack-empty? not ] [ drop ] while ;

Added stdlib/strings.pisc.



















































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* 
Strings.pisc

String handling words and such
*/

:DOC str-concat ( a b -- c ) Concatenate the top two strings on the stack ;
:DOC >string ( a -- str ) Convert any stack value into a string ;
:DOC str>int ( str -- int! ) Attempt to convert a string to an integer ;
:DOC str-join ( vec sep -- str ) Turn a vector into a string by `>string` and using sep in between all the elements of `vec` ;
:DOC str-split ( str sep -- vec ) Split a string into a vector using `sep` as a deilimeter ;
:DOC str-empty? ( str -- ? ) Is this string empty? ;
:DOC str-eq? ( a b -- ? ) Are the top two strings on the stack equal? ;
:DOC str>rune-reader ( str -- obj ) Create a rune-reader from a string, see the `[IO]` docs for more info ;
:DOC each-char ( str quot -- .. ) Execute `quot` for each character(rune) in `str` ;

: str-count ( str char -- numOccurs ) :inner
	0 :i
	[ $inner str-eq? [ ++i ] when ] each-char 
	$i
;

: str? ( obj -- isStr? ) typeof "String" str-eq? ;

: str-neq? ( str-a str-b -- eq? ) str-eq? not ; 

Added stdlib/symbols.pisc.

















>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
/*
Symbols.pisc
*/
:DOC <symbol> ( -- ) Create a unique symbol ;
:DOC symb-neq ( a b  -- ? ) Are these two symbols not equal  ;

:DOC symb-eq ( a b -- ? ) Are a and b equal symbols? ;
: symb-eq ( a b -- ? ) symb-neq not ;

Added stdlib/vectors.pisc.













































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/* Vectors and their utilities */

:DOC vec-set-at ( vec val idx -- elem ) Set vector at idx to value ;
:DOC vec-at ( vec idx -- elem ) Get element at index ;
:DOC <vector> ( -- vector ) Init a new vector ;
:DOC vec-each ( vec quot -- .. ) Run `quot` for each element in the vector ;

: 2vector ( a b -- vec ) <vector> 2 [ swap vec-prepend ] times ;

: 1st ( vec -- elem ) 0 vec-at ;
: 2nd ( vec -- elem ) 1 vec-at ;
: 3rd ( vec -- elem ) 2 vec-at ;
: 4th ( vec -- elem ) 3 vec-at ;
: 5th ( vec -- elem ) 4 vec-at ;
: 6th ( vec -- elem ) 5 vec-at ;
# Don't add more here unless there is a *very* good reason

:DOC each2 ( v1 v2 quot -- v3 ) Applies a quotation to each elementwise pair in v1 and v2, to result in v3 ;
: each2 ( v1 v2 quot [ a b -- ab ] v3 ) 
	:quot :v2 :v1
	0 :i <vector> #:out
	$v2 len $v1 len min [
		$v1 $i vec-at 
		$v2 $i vec-at
		quot vec-append
		[ 1 + ] $:i
	] times ;

:DOC splat ( vec -- items ) Dump the contents of the vector onto the stack ;
: splat ( vec -- items... ) [ ] vec-each ;

:DOC vec-reverse ( vec -- reversevec ) Reverses a vector ;
: vec-reverse ( vec -- reversevec ) 
	dup :vec len :end 0 :i
	[ 1 - ] $:end
	$end 2 / 1 + [ 
		$vec $i vec-at :x
		$vec $end vec-at :y
		$vec $y $i vec-set-at :vec
		$vec $x $end vec-set-at :vec
		--end
		++i
	] times
	$vec
;

: vec-filter ( vec quot -- filteredVec ) 
	<vector> :newvec
	:quot
	[ 
		 dup quot [ $newvec swap vec-append :newvec ] [ drop ] if 
	] vec-each
	$newvec
;

: vec-map ( vec quot -- mappedVec )
 	:quot :vec 0 :i
 	$vec len [ 
 		$vec $i vec-at quot 
 		$vec swap $i vec-set-at drop
	 	++i
 	] times
 	$vec
;

/* :DOC vec-dropfront ( vec -- newvec ) Drop the front of the vector ; */
: vec-dropfront ( vec -- newvec ) vec-popfront drop ;

/* :DOC vec-dropback ( vec -- newvec ) Drop the back of the vector ; */
: vec-dropback ( vec -- newvec ) vec-popback drop ;

Added stdlib/with.pisc.



























>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
/* withable objects */

:PRE @ ( wordName -- .. ) "_with" get-local swap dict-get call ;

: with ( obj quot -- .. ) :quot :obj
	<dict> :wvar
	$quot "_with" quot-has-var [ $quot "_with" quot-get-var :wvar ] when
	/* If this quot has _with set, append it to a stack */
	$quot "_with" $obj quot-set-var
	# Call quot using _with metavar
	$quot call
	$quot "_with" $wvar quot-set-var
;

Changes to strings.go.

1
2
3
4


5

6
7
8
9
10





11
12






13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32


33
34
35
36
37
38
39
40
41
42


43

44
45

46




47
48
49
50
51
52

53
54

55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89




90
91

92
93
94
95



96
97
98
99
100





101
102








103






104

105




106
107

108







109
110




















































































































































package main

import (
	"bufio"


	"regexp"

	"strconv"
	"strings"
)

type regexEntry struct {





}







// TODO: Add more words to support strings here, we need a way to handle a lot more cases, like
// replacement, substringing, joining and so on.

func (m *machine) loadStringWords() error {
	m.predefinedWords["concat"] = NilWord(func(m *machine) {
		a := m.popValue().(String)
		b := m.popValue().(String)
		m.pushValue(String(b + a))
	})
	m.predefinedWords[">string"] = NilWord(func(m *machine) {
		a := m.popValue()
		if s, ok := a.(String); ok {
			m.pushValue(String(s))
			return
		}
		m.pushValue(String(a.String()))
	})

	m.predefinedWords["string>int"] = GoWord(func(m *machine) error {
		a := m.popValue().(String).String()


		if i, err := strconv.Atoi(a); err != nil {
			return err
		} else {
			m.pushValue(Integer(i))
			return nil
		}

	})

	// ( vec sep -- str )


	m.predefinedWords["str-join"] = NilWord(func(m *machine) {

		sep := m.popValue().(String).String()
		elems := m.popValue().(Array)

		str := ""




		for _, val := range elems[:len(elems)-1] {
			str += val.String() + sep
		}
		str += elems[len(elems)-1].String()
		m.pushValue(String(str))
	})


	// ( str sep -- vec )

	m.predefinedWords["str-split"] = NilWord(func(m *machine) {
		sep := m.popValue().(String).String()
		str := m.popValue().(String).String()
		strs := strings.Split(str, sep)
		toPush := make(Array, len(strs))
		for idx, val := range strs {
			toPush[idx] = String(val)
		}
		m.pushValue(toPush)
	})

	m.predefinedWords["str-empty?"] = NilWord(func(m *machine) {
		a := m.popValue().(String)
		if len(a) > 0 {
			m.pushValue(Boolean(len(a) > 0))
		}
	})

	m.predefinedWords["str-eq"] = NilWord(func(m *machine) {
		b := m.popValue().String()
		a := m.popValue().String()
		m.pushValue(Boolean(a == b))

	})
	// ( str -- obj )
	m.predefinedWords["str>rune-reader"] = NilWord(func(m *machine) {
		a := m.popValue().(String)
		reader := strings.NewReader(string(a))
		bufReader := bufio.NewReader(reader)

		readerObj := makeReader(bufReader)
		m.pushValue(Dict(readerObj))
	})
	// ( str quot -- .. )
	m.predefinedWords["each-char"] = NilWord(func(m *machine) {




		quot := m.popValue().(quotation).toCode()
		str := m.popValue().(String).String()

		for _, r := range str {
			m.pushValue(String(string(r)))
			quot.idx = 0
			executeWordsOnMachine(m, quot)



		}
	})

	// ( str cont -- ? )
	m.predefinedWords["str-contains"] = NilWord(func(m *machine) {





		substr := m.popValue().String()
		str := m.popValue().String()








		if strings.Contains(str, substr) {






			m.pushValue(Boolean(true))

		}




		m.pushValue(Boolean(false))
	})









	return nil
}




















































































































































|



>
>
|
>




|
>
>
>
>
>


>
>
>
>
>
>



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>



|
|
|
|
<

<
>
>
|
>
|
<
>
|
>
>
>
>




|
<
>
|
<
>
|
|
|
|
|



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|



|
|
<
<
<
>
>
>
>
|
|
>
|
|
|
<
>
>
>

<
|
<
<
>
>
>
>
>
|
|
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
|
>
|
>
>
>
>
|
<
>
|
>
>
>
>
>
>
>


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

56

57
58
59
60
61

62
63
64
65
66
67
68
69
70
71
72

73
74

75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107



108
109
110
111
112
113
114
115
116
117

118
119
120
121

122


123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152

153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
package pisc

import (
	"bufio"
	"unicode"
	"unicode/utf8"
	//"regexp"
	//"fmt"
	"strconv"
	"strings"
)

var ModStringsCore = Module{
	Author:    "Andrew Owen",
	Name:      "StringCore",
	License:   "MIT",
	DocString: "TODO: Fill this in",
	Load:      loadStringCore,
}

// TODO: Implement Lua Patterns
type stringPattern struct {
}

// TODO: Start replacing anonymous functions with named functions so that profiling is a little clearer

// TODO: Add more words to support strings here, we need a way to handle a lot more cases, like
// replacement, substringing, joining and so on.

func _concat(m *Machine) error {
	a := m.PopValue().(String)
	b := m.PopValue().(String)
	m.PushValue(String(b + a))
	return nil
}

func _toString(m *Machine) error {
	a := m.PopValue()
	if s, ok := a.(String); ok {
		m.PushValue(String(s))
		return nil
	}
	m.PushValue(String(a.String()))
	return nil
}

func _strToInt(m *Machine) error {
	a := m.PopValue().(String).String()
	if i, err := strconv.Atoi(a); err != nil {
		return err
	} else {
		m.PushValue(Integer(i))
		return nil
	}
}



var emptyStr = String("")

// Potential TODO: Review for performance?
func _strJoin(m *Machine) error {
	sep := m.PopValue().(String).String()

	elems := m.PopValue().(*Vector).Elements
	str := ""
	if len(elems) == 0 {
		m.PushValue(emptyStr)
		return nil
	}
	for _, val := range elems[:len(elems)-1] {
		str += val.String() + sep
	}
	str += elems[len(elems)-1].String()
	m.PushValue(String(str))

	return nil
}


func _strSplit(m *Machine) error {
	sep := m.PopValue().(String).String()
	str := m.PopValue().(String).String()
	strs := strings.Split(str, sep)
	toPush := make([]StackEntry, len(strs))
	for idx, val := range strs {
		toPush[idx] = String(val)
	}
	m.PushValue(&Vector{Elements: toPush})
	return nil
}

func _strEmpty(m *Machine) error {
	a := m.PopValue().String()
	m.PushValue(Boolean(len(a) <= 0))
	return nil
}

func _strEq(m *Machine) error {
	b := m.PopValue().String()
	a := m.PopValue().String()
	m.PushValue(Boolean(a == b))
	return nil
}

func _strToRuneReader(m *Machine) error {
	a := m.PopValue().(String)
	reader := strings.NewReader(string(a))
	bufReader := bufio.NewReader(reader)

	readerObj := MakeReader(bufReader)
	m.PushValue(Dict(readerObj))



	return nil
}

func _eachChar(m *Machine) error {
	quot := m.PopValue().(*Quotation).toCode()
	str := m.PopValue().(String).String()
	var err error
	for _, r := range str {
		m.PushValue(String(string(r)))
		quot.Idx = 0

		err = m.execute(quot)
		if err != nil {
			break
		}

	}


	return err
}

func _strReplace(m *Machine) error {
	replace := m.PopValue().String()
	pat := m.PopValue().String()
	str := m.PopValue().String()
	newstr := strings.Replace(str, pat, replace, -1)
	m.PushValue(String(newstr))
	return nil
}

func _strContains(m *Machine) error {
	substr := m.PopValue().String()
	str := m.PopValue().String()
	m.PushValue(Boolean(strings.Contains(str, substr)))
	return nil
}

func _strEndsWith(m *Machine) error {
	endStr := m.PopValue().String()
	str := m.PopValue().String()
	m.PushValue(Boolean(strings.HasSuffix(str, endStr)))
	return nil
}

func _strStartsWith(m *Machine) error {
	prefix := m.PopValue().String()
	str := m.PopValue().String()
	m.PushValue(Boolean(strings.HasPrefix(str, prefix)))

	return nil
}

func _strSubstr(m *Machine) error {
	end := m.PopValue().(Integer)
	start := m.PopValue().(Integer)
	str := m.PopValue().String()

	m.PushValue(String(str[start:end]))
	return nil
}

func _strIdxOf(m *Machine) error {
	substr := m.PopValue().String()
	str := m.PopValue().String()
	idx := strings.Index(str, substr)
	m.PushValue(Integer(idx))
	return nil
}

func _strRepeat(m *Machine) error {
	numRepeats := int(m.PopValue().(Integer))
	str := m.PopValue().String()
	m.PushValue(String(strings.Repeat(str, numRepeats)))
	return nil
}

func _strTrim(m *Machine) error {
	str := m.PopValue().String()
	str = strings.Trim(str, "\t\n\r ")
	m.PushValue(String(str))
	return nil
}

// ( str sep -- count )
func _strCount(m *Machine) error {
	sep := m.PopValue().String()
	str := m.PopValue().String()
	m.PushValue(Integer(strings.Count(str, sep)))
	return nil
}

// ( str -- upperstr )
func _strUpper(m *Machine) error {
	str := m.PopValue().String()
	m.PushValue(String(strings.ToUpper(str)))
	return nil
}

// ( str -- lowerstr )
func _strLower(m *Machine) error {
	str := m.PopValue().String()
	m.PushValue(String(strings.ToLower(str)))
	return nil
}

// ( str -- reversed-str )
func _strReverse(m *Machine) error {
	str := m.PopValue().String()

	// Code from: http://rosettacode.org/wiki/Reverse_a_string#Go
	r := make([]rune, len(str))
	start := len(str)
	for _, c := range str {
		if c != utf8.RuneError {
			start--
			r[start] = c
		}
	}
	m.PushValue(String(string(r[start:])))
	return nil
}

// ( str -- reversed-bytes )
func _strReverseBytes(m *Machine) error {
	str := m.PopValue().String()

	// Code inspired by: http://rosettacode.org/wiki/Reverse_a_string#Go
	r := make([]byte, len(str))
	for i := 0; i < len(str); i++ {
		r[i] = str[len(str)-1-i]
	}

	m.PushValue(String(string(r)))
	return nil
}

// ( str -- reversed-Graphemes )
func _strReverseGraphemes(m *Machine) error {
	str := m.PopValue().String()

	// Code inspired by: http://rosettacode.org/wiki/Reverse_a_string#Go
	if str == "" {
		m.PushValue(String(""))
		return nil
	}

	source := []rune(str)
	result := make([]rune, len(source))
	start := len(result)

	for i := 0; i < len(source); {
		// Continue past invalid UTF-8
		if source[i] == utf8.RuneError {
			i++
			continue
		}

		j := i + 1
		for j < len(source) && (unicode.Is(unicode.Mn, source[j]) ||
			unicode.Is(unicode.Me, source[j]) ||
			unicode.Is(unicode.Mc, source[j])) {
			j++
		}

		for k := j - 1; k >= i; k-- {
			start--
			result[start] = source[k]
		}
		i = j
	}
	m.PushValue(String(string(result[start:])))
	return nil
}

func loadStringCore(m *Machine) error {

	m.AddGoWord("str-concat", "( str-a str-b -- str-ab )", _concat)
	m.AddGoWord(">string", "( anyVal -- str )", _toString)
	m.AddGoWord("str>int", "( str -- int! )", _strToInt)
	m.AddGoWord("str-join", "( vec sep -- str )", _strJoin)

	m.AddGoWord("str-ends?", "( str endstr -- endswith? )", _strEndsWith)
	m.AddGoWord("str-eq?", "( a b -- eq? )", _strEq)
	m.AddGoWord("str-substr", "( str start end -- substr )", _strSubstr)
	m.AddGoWord("str-idx-of", "( str sub -- idx )", _strIdxOf)
	m.AddGoWord("str-split", "( str sep -- vec )", _strSplit)
	m.AddGoWord("str-starts?", "( str prefix -- startswith? )", _strStartsWith)

	m.AddGoWord("str-empty?", "( str -- empty? )", _strEmpty)
	m.AddGoWord("str>rune-reader", "( str -- reader )", _strToRuneReader)
	m.AddGoWord("each-char", "( str quot -- .. )", _eachChar)

	m.AddGoWord("str-replace", "( str pat replace -- .. )", _strReplace)
	m.AddGoWord("str-contains?", "( str cont -- contained? )", _strContains)
	m.AddGoWord("str-count", "( str sep -- count )", _strCount)

	m.AddGoWord("str-repeat", "( str repeat-count -- 'str )", _strRepeat)
	m.AddGoWord("str-trim", "( str -- 'str )", _strTrim)

	m.AddGoWord("str-upper", " ( str -- upper-str ) ", _strUpper)
	m.AddGoWord("str-lower", " ( str -- lower-str ) ", _strLower)

	m.AddGoWord("str-reverse", " ( str -- reversed-runes ) ", _strReverse)
	m.AddGoWord("str-reverse-bytes", " ( str -- reversed-bytes ) ", _strReverseBytes)
	m.AddGoWord("str-reverse-graphemes", " ( str -- reversed-graphemes ) ", _strReverseGraphemes)

	return m.ImportPISCAsset("stdlib/strings.pisc")
}

Deleted strings.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* 
Strings.pisc

String handling words and such
*/

:DOC concat ( a b -- c ) Concatenate the top two strings on the stack ;
:DOC >string ( a -- str ) Convert any stack value into a string ;
:DOC string>int ( str -- int! ) Attempt to convert a string to an integer ;
:DOC str-join ( vec sep -- str ) Turn a vector into a string by `>string` and using sep in between all the elements of `vec` ;
:DOC str-split ( str sep -- vec ) Split a string into a vector using `sep` as a deilimeter ;
:DOC str-empty? ( str -- ? ) Is this string empty? ;
:DOC str-eq ( a b -- ? ) Are the top two strings on the stack equal? ;
:DOC str>rune-reader ( str -- obj ) Create a rune-reader from a string, see the `[IO]` docs for more info ;
:DOC each-char ( str quot -- .. ) Execute `quot` for each character(rune) in `str` ;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<






























Changes to symbols.go.

1
2
3
4
5





6
7
8
9


10
11

12
13
14


15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

30




31
package main

import "fmt"

func (m *machine) loadSymbolWords() error {






	// Push a symbol onto the stack
	// ( -- #symbol )
	m.predefinedWords["<symbol>"] = NilWord(func(m *machine) {


		m.genSymbol()
	})


	// ( symbol symbol -- bool )
	m.predefinedWords["symb-neq"] = GoWord(func(m *machine) error {


		a, ok := m.popValue().(Symbol)
		b, bOk := m.popValue().(Symbol)
		if ok && bOk {
			m.pushValue(Boolean(a != b))

		} else if ok || bOk {
			// If one of them is symbol, but they aren't equal,then return true
			m.pushValue(Boolean(true))
		} else {
			return fmt.Errorf("Symb-neq called on two non-symbols!")
		}
		return nil

	})


	return nil




}
|



|
>
>
>
>
>
|
<
<
<
>
>
|
<
>
|
<
<
>
>
|
|
|
|



|




|
<

>
|
>
>
>
>

1
2
3
4
5
6
7
8
9
10
11



12
13
14

15
16


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

32
33
34
35
36
37
38
39
package pisc

import "fmt"

var ModSymbolCore = Module{
	Author:    "Andrew Owen",
	Name:      "",
	License:   "MIT",
	DocString: "SymbolCore",
	Load:      loadSymbolCore,
}




func _genSymbol(m *Machine) error {
	m.genSymbol()

	return nil
}



func _symbolNotEqual(m *Machine) error {
	a, ok := m.PopValue().(Symbol)
	b, bOk := m.PopValue().(Symbol)
	if ok && bOk {
		m.PushValue(Boolean(a != b))

	} else if ok || bOk {
		// If one of them is symbol, but they aren't equal,then return true
		m.PushValue(Boolean(true))
	} else {
		return fmt.Errorf("Symb-neq called on two non-symbols!")
	}
	return nil
}


func loadSymbolCore(m *Machine) error {
	// Push a symbol onto the stack
	m.AddGoWordWithStack("<symbol>", "( -- symbol ) ", "Creates a unique symbol, and puts it on the stack", _genSymbol)
	// ( symbol symbol -- bool )
	m.AddGoWordWithStack("<symbol>", "( a b -- equal? ) ", "Compares two symbols, erroring it they aren't symbols", _symbolNotEqual)
	return m.ImportPISCAsset("stdlib/symbols.pisc")
}

Deleted symbols.pisc.

1
2
3
4
5
6
7
8
/*
Symbols.pisc
*/
:DOC <symbol> ( -- ) Create a unique symbol ;
:DOC symb-neq ( a b  -- ? ) Are these two symbols not equal  ;

:DOC symb-eq ( a b -- ? ) Are a and b equal symbols? ;
: symb-eq ( a b -- ? ) symb-neq not ;
<
<
<
<
<
<
<
<
















Added tests/all.pisc.



























>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
# Run at toplevel of PISC development directory
"./tests/" list-files-at [ ->name :fname
	[ $fname str-neq? ] :file-not?
	
	"test_root.pisc" file-not?
	"all.pisc" file-not? and
	"boltdb.pisc" file-not? and
	$fname ".pisc" str-ends? and /* */ [ 
       ${ "./tests/" $fname } import
       $fname println
	   2 [ "" print ] times
	] when
] vec-each

Added tests/bad_pisc/hanging_newlines.pisc.











>
>
>
>
>
1
2
3
4
5
#! /usr/local/bin/pisc -f
: foo ( -- ) "I am a thing" print 
;


Added tests/bad_pisc/working.pisc.











>
>
>
>
>
1
2
3
4
5
#!  /usr/local/pisc -f
: foo ( -- ) "I am a thing" print 
;

1 .

Added tests/boltdb.pisc.

















































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Importing the test core
"tests/test_root.pisc" import

"ModBoltDBExt" module-loaded? [
	"BoltDB KV" <test-suite> :boltdb-suite

	[ $boltdb-suite .addTest ] :test

	"Saving integers and strings works as expected" [ 
		".test.db" <open-kv-at-path> :db

		"two" 2 $db .save-int
		"Integer storage works" [ 2 ] [ "foo" $db .get-int ] assert

		"test" "value" $db .save-str 
		"String storage works" [ "value" ] [ "test" $db .get-str ] assert
		
		$db .close
	] test


	$boltdb-suite .runTests

] when

Added tests/bools.pisc.





























































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# This is the test section
"tests/test_root.pisc" import

"Booleans and spacing" <test-suite> :bools-suite

/* Little shortcut */
[$bools-suite .addTest] :test

"Not" [
	"Not t" [t not] [f] assert
	"Not f"[f not][t]assert
 ] test

"And" [
	"And t t" [t t and][t] assert
	"And t f" [t f and][f] assert 
	"And f t" [f t and][f] assert 
	"And f f" [f f and][f] assert 
] test

"Or" [
	{["Or t t" [ t t or ][ t ] assert]
	["Or t f" [ t f or ][ t ] assert] 
	["Or f t" [ f t or ][ t ] assert] 
	["Or f f" [ f f or ][ f ] assert]}
        [call] vec-each
] test

$bools-suite .runTests

Added tests/dicts.pisc.

































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# Importing the test core
"tests/test_root.pisc" import

"Dictionary and lexical closure" <test-suite> :dict-suite
[$dict-suite .addTest] :test

"Basic functions" [
	get-locals  /* Make sure we don't pollute global scope */
	<dict> :subject
	
	"Stack is left empty after dict-set" 
		[ $subject 1 "a" dict-set ] [ ] assert

	"Key can be retrived" 
		[ $subject "a" dict-get ] [ 1 ] assert

	"Dict is left on stack when pair is pushed"
		[ $subject 3 "a" dict-push ] [ $subject ] assert

	"Key can have value checked" 
		[ $subject "a" dict-has-key? ] [ t ] assert

	"Non-existing keys are reported properly"
		[ $subject "b" dict-has-key? ] [ f ] assert

	$subject 2 "q" dict-set

	"Getting the keys returns all the keys" 
		[ $subject dict-keys len ] [ 2 ] assert
	drop-locals
] test

"get-or-default" [ 
    <dict> 45 <<-key :d
    "get-or-default miss" [ $d "other-key" 2 get-or-default ][ 2 ] assert
    "get-or-default hit" [ $d "key" 2 get-or-default ][ 45 ] assert
] test

"Prefix tests" [ 
	get-locals

	-%abwq :char-set

	"Each char in the char-set is set to true" 
		[ 
			$char-set ->a
			$char-set ->b and
			$char-set ->w and 
			$char-set ->q and
		] [ t ] assert


	<dict> dup :triangle
		4 <<-a
		5 <<-b
		3 <-c

	"Testing <<- and ->>" [ $triangle ->>a ->>b ->c ] [ 4 5 3 ] assert

    "a" :a
    "b" :b
    "Testing <-$ and ->>$" [ $triangle 24 <<-$a -3 <-$b][ ] assert
    "Testing ->$ and ->>$" [ $triangle ->>$a ->$b][ 24 -3 ] assert

	<dict> dup :self
		0 <<-count
		[ $self dup ->count 1 + <-count ] <<-incr
		[ $self dup ->count 1 - <-count ] <-decr

	"State tracking also works" 
		[ $self .incr $self ->count ] [ 1 ] assert

	"Further state tracking"
		[ 3 [ $self .decr ] times $self ->count ] [ -2 ] assert


	drop-locals
] test

$dict-suite .runTests

Added tests/math.pisc.



























































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# This is the test section
"tests/test_root.pisc" import

"Math" <test-suite> :math-suite

/* Little shortcut */
[ $math-suite .addTest ] :test

"Addition" [
	"3 + 3 should be 6" [ 3 3 + ] [ 6 ] assert
	"2 + 1 should be 3" [ 2 1 + ] [ 3 ] assert
 ] test

"Subtraction" [
	"2 - 1 should be 1" [ 2 1 - ] [ 1 ] assert
	"5 - 3 should be 2" [ 5 3 - ] [ 2 ] assert 
	"8 - 3 should be 5" [ 8 3 - ] [ 5 ] assert 
] test

"Multiplication" [
	"2 * 4 should be 8" [ 4 2 * ] [ 8 ] assert
	"3.5 * 2 should be 7.0" [ 3.5 2 * ] [ 7.0 ] assert
] test

"Division" [
	"6 / 3 should be 2" [ 6 3 / ] [ 2 ] assert
	"42.0 / 4 should be 10.5" [ 42 4.0 / ] [ 10.5 ] assert 
	"7 / 2 should be 3 " [ 7 2 / ] [ 3 ] assert
] test

"Modulus" [
	"10 mod 2 should be 0 " [ 10 2 mod ] [ 0 ] assert
	"6 mod 4 should be 2 " [ 6 4 mod ] [ 2 ] assert
] test

"Pre and postcrement" [
    get-locals
    0 :i
    "Increment should work" [ ++i $i ] [ 1 ] assert
    "Decrement should work" [ --i $i ] [ 0 ] assert
    drop-locals
] test

$math-suite .runTests

Added tests/strings.pisc.















































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
"tests/test_root.pisc" import

"String basics" <test-suite> :string-suite

"Concatenation and joins" [
	"\"a\" and \"b\" concat to \"ab\""
		[ "a" "b" str-concat ] [ "ab" ] assert
	"\"Longer\" \"strings\" concat to \"Longerstrings\""
		[ "Longer" "strings" str-concat ] [ "Longerstrings" ] assert
	"Arrays of strings concat as expected" 
		[ { "one" "two" "three" } "-" str-join ] [ "one-two-three" ] assert
] $string-suite .addTest

"Conversions of types" [
	"12" [ 12 >string ] [ "12" ] assert
	"-14" [ -14 >string ] [ "-14" ] assert
	"34.2" [ 34.2 >string ] [ "34.2" ] assert
	# TODO: consider finding a more self-representative 
	# way of converting collections to strings
	"{ 1 2 3 }" [ { 1 2 3 } >string ] [ "{ 1 2 3 }" ] assert
	"str>int" [ "123" str>int ] [ 123 ] assert
] $string-suite .addTest

"Iteration and readers" [
	"each-char" [ { "abc" [ ] each-char } ] [ { "a" "b" "c" } ] assert

	"str>rune-reader per-char and byte"
		[ 
		    "abcd" str>rune-reader :r 
		    [ $r .read-rune ] :read
		    read read $r .read-byte
		] 
		[ "a" "b" 99 ]
	assert

	"Multiline reader" [
		"abc
def
ghi"
		str>rune-reader :r
		$r .read-line
		$r .read-line
		] [ "abc" "def" ] 
	assert
] $string-suite .addTest

"Contains and ending/starting" [
	"str-ends?" [ 
		"abcde" "cde" str-ends? 
		"abcde" "cd" str-ends? 
	] [ t f ] assert

	"str-starts?" [
		"Lorem Ipsum" "Lor" str-starts?
		"Flashy stuffs" "Lor" str-starts?
	] [ t f ] assert

	"str-ends?" [
		"" str-empty?
		" " str-empty?
		"Foo" str-empty?
	] [ t f f ] assert

	"str-idx-of" [ "abcde" "c" str-idx-of ] [ 2 ] assert
	"str-contains?" [
		"abc" "c" str-contains?
		"abc" "b" str-contains?
		"abc" "q" str-contains?
	 ] [ t t f ] assert
] $string-suite .addTest

"Splitting, slicing" [
	"str-split" [ "a,b,c,foo,int,knew" "," str-split ] [ { "a" "b" "c" "foo" "int" "knew" } ] assert
	"str-substr 0:2" [ "abcde" 0 2 str-substr ] [ "ab" ] assert
	"str-substr 0:4" [ "abcde" 0 4 str-substr ] [ "abcd" ] assert
	"str-substr 1:4" [ "abcde" 1 4 str-substr ] [ "bcd" ] assert
] $string-suite .addTest

"Replacement and repetition" [
	"str-replace" [
		"axbxcookie" "x" "," str-replace
	] [ "a,b,cookie" ] assert

	"str-repeat" [ "*" 8 str-repeat ] [ "********" ] assert
	"str-upper" [ "abc" str-upper ] [ "ABC" ] assert
	"str-lower" [ "ABC" str-lower ] [ "abc" ] assert
] $string-suite .addTest

"Basic reversing of strings" [
	"str-reverse" [ "fdsa" str-reverse ] [ "asdf" ] assert
	"str-reverse-graphemes" [ "fdsa" str-reverse-graphemes ] [ "asdf" ] assert
	"str-reverse-bytes" [ "fdsa" str-reverse-bytes ] [ "asdf" ] assert
] $string-suite .addTest

"Advanced reversing of strings" [
"" println
"TODO: Find a way to turn this into byte-level comparisons instead" println
	# "str-reverse" [ "as⃝df̅" str-reverse ] [ " ̅fd⃝sa" ] assert
	# "str-reverse-graphemes" [ "as⃝df̅" str-reverse-graphemes ] [ "f̅ds⃝a" ] assert
    # "str-reverse-bytes" [ "as⃝df̅" str-reverse-bytes ] [ "��fd���sa" ] assert
] $string-suite .addTest

$string-suite .runTests

Added tests/test_root.pisc.









































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/* Tests for various bits of PISC */

:DOC assert ( message quot1 quot2 -- ) 
	Use eq to assert that both quotations result in the same test result
;
/*
: assert ( message quot1 quot2 -- ) :q2 :q1 :msg
 	{ q1 } { q2 } eq not [ $msg error ] when
;
*/

:DOC assert-deep-slow ( message quot1 quot2 -- ) 
	Use deep-slow-reflect-eq to assert both quotoations result in the same test result 
;

: assert ( message quot1 quot2 -- ) 
	:q2 :q1 :msg 
 	{ q1 } dup :a1 { q2 } dup :a2 deep-slow-reflect-eq not [ 
	 	"" println 
	 	${ "Testing that " $msg " failed: " $a1 " is not " $a2 } println
 	 ] [
            "." print
 	 ] if 
 	# Indicate that we passed the assert
;


: run-single-test ( name quot -- test ) 
	:quot :name
	${ "Running: " $name " " } print
	{ quot } dup :arr len 0 > [ ${ "Test" $name "corrupted the stack with" arr } error ] when
;

: <test-suite> ( name -- suite ) 
	<vector> :tests

	<dict> dup :self
		swap <<-name
		[ $tests ] <<-tests
		/* ( name quot -- ) Appends a name/quot pair to the tests vector */
		[ 2vector $tests swap vec-append :tests ] <<-addTest

		[ 
			# The title of the tests
			${ "Running the " $self ->name " tests" } println
			$tests [ 
				# Indent each sub-test
				"   " print
				splat run-single-test "" println 
			] vec-each
		] <<-runTests
;

Added tests/vectors.pisc.

























































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# This is the test section
"tests/test_root.pisc" import

"Vectors" <test-suite> :vec-suite

/* Little shortcut */
[ $vec-suite .addTest ] :test

"Vector manipulation" [
	{ 1 2 } :a
	"Vec-at" [ $a 1 vec-at ] [ 2 ] assert
	"Vec-set-at" [ $a 1 1 vec-set-at ] [ { 1 1 } ] assert
	"<vector>" [ <vector> ] [ { } ] assert
	"vec-each" [ { 1 2 3 } [ ] vec-each ] [ 1 2 3 ] assert
	"vec-append" [ { 1 2 } dup 3 vec-append ] [ { 1 2 3 } { 1 2 3 } ] assert
	"vec-push" [ { 1 2 } dup 3 vec-push ] [ { 1 2 3 } ] assert
	"vec-prepend" [ { 1 2 } 3 vec-prepend ] [ { 3 1 2 } ] assert
	"vec-popback" [ { 1 2 3 } vec-popback ] [ { 1 2 } 3 ] assert
	"vec-popfront" [ { 1 2 3 } vec-popfront ] [ { 2 3 } 1 ] assert
] test

"Vector utils" [
	"splat" [ { 1 2 3 } splat ] [ 1 2 3 ] assert
	"each2" 
		[ { 1 2 3 } { 4 5 6 } [ 2vector ] each2 ] 
		[ { { 1 4 } { 2 5 } { 3 6 } } ] 
	assert

	"vec-reverse odd" [ { 1 2 3 4 5 } vec-reverse ] [ { 5 4 3 2 1 } ] assert
	"vec-reverse even" [ { 1 2 3 4 } vec-reverse ] [ { 4 3 2 1 } ] assert
	"vec-map" [ { 1 2 3 4 5 6 } [ 2 * ] vec-map ] [ { 2 4 6 8 10 12 } ] assert
] test

"Vector nth functions"  [
    { 1 2 3 4 5 6 } :vec
    "1st" [ $vec 1st ][ 1 ] assert
    "2nd" [ $vec 2nd ][ 2 ] assert
    "3rd" [ $vec 3rd ][ 3 ] assert
    "4th" [ $vec 4th ][ 4 ] assert
    "5th" [ $vec 5th ][ 5 ] assert
    "6th" [ $vec 6th ][ 6 ] assert
] test

$vec-suite .runTests

Changes to types.go.

1
2
3
4
5

6

7
8
9
10
11
12
13
14
15
16
17






































































18


19


20



21



22



23


24
25
26
27
28
29
30
31
32
33

34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
..
67
68
69
70
71
72
73
74
75
76
77
78
79

80






81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98








99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
...
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package main

import (
	"bytes"
	"fmt"

	"strconv"

)

type stackEntry interface {
	String() string
	Type() string
}

type lenable interface {
	Length() int
}







































































type Boolean bool


type Integer int


type Double float64



type Dict map[string]stackEntry



type Array []stackEntry



type String string


type Symbol int64

// This is a separate sematic from arrays.
type quotation struct {
	code   []word
	locals Dict
	codePosition
}

func (q quotation) toCode() *codeQuotation {

	return &codeQuotation{
		idx:          0,
		words:        q.code,
		codePosition: q.codePosition,
	}
}

type GoFunc GoWord

func (g GoFunc) String() string {
	return "<Native Code>"
}

func (g GoFunc) Type() string {
	return "Go Word"
}

func (s String) String() string {
	return string(s)
}

func (s Symbol) String() string {
	return "#" + fmt.Sprint(int(s))
}
................................................................................
	return strconv.Itoa(int(i))
}

func (d Double) String() string {
	return fmt.Sprint(float64(d))
}

func (q quotation) String() string {
	return fmt.Sprint([]word(q.code))
}

func (dict Dict) String() string {
	var key_order stackEntry

	var found bool






	buf := bytes.NewBufferString("map[")
	if key_order, found = dict["__ordering"]; found {
		if keys, ok := key_order.(Array); ok {
			for _, k := range keys {
				buf.WriteString(fmt.Sprint(k.String(), ":", dict[k.String()], " "))
			}
			buf.WriteString("]")
			return buf.String()
		}
		return fmt.Sprint(map[string]stackEntry(dict))
	} else {
		return fmt.Sprint(map[string]stackEntry(dict))
	}

}

func (a Array) String() string {
	return fmt.Sprint([]stackEntry(a))








}

func (i Integer) Type() string {
	return "Integer"
}

func (d Double) Type() string {
	return "Double"
}

func (q quotation) Type() string {
	return "Quotation"
}

func (a Array) Type() string {
	return "Vector"
}

func (dict Dict) Type() string {
	return "Dictionary"
}

................................................................................
}

func (s String) Type() string {
	return "String"
}

func (s Symbol) Type() string {
	return "ERROR: Symbol observed on stack!"
}

func (dict Dict) Length() int {
	return len(dict)
}

func (a Array) Length() int {
	return len(a)
}

func (s String) Length() int {
	return len(s)
}
|




>

>


|




|



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>
>

>
>

>
>
>
|
>
>
>
|
>
>
>

>
>



|
|

<


|
>
|
<
<
<
<








<
<
<
<







 







|
|



|
>

>
>
>
>
>
>


|
|





|

|




|
|
>
>
>
>
>
>
>
>










|



|







 







|






|
|





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116

117
118
119
120
121




122
123
124
125
126
127
128
129




130
131
132
133
134
135
136
...
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
...
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
package pisc

import (
	"bytes"
	"fmt"
	"reflect"
	"strconv"
	"strings"
)

type StackEntry interface {
	String() string
	Type() string
}

type Lenable interface {
	Length() int
}

type Error struct {
	message string
}

func (e Error) Error() string {
	return e.message
}

func runEq(m *Machine) error {
	a := m.PopValue()
	b := m.PopValue()
	m.PushValue(Boolean(eq(a, b)))
	return nil
}

// Check if two arrays are referentially equal
func vectorRefEq(a, b *Vector) bool {
	if len(a.Elements) != len(b.Elements) {
		return false
	}
	if len(a.Elements) == 0 {
		return true
	}
	return &(a.Elements)[0] == &(b.Elements)[0]
}

func mapRefEq(a, b Dict) bool {
	if len(a) != len(b) {
		return false
	}
	if len(a) == 0 {
		return true
	}
	aVal := reflect.ValueOf(a).Pointer()
	bVal := reflect.ValueOf(b).Pointer()
	return aVal == bVal
}

func eq(a, b StackEntry) bool {

	if a.Type() != b.Type() {
		return false
	}
	// Otherwise, the types are the same and we can compare them
	switch a.Type() {
	case "Boolean":
		return a.(Boolean) == b.(Boolean)
	case "String":
		return a.String() == b.String()
	case "Integer":
		return a.(Integer) == b.(Integer)
	case "Double":
		return a.(Double) == b.(Double)
	case "Symbol":
		return a.(Symbol) == b.(Symbol)
	case "Vector":
		return vectorRefEq(a.(*Vector), b.(*Vector))
	case "Dictionary":
		return mapRefEq(a.(Dict), b.(Dict))
	case "Quotation":
		return &a == &b
	case "Go Word":
		return &a == &b
	}
	// If we got here, something is borked
	panic("eq failed!!!")

}

// Boolean is the PISC wrapper around bools
type Boolean bool

// Integer is the PISC wrapper around ints
type Integer int

// Double is the PISC wrapper aroudn float64
type Double float64

// Dict is the wrapper around dictionaries.
// TODO: Find a way to support dicts with arbitrary keys, not just strings
type Dict map[string]StackEntry

// Vectors are mutable pointers to slices.
type Vector struct {
	Elements []StackEntry
}

// String is the PISC wrapper around strings
type String string

// Symbol is used for unique symboles
type Symbol int64

// This is a separate sematic from arrays.
type Quotation struct {
	inner  *CodeQuotation
	locals Dict

}

func (q Quotation) toCode() *CodeQuotation {
	q.inner.Idx = 0
	return q.inner




}

type GoFunc GoWord

func (g GoFunc) String() string {
	return "<Native Code>"
}





func (s String) String() string {
	return string(s)
}

func (s Symbol) String() string {
	return "#" + fmt.Sprint(int(s))
}
................................................................................
	return strconv.Itoa(int(i))
}

func (d Double) String() string {
	return fmt.Sprint(float64(d))
}

func (q *Quotation) String() string {
	return fmt.Sprint([]*word(q.inner.Words))
}

func (dict Dict) String() string {
	var key_order StackEntry
	// var strMethod StackEntry
	var found bool
	/* TODO: Figure this out later
	if strMethod, found = dict["tostring"]; found {
		if toCall, ok := strMethod.(*CodeQuotation) {
		}
	}
	*/
	buf := bytes.NewBufferString("map[")
	if key_order, found = dict["__ordering"]; found {
		if keys, ok := key_order.(*Vector); ok {
			for _, k := range keys.Elements {
				buf.WriteString(fmt.Sprint(k.String(), ":", dict[k.String()], " "))
			}
			buf.WriteString("]")
			return buf.String()
		}
		return fmt.Sprint(map[string]StackEntry(dict))
	} else {
		return fmt.Sprint(map[string]StackEntry(dict))
	}

}

func (v *Vector) String() string {
	elems := make([]string, len(v.Elements))
	for i, e := range v.Elements {
		elems[i] = e.String()
	}
	return "{ " + strings.Join(elems, " ") + " }"
}

func (g GoFunc) Type() string {
	return "Go Word"
}

func (i Integer) Type() string {
	return "Integer"
}

func (d Double) Type() string {
	return "Double"
}

func (q *Quotation) Type() string {
	return "Quotation"
}

func (v *Vector) Type() string {
	return "Vector"
}

func (dict Dict) Type() string {
	return "Dictionary"
}

................................................................................
}

func (s String) Type() string {
	return "String"
}

func (s Symbol) Type() string {
	return "Symbol"
}

func (dict Dict) Length() int {
	return len(dict)
}

func (v *Vector) Length() int {
	return len(v.Elements)
}

func (s String) Length() int {
	return len(s)
}

Deleted vadd.pisc.

1
2
3
: min ( a b -- smaller ) 2dup > [ nip ] [ drop ] if ;

: vadd ( v1 v2 -- v3 ) [ + ] each2 ;
<
<
<






Changes to vectors.go.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44























45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91








package main

import (
	"fmt"
)

func (m *machine) loadVectorWords() error {

	// ( vec val idx -- vec )
	m.predefinedWords["vec-set-at"] = GoWord(func(m *machine) error {
		idx := int(m.popValue().(Integer))
		val := m.popValue()
		arr := m.values[len(m.values)-1].(Array)
		if idx > len(arr)-1 || idx < 0 {
			return fmt.Errorf("Index out of bounds! value:", idx)
		}
		arr[idx] = val
		return nil
	})

	m.predefinedWords["vec-at"] = GoWord(func(m *machine) error {
		// ( vec idx -- elem )
		idx := int(m.popValue().(Integer))
		arr := m.popValue().(Array)
		if idx > len(arr)-1 || idx < 0 {
			return fmt.Errorf("Index out of bounds!")
		}
		m.pushValue(arr[idx])
		return nil
	})

	// ( -- vector )
	m.predefinedWords["<vector>"] = NilWord(func(m *machine) {
		m.pushValue(Array(make([]stackEntry, 0)))
	})
	// ( vec quot -- .. )
	m.predefinedWords["vec-each"] = GoWord(func(m *machine) error {
		quot := m.popValue().(quotation).toCode()
		vect := m.popValue().(Array)
		for _, elem := range vect {
			m.pushValue(elem)
			quot.idx = 0
			err := executeWordsOnMachine(m, quot)
			if err != nil {























				return err
			}
		}
		return nil
	})

	// ( vec elem -- newVect )
	m.predefinedWords["vec-append"] = NilWord(func(m *machine) {
		toAppend := m.popValue()
		arr := m.popValue().(Array)
		arr = append(arr, toAppend)
		m.pushValue(arr)
	})
	// ( vec elem -- newVect )
	m.predefinedWords["vec-prepend"] = NilWord(func(m *machine) {
		toPrepend := m.popValue()
		arr := m.popValue().(Array)
		arr = append([]stackEntry{toPrepend}, arr...)
		m.pushValue(arr)
	})

	// ( vec -- vec elem )
	m.predefinedWords["vec-popback"] = GoWord(func(m *machine) error {
		arr := m.popValue().(Array)
		if len(arr) < 1 {
			return fmt.Errorf("No elements in array!")
		}
		val := arr[len(arr)-1]
		arr = arr[:len(arr)-1]
		m.pushValue(arr)
		m.pushValue(val)
		return nil
	})
	// ( vec -- vec elem)
	m.predefinedWords["vec-popfront"] = GoWord(func(m *machine) error {
		arr := m.popValue().(Array)
		if len(arr) < 1 {
			return fmt.Errorf("No elements in array!")
		}
		val := arr[0]
		arr = arr[1:]
		m.pushValue(arr)
		m.pushValue(val)
		return nil
	})
	return nil
}








|





|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package pisc

import (
	"fmt"
)

var ModVectorCore = Module{
	Author:    "Andrew Owen",
	Name:      "VectorCore",
	License:   "MIT",
	DocString: "TODO: Fill this in",
	Load:      loadVectorCore,
}

func loadVectorCore(m *Machine) error {
	m.AddGoWord("vec-set-at", " ( vec val idx -- vec ) ", GoWord(vecSetAt))
	m.AddGoWord("vec-at", " ( vec idx -- elem ) ", GoWord(vecAt))
	m.AddGoWord("<vector>", " ( -- vector )", GoWord(makeVec))
	m.AddGoWord("vec-each", " ( vec quot -- .. ) ", GoWord(vecEach))
	m.AddGoWord("vec-append", " ( vec elem -- vec ) ", GoWord(vecAppend))
	m.AddGoWord("vec-push", ` ( vec elem -- )
		Mutates vector to contain elem`, GoWord(vecPush))
	m.AddGoWord("vec-pushback", " ( vec elem -- ) ", GoWord(vecPush))
	m.AddGoWord("vec-prepend", " ( vec elem -- vec ) ", GoWord(vecPrepend))
	m.AddGoWord("vec-popback", " ( vec -- vec elem ) ", GoWord(vecPopback))
	m.AddGoWord("vec-popfront", " ( vec -- vec elem ) ", GoWord(vecPopfront))
	// TODO: vec-slice ( vec begin end -- sliced-vec )
	// Return success if we can load out PISC file as well.
	return m.ImportPISCAsset("stdlib/vectors.pisc")
}

func vecSetAt(m *Machine) error {
	idx := int(m.PopValue().(Integer))
	val := m.PopValue()
	elems := m.Values[len(m.Values)-1].(*Vector).Elements
	if idx > len(elems)-1 || idx < 0 {
		return fmt.Errorf("index out of bounds: %v", idx)
	}
	elems[idx] = val
	return nil
}

func vecAt(m *Machine) error {
	idx := int(m.PopValue().(Integer))
	elems := m.PopValue().(*Vector).Elements
	if idx > len(elems)-1 || idx < 0 {
		return fmt.Errorf("index out of bounds: %v", idx)
	}
	m.PushValue(elems[idx])
	return nil
}

func makeVec(m *Machine) error {
	vec := &Vector{Elements: make([]StackEntry, 0)}
	m.PushValue(vec)
	return nil
}

func vecEach(m *Machine) error {
	quot := m.PopValue().(*Quotation)
	vect := m.PopValue().(*Vector)
	for _, elem := range vect.Elements {
		m.PushValue(elem)
		m.PushValue(quot)
		err := m.ExecuteQuotation()
		if err != nil {
			fmt.Println("ERROR HAPPENED")
			return err
		}
	}
	return nil
}

func vecPush(m *Machine) error {
	toAppend := m.PopValue()
	vec := m.PopValue().(*Vector)
	newElems := append(vec.Elements, toAppend)
	vec.Elements = newElems
	return nil
}

func vecAppend(m *Machine) error {
	toAppend := m.PopValue()
	vec := m.PopValue().(*Vector)
	newElems := append(vec.Elements, toAppend)
	vec.Elements = newElems
	m.PushValue(vec)
	return nil
}

func vecPrepend(m *Machine) error {
	toPrepend := m.PopValue()
	arr := m.PopValue().(*Vector)
	newElems := append([]StackEntry{toPrepend}, (arr.Elements)...)
	arr.Elements = newElems
	m.PushValue(arr)
	return nil
}

func vecPopback(m *Machine) error {
	vec := m.PopValue().(*Vector)
	if len(vec.Elements) < 1 {
		return fmt.Errorf("no elements in array")
	}
	val := (vec.Elements)[len(vec.Elements)-1]
	vec.Elements = vec.Elements[:len(vec.Elements)-1]
	m.PushValue(vec)
	m.PushValue(val)
	return nil
}

func vecPopfront(m *Machine) error {
	vec := m.PopValue().(*Vector)
	if len(vec.Elements) < 1 {
		return fmt.Errorf("no elements in array")
	}
	val := vec.Elements[0]
	vec.Elements = vec.Elements[1:]
	m.PushValue(vec)
	m.PushValue(val)
	return nil
}

Deleted vectors.pisc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* Vectors and their utilities */

:DOC vec-set-at ( vec val idx -- elem ) Set vector at idx to value ;
:DOC vec-at ( vec idx -- elem ) Get element at index ;
:DOC <vector> ( -- vector ) "<vector>" extern-call ;
:DOC vec-each ( vec quot -- .. ) "vec-each" extern-call ;


:DOC <vector> ( -- vec ) "<vector>" extern-call ;
:DOC vec-each ( vec quot -- .. ) "vec-each" extern-call ;
:DOC vec-append ( vec elem --  newVect ) "vec-append" extern-call ;
:DOC vec-prepend ( vec elem -- newVect ) "vec-prepend" extern-call ;
:DOC vec-popback ( vec -- vec elem  ) "vec-popback" extern-call ;
:DOC vec-popfront ( vec -- vec elem ) "vec-popfront" extern-call ;

:PRE [] ( vec idx -- ) string>int vec-at ;

: 2vector ( a b -- vec ) <vector> 2 [ swap vec-prepend ] times ;

:DOC each2 ( v1 v2 quot -- v3 ) Applies a quotation to each elementwise pair in v1 and v2, to result in v3 ;
: each2 ( v1 v2 quot -- v3 ) 
	:quot :v2 :v1
	0 :i <vector>
	$v2 len $v1 len min [
		 $v1 $i vec-at 
		 $v2 $i vec-at quot vec-append
		[ 1 + ] $:i
	] times ;

:DOC splat ( vec -- items ) Dump the contents of the vector onto the stack ;
: splat ( vec -- items... ) [ ] vec-each ;

:DOC vec-reverse ( vec -- reversevec ) Reverses a vector ;
: vec-reverse ( vec -- reversevec ) 
	dup :vec len :end 0 :i
	[ 1 - ] $:end
	$end 2 / [ 
		$vec $i vec-at :x
		$vec $end vec-at :y
		$vec $y $i vec-set-at :vec
		$vec $x $end vec-set-at :vec
		[ 1 - ] $:end
		[ 1 + ] $:i
	] times
	$vec
;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<