version	U12.1.00
uid	sort.u1-1784908809-0
record	element,2
	0,key
	1,value
impl	error
global	6
	0,000005,isort,3
	1,000005,sortff,-2
	2,000005,sortff_1,4
	3,000005,sortgen,2
	4,000011,element,2
	5,000005,sortt,2

proc isort
	local	0,001000,x
	local	1,001000,keyproc
	local	2,001000,y
	local	3,000020,items
	local	4,000020,item
	local	5,000020,key
	local	6,000020,result
	local	7,000000,integer
	local	8,000000,proc
	local	9,000000,table
	local	10,000000,put
	local	11,000000,sort
	local	12,000000,get
	con	0,010000,2,133,135
	con	1,002000,1,2
	con	2,002000,1,1
	con	3,002000,1,3
	declend
	filen	sort.icn
	line	61
	colm	11
	synt	any
	mark	L1
	line	63
	colm	4
	synt	ifelse
	mark	L2
	pnull
	var	2
	var	7
	var	1
	line	63
	colm	19
	synt	any
	invoke	1
	line	63
	colm	9
	synt	any
	asgn
	unmark
	pnull
	var	1
	var	8
	str	0
	int	1
	line	64
	colm	25
	synt	any
	invoke	2
	line	64
	colm	18
	synt	any
	asgn
	goto	L3
lab L2
	pnull
	pnull
	var	1
	line	65
	colm	9
	synt	any
	null
	int	2
	line	65
	colm	18
	synt	any
	asgn
lab L3
	line	63
	colm	4
	synt	endifelse
	unmark
lab L1
	mark	L4
	pnull
	var	3
	var	9
	line	66
	colm	18
	synt	any
	invoke	0
	line	66
	colm	10
	synt	any
	asgn
	unmark
lab L4
	mark	L5
	line	67
	colm	4
	synt	every
	mark0
	pnull
	var	4
	pnull
	var	0
	line	67
	colm	18
	synt	any
	bang
	line	67
	colm	15
	synt	any
	asgn
	pop
	mark0
	mark	L8
	pnull
	var	5
	var	1
	var	4
	var	2
	line	68
	colm	21
	synt	any
	invoke	2
	line	68
	colm	11
	synt	any
	asgn
	unmark
lab L8
	mark	L9
	pnull
	pnull
	pnull
	var	3
	var	5
	line	69
	colm	14
	synt	any
	subsc
	line	69
	colm	8
	synt	any
	null
	pnull
	var	4
	line	69
	colm	23
	synt	any
	llist	1
	line	69
	colm	20
	synt	any
	asgn
	line	69
	colm	31
	synt	any
	esusp
	goto	L10
lab L9
	var	10
	pnull
	var	3
	var	5
	line	69
	colm	42
	synt	any
	subsc
	var	4
	line	69
	colm	36
	synt	any
	invoke	2
lab L10
	unmark
lab L6
	efail
lab L7
	line	67
	colm	4
	synt	endevery
	unmark
lab L5
	mark	L11
	pnull
	var	3
	var	11
	var	3
	int	3
	line	71
	colm	17
	synt	any
	invoke	2
	line	71
	colm	10
	synt	any
	asgn
	unmark
lab L11
	mark	L12
	pnull
	var	6
	pnull
	line	72
	colm	14
	synt	any
	llist	0
	line	72
	colm	11
	synt	any
	asgn
	unmark
lab L12
	mark	L13
lab L14
	line	73
	colm	4
	synt	while
	mark0
	var	12
	var	3
	line	73
	colm	13
	synt	any
	invoke	1
	unmark
	mark	L14
	line	73
	colm	24
	synt	every
	mark0
	var	10
	var	6
	pnull
	var	12
	var	3
	line	73
	colm	45
	synt	any
	invoke	1
	line	73
	colm	41
	synt	any
	bang
	line	73
	colm	33
	synt	any
	invoke	2
	pop
lab L17
	efail
lab L18
	line	73
	colm	24
	synt	endevery
lab L15
	unmark
	goto	L14
lab L16
	line	73
	colm	4
	synt	endwhile
	unmark
lab L13
	mark	L19
	mark	L20
	var	6
	line	74
	colm	4
	synt	any
	pret
lab L20
	synt	any
	pfail
	unmark
lab L19
	pnull
	line	75
	colm	1
	synt	any
	pfail
	end
proc sortff
	local	0,001000,L
	local	1,001000,fields
	local	2,000000,copy
	local	3,000000,sortff_1
	con	0,002000,1,1
	declend
	line	88
	colm	11
	synt	any
	mark	L1
	pnull
	pnull
	var	0
	line	89
	colm	5
	synt	any
	size
	int	0
	line	89
	colm	8
	synt	any
	numle
	pop
	mark	L2
	var	2
	var	0
	line	89
	colm	28
	synt	any
	invoke	1
	line	89
	colm	17
	synt	any
	pret
lab L2
	synt	any
	pfail
	unmark
lab L1
	mark	L3
	mark	L4
	var	3
	var	0
	var	1
	int	0
	pnull
	line	90
	colm	35
	synt	any
	llist	0
	line	90
	colm	20
	synt	any
	invoke	4
	line	90
	colm	5
	synt	any
	pret
lab L4
	synt	any
	pfail
	unmark
lab L3
	pnull
	line	91
	colm	1
	synt	any
	pfail
	end
proc sortff_1
	local	0,001000,L
	local	1,001000,fields
	local	2,001000,k
	local	3,001000,uniqueObject
	local	4,000020,sortField
	local	5,000020,cachedKeyValue
	local	6,000020,i
	local	7,000020,startOfRun
	local	8,000020,thisKey
	local	9,000000,sortf
	local	10,000000,sortff_1
	con	0,002000,1,1
	con	1,002000,1,2
	con	2,002000,1,0
	declend
	line	93
	colm	11
	synt	any
	mark	L1
	pnull
	var	4
	pnull
	var	1
	var	2
	line	97
	colm	24
	synt	any
	subsc
	line	97
	colm	15
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	var	0
	var	9
	var	0
	var	4
	line	98
	colm	15
	synt	any
	invoke	2
	line	98
	colm	7
	synt	any
	asgn
	unmark
lab L2
	mark	L3
	line	104
	colm	5
	synt	if
	mark0
	pnull
	var	1
	pnull
	var	2
	dup
	int	0
	line	104
	colm	17
	synt	any
	plus
	asgn
	line	104
	colm	14
	synt	any
	subsc
	unmark
	mark	L4
	pnull
	var	7
	int	0
	line	109
	colm	20
	synt	any
	asgn
	unmark
lab L4
	mark	L5
	pnull
	var	5
	mark	L6
	pnull
	pnull
	var	0
	var	7
	line	110
	colm	28
	synt	any
	subsc
	var	4
	line	110
	colm	40
	synt	any
	subsc
	line	110
	colm	52
	synt	any
	esusp
	goto	L7
lab L6
	var	3
lab L7
	line	110
	colm	24
	synt	any
	asgn
	unmark
lab L5
	mark	L8
	line	111
	colm	9
	synt	every
	mark0
	pnull
	var	6
	pnull
	int	1
	pnull
	var	0
	line	111
	colm	25
	synt	any
	size
	push1
	line	111
	colm	22
	synt	any
	toby
	line	111
	colm	17
	synt	any
	asgn
	pop
	mark0
	mark	L11
	pnull
	var	8
	mark	L12
	pnull
	pnull
	var	0
	var	6
	line	112
	colm	25
	synt	any
	subsc
	var	4
	line	112
	colm	28
	synt	any
	subsc
	line	112
	colm	40
	synt	any
	esusp
	goto	L13
lab L12
	var	3
lab L13
	line	112
	colm	21
	synt	any
	asgn
	unmark
lab L11
	line	113
	colm	13
	synt	if
	mark0
	mark	L14
	pnull
	var	8
	var	5
	line	113
	colm	29
	synt	any
	eqv
	unmark
	efail
lab L14
	pnull
	unmark
	mark	L15
	line	119
	colm	17
	synt	if
	mark0
	pnull
	pnull
	var	6
	var	7
	line	119
	colm	22
	synt	any
	minus
	int	0
	line	119
	colm	35
	synt	any
	numgt
	unmark
	pnull
	var	0
	pnull
	pnull
	pnull
	var	0
	int	0
	var	7
	line	120
	colm	29
	synt	any
	synt	any
	sect
	var	10
	pnull
	var	0
	var	7
	var	6
	line	121
	colm	47
	synt	any
	synt	any
	sect
	var	1
	var	2
	var	3
	line	121
	colm	34
	synt	any
	invoke	4
	line	120
	colm	42
	synt	any
	lconcat
	pnull
	var	0
	var	6
	int	2
	line	122
	colm	29
	synt	any
	synt	any
	sect
	line	121
	colm	77
	synt	any
	lconcat
	line	120
	colm	23
	synt	any
	asgn
	line	119
	colm	17
	synt	endif
	unmark
lab L15
	mark	L16
	pnull
	var	7
	var	6
	line	125
	colm	28
	synt	any
	asgn
	unmark
lab L16
	pnull
	var	5
	mark	L17
	pnull
	pnull
	var	0
	var	7
	line	126
	colm	36
	synt	any
	subsc
	var	4
	line	126
	colm	48
	synt	any
	subsc
	line	126
	colm	60
	synt	any
	esusp
	goto	L18
lab L17
	var	3
lab L18
	line	126
	colm	32
	synt	any
	asgn
	line	113
	colm	13
	synt	endif
	unmark
lab L9
	efail
lab L10
	line	111
	colm	9
	synt	endevery
	unmark
lab L8
	line	132
	colm	9
	synt	if
	mark0
	pnull
	pnull
	var	6
	var	7
	line	132
	colm	14
	synt	any
	minus
	int	0
	line	132
	colm	27
	synt	any
	numgt
	unmark
	pnull
	var	0
	pnull
	pnull
	var	0
	int	0
	var	7
	line	133
	colm	21
	synt	any
	synt	any
	sect
	var	10
	pnull
	var	0
	var	7
	int	2
	line	134
	colm	39
	synt	any
	synt	any
	sect
	var	1
	var	2
	var	3
	line	134
	colm	26
	synt	any
	invoke	4
	line	133
	colm	34
	synt	any
	lconcat
	line	133
	colm	15
	synt	any
	asgn
	line	132
	colm	9
	synt	endif
	line	104
	colm	5
	synt	endif
	unmark
lab L3
	mark	L19
	mark	L20
	var	0
	line	138
	colm	5
	synt	any
	pret
lab L20
	synt	any
	pfail
	unmark
lab L19
	pnull
	line	140
	colm	1
	synt	any
	pfail
	end
proc sortgen
	local	0,001000,T
	local	1,001000,m
	local	2,000020,L
	local	3,000000,sort
	con	0,010000,2,153,053
	con	1,010000,2,153,055
	con	2,002000,1,1
	con	3,010000,2,166,053
	con	4,010000,2,166,055
	con	5,002000,1,2
	declend
	line	142
	colm	11
	synt	any
	mark	L1
	pnull
	var	2
	var	3
	var	0
	line	145
	colm	17
	synt	case
	mark0
	var	1
	eret
	mark	L3
	ccase
	mark	L4
	str	0
	line	146
	colm	12
	synt	any
	esusp
	goto	L5
lab L4
	str	1
lab L5
	line	146
	colm	18
	synt	any
	eqv
	unmark
	pop
	int	2
	goto	L2
lab L3
	mark	L6
	ccase
	mark	L7
	str	3
	line	147
	colm	12
	synt	any
	esusp
	goto	L8
lab L7
	str	4
lab L8
	line	147
	colm	18
	synt	any
	eqv
	unmark
	pop
	int	5
	goto	L2
lab L6
	efail
lab L2
	line	145
	colm	17
	synt	endcase
	line	145
	colm	13
	synt	any
	invoke	2
	line	145
	colm	6
	synt	any
	asgn
	unmark
lab L1
	mark	L9
	line	150
	colm	4
	synt	case
	mark0
	var	1
	eret
	mark	L11
	ccase
	mark	L12
	str	0
	line	151
	colm	12
	synt	any
	esusp
	goto	L13
lab L12
	str	3
lab L13
	line	151
	colm	18
	synt	any
	eqv
	unmark
	pop
	line	151
	colm	21
	synt	suspend
	mark0
	pnull
	var	2
	line	151
	colm	29
	synt	any
	bang
	line	151
	colm	21
	synt	any
	psusp
	pop
lab L14
	efail
lab L15
	line	151
	colm	21
	synt	endsuspend
	goto	L10
lab L11
	mark	L16
	ccase
	mark	L17
	str	1
	line	152
	colm	12
	synt	any
	esusp
	goto	L18
lab L17
	str	4
lab L18
	line	152
	colm	18
	synt	any
	eqv
	unmark
	pop
	line	152
	colm	21
	synt	suspend
	mark0
	pnull
	var	2
	pnull
	pnull
	var	2
	line	152
	colm	31
	synt	any
	size
	int	2
	pnull
	int	2
	line	152
	colm	42
	synt	any
	neg
	line	152
	colm	34
	synt	any
	toby
	line	152
	colm	30
	synt	any
	subsc
	line	152
	colm	21
	synt	any
	psusp
	pop
lab L19
	efail
lab L20
	line	152
	colm	21
	synt	endsuspend
	goto	L10
lab L16
	efail
lab L10
	line	150
	colm	4
	synt	endcase
	unmark
lab L9
	pnull
	line	155
	colm	1
	synt	any
	pfail
	end
proc sortt
	local	0,001000,T
	local	1,001000,i
	local	2,000020,result
	local	3,000020,k
	local	4,000000,integer
	local	5,000000,runerr
	local	6,000000,put
	local	7,000000,element
	local	8,000000,key
	local	9,000000,sortf
	con	0,002000,1,1
	con	1,002000,1,2
	con	2,002000,3,205
	declend
	line	159
	colm	11
	synt	any
	mark	L1
	line	162
	colm	4
	synt	if
	mark0
	mark	L2
	pnull
	var	4
	var	1
	line	162
	colm	18
	synt	any
	invoke	1
	mark	L3
	int	0
	line	162
	colm	27
	synt	any
	esusp
	goto	L4
lab L3
	int	1
lab L4
	line	162
	colm	22
	synt	any
	numeq
	unmark
	efail
lab L2
	pnull
	unmark
	var	5
	int	2
	var	1
	line	162
	colm	44
	synt	any
	invoke	2
	line	162
	colm	4
	synt	endif
	unmark
lab L1
	mark	L5
	pnull
	var	2
	pnull
	line	164
	colm	14
	synt	any
	llist	0
	line	164
	colm	11
	synt	any
	asgn
	unmark
lab L5
	mark	L6
	line	166
	colm	4
	synt	every
	mark0
	var	6
	var	2
	var	7
	pnull
	var	3
	var	8
	var	0
	line	166
	colm	38
	synt	any
	invoke	1
	line	166
	colm	32
	synt	any
	asgn
	pnull
	var	0
	var	3
	line	166
	colm	44
	synt	any
	subsc
	line	166
	colm	29
	synt	any
	invoke	2
	line	166
	colm	13
	synt	any
	invoke	2
	pop
lab L7
	efail
lab L8
	line	166
	colm	4
	synt	endevery
	unmark
lab L6
	mark	L9
	mark	L10
	var	9
	var	2
	var	1
	line	168
	colm	16
	synt	any
	invoke	2
	line	168
	colm	4
	synt	any
	pret
lab L10
	synt	any
	pfail
	unmark
lab L9
	pnull
	line	170
	colm	1
	synt	any
	pfail
	end
