<root>
<document scada='0' projtype='1' schema='103' license='1,82702381,95CJQR' title='' description='' fcversion='720897' target='PIC.16F.16F877A' >
	<config data='!0,3f72%0,2%2,0%3,0%6,1%7,0%9,3%b,1%8,1%d,1' clkspd='19660800' simspd='1' usewdt='0' constif='0' Use3V3='0' />
	<plugins >
		<dll_models enabled='1' />
	</plugins>
	<supplement use='0' head='' body='' />
	<debug />
	<traces />
	<ghost >
		<FK2 >
			<data name='FK2D0' port='4294967295' pin='4294967295' />
			<data name='FK2D1' port='4294967295' pin='4294967295' />
			<data name='FK2D2' port='4294967295' pin='4294967295' />
			<data name='FK2D3' port='4294967295' pin='4294967295' />
			<data name='FK2D4' port='4294967295' pin='4294967295' />
			<data name='FK2D5' port='4294967295' pin='4294967295' />
			<data name='FK2D6' port='4294967295' pin='4294967295' />
			<data name='FK2D7' port='4294967295' pin='4294967295' />
			<data name='FK2D8' port='4294967295' pin='4294967295' />
			<data name='FK2D9' port='4294967295' pin='4294967295' />
			<data name='FK2D10' port='4294967295' pin='4294967295' />
			<data name='FK2D11' port='4294967295' pin='4294967295' />
			<data name='FK2D12' port='4294967295' pin='4294967295' />
			<data name='FK2D13' port='4294967295' pin='4294967295' />
			<data name='FK2D14' port='4294967295' pin='4294967295' />
			<data name='FK2D15' port='4294967295' pin='4294967295' />
			<data name='FK2A0' port='4294967295' pin='4294967295' />
			<data name='FK2A1' port='4294967295' pin='4294967295' />
			<data name='FK2A2' port='4294967295' pin='4294967295' />
			<data name='FK2A3' port='4294967295' pin='4294967295' />
			<data name='FK2A4' port='4294967295' pin='4294967295' />
			<data name='FK2A5' port='4294967295' pin='4294967295' />
		</FK2>
		<ICD >
			<data name='AnalogPrescaleValue' value='19' />
			<data name='DigitalSampleRate' value='100000' />
			<data name='BreakpointCount' value='8' />
			<data name='CallStackDepthCount' value='8' />
			<data name='ClockPort' value='1' />
			<data name='ClockPin' value='6' />
			<data name='DataPort' value='1' />
			<data name='DataPin' value='7' />
			<data name='UseDefaultPins' value='1' />
			<data name='WrapEnabled' value='1' />
			<data name='CommsDelayOverridden' value='0' />
			<data name='CommsDelay' value='9' />
			<data name='CalculatedCommsDelay' value='9' />
			<data name='AnalogEB2PrescaleValue' value='2' />
			<data name='DigitalEB2SampleRate' value='100000' />
		</ICD>
		<pins >
			<digital A='0' B='0' C='0' D='0' E='0' F='0' G='0' H='0' I='0' J='0' K='0' L='0' M='0' N='0' O='0' P='0' Q='0' R='0' S='0' T='0' U='0' V='0' W='0' X='0' Y='0' Z='0' />
			<analog A='0' B='0' C='0' D='0' E='0' F='0' G='0' H='0' I='0' J='0' K='0' L='0' M='0' N='0' O='0' P='0' Q='0' R='0' S='0' T='0' U='0' V='0' W='0' X='0' Y='0' Z='0' />
		</pins>
	</ghost>
	<components >
		<settings autoimg='0' center='1' unitscale='1' fixedscale='0' fixedx='1' fixedy='1' fixedz='1' headcode='0' />
		<definition guid='e74d7440-8a94-4859-ac1a-e782b568a925' vstate='40' vmin='2' vmaj='1' srcleaf='DSP_Compressor.fcfx' visiblename='Compressor' description='Reduces the dynamic range of a signal by turning down levels above a threshold, with adjustable ratio, attack, release and makeup gain.' category='DSP Operators' category2='' category3='' bIs2dOnly='1' bIs3dOnly='0' bIsWysiwyg='0' catenable='1' author='Matrix Ltd' manuname='' manucode='' sysinfo='1053035' keywords='compressor,limiter,dynamics,agc,gain' dynamic='1' scadaCompatible='1' embeddedCompatible='1' showmacros='1' iconpath='images\dsp-scale.png' />
		<component class_type='root' codename='DSP_Comp' panelId='-1' x='0' y='0' z='0' xsz='1' ysz='12.5' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='0' poslock='0' ancTop='0' ancBottom='0' ancLeft='0' ancRight='0' ancMinX='0' ancMinY='0' comp2dType='0' >
			<resources />
			<properties >
				<property name='Connect To' target='Ref1::LinkTo' typeid='16' hidden='0' locked='0' info='DSP component with output buffer to collect our data from.' filter='000' />
				<property name='Buffer Size' target='BuffSize' typeid='21' hidden='0' locked='0' info='Number of individual elements the buffer can store, default 1.' />
				<property name='Buffer Type' target='BuffType' typeid='16' hidden='0' locked='1' info='Sets the buffer data type. Automatically matches the type of the input buffer.' filter='000unsigned char
001unsigned int
002signed int
003unsigned long
004signed long
005float' />
				<property name='Direction' target='Direction' typeid='16' hidden='0' locked='0' info='Sets the data direction flow of the component' filter='000Right
001Left' />
				<property name='Compressor' folder='property_1' hidden='0' >
					<property name='Processing' target='Processing' typeid='10' hidden='0' locked='1' info='Set automatically from the buffer type.
8 and 16-bit integer buffers use fixed point maths with no floating point library, ideal for 8-bit devices.
32-bit integer and float buffers use floating point maths.' />
					<property name='Signal Centre' target='SignalCentre' typeid='15' hidden='1' locked='0' info='Value representing a zero signal. Levels are measured as the distance from this value.
Use 0 for signed or float buffers, or the mid point for unsigned data.' />
					<property name='Threshold' target='InitThreshold' typeid='15' hidden='1' locked='0' info='Level, measured from the signal centre, above which compression starts.
Uses the same units as the buffer data.' />
					<property name='Ratio' target='InitRatio' typeid='15' hidden='1' locked='0' info='Amount of compression applied above the threshold, e.g. 4 = 4:1.
A level 4dB above the threshold comes out 1dB above it.
1 = no compression, large values (20+) act as a limiter.' />
					<property name='Attack Time (ms)' target='InitAttack' typeid='15' hidden='1' locked='0' info='Time constant for the compressor to react to a signal rising above the threshold. 0 = instant.' />
					<property name='Release Time (ms)' target='InitRelease' typeid='15' hidden='1' locked='0' info='Time constant for the compressor to recover once the signal level falls. 0 = instant.' />
					<property name='Signal Centre' target='IntCentre' typeid='14' hidden='0' locked='0' info='Value representing a zero signal. Levels are measured as the distance from this value.
Use 0 for signed buffers, or the mid point for unsigned data, e.g. 512 for a 10-bit ADC or 128 for 8-bit data.' />
					<property name='Threshold' target='IntThreshold' typeid='14' hidden='0' locked='0' info='Level, measured from the signal centre, above which compression starts. 1 to 65535.
Uses the same units as the buffer data.' />
					<property name='Ratio' target='IntRatio' typeid='16' hidden='0' locked='0' info='Amount of compression applied above the threshold.
Fixed point mode works on the linear signal level: the part of the level above the threshold is divided by the ratio.
Limiter holds the level at the threshold.' filter='0002:1
0014:1
0028:1
00316:1
00432:1
005Limiter' />
					<property name='Attack Shift' target='IntAttackShift' typeid='14' hidden='0' locked='0' info='Attack time constant as a power of two number of samples, 0 to 15.
0 = instant, 1 = 2 samples, 2 = 4 samples, 3 = 8 samples ...
Shifts are used in place of multiplies to keep the maths fast on 8-bit devices.' />
					<property name='Attack Time (ms)' target='IntAttackTime' typeid='15' hidden='0' locked='1' info='Attack time constant resulting from the attack shift at the specified sample rate.' />
					<property name='Release Shift' target='IntReleaseShift' typeid='14' hidden='0' locked='0' info='Release time constant as a power of two number of samples, 0 to 15.
0 = instant, 1 = 2 samples, 2 = 4 samples, 3 = 8 samples ...' />
					<property name='Release Time (ms)' target='IntReleaseTime' typeid='15' hidden='0' locked='1' info='Release time constant resulting from the release shift at the specified sample rate.' />
					<property name='Makeup Gain' target='InitMakeup' typeid='15' hidden='0' locked='0' info='Linear gain multiplier applied after compression to restore the overall level. 1 = no change.
In fixed point mode this is converted to a 1/256 step value when compiled, maximum 32.' />
					<property name='Sample Rate (Hz)' target='SampleRate' typeid='15' hidden='0' locked='0' info='Rate at which samples are passed through the compressor.
Used to convert between attack and release times and samples.' />
					<property name='Ratio Shift' target='IntRatioShift' typeid='14' hidden='1' locked='0' info='' />
					<property name='Makeup Gain Q8' target='IntMakeupQ8' typeid='14' hidden='1' locked='0' info='' />
				</property>
				<property name='Buffer Size In' target='BuffSizeIn' typeid='21' hidden='1' locked='0' info='' />
				<property name='Buffer Type In' target='BuffTypeIn' typeid='21' hidden='1' locked='0' info='' />
			</properties>
			<values >
				<value target='Ref1::LinkTo' data='0' />
				<value target='BuffSize' data='1' />
				<value target='BuffType' data='002' />
				<value target='Direction' data='000' />
				<value target='Processing' data='Fixed point (8/16-bit)' />
				<value target='SignalCentre' data='0.000000' />
				<value target='InitThreshold' data='8192.000000' />
				<value target='InitRatio' data='4.000000' />
				<value target='InitAttack' data='10.000000' />
				<value target='InitRelease' data='100.000000' />
				<value target='IntCentre' data='0' />
				<value target='IntThreshold' data='8192' />
				<value target='IntRatio' data='001' />
				<value target='IntAttackShift' data='3' />
				<value target='IntAttackTime' data='8.000000' />
				<value target='IntReleaseShift' data='7' />
				<value target='IntReleaseTime' data='128.000000' />
				<value target='InitMakeup' data='1.000000' />
				<value target='SampleRate' data='1000.000000' />
				<value target='IntRatioShift' data='2' />
				<value target='IntMakeupQ8' data='256' />
				<value target='BuffSizeIn' data='0' />
				<value target='BuffTypeIn' data='0' />
			</values>
			<events >
				<event class='Simulation' event='Start' target='Ev_Start' />
				<event class='Components' event='Property' target='Ev_Property' />
				<event class='Components' event='Resize' target='Ev_Resize' />
				<event class='Components' event='Initialise' target='Ev_Initialise' />
				<event class='System' event='LoadComplete' target='Ev_LoadComplete' />
				<event class='Compile' event='AddVar' target='Ev_AddVar' />
				<event class='System' event='Timer' target='Ev_Timer' />
			</events>
			<apis >
				<api name='Compress' alt='Compress' type='1' proto='1' />
				<api name='CompressArray' alt='CompressArray' type='1' proto='1' />
				<api name='ControlCompressor' alt='ControlCompressor' type='1' proto='1' />
				<api name='Reset' alt='Reset' type='1' proto='1' />
				<api name='SetThresholdInt' alt='SetThresholdInt' type='1' proto='1' />
				<api name='SetRatioShift' alt='SetRatioShift' type='1' proto='1' />
				<api name='SetAttackShift' alt='SetAttackShift' type='1' proto='1' />
				<api name='SetReleaseShift' alt='SetReleaseShift' type='1' proto='1' />
				<api name='SetMakeupGainQ8' alt='SetMakeupGainQ8' type='1' proto='1' />
				<api name='GetGainQ8' alt='GetGainQ8' type='1' proto='1' />
				<api name='GetEnvelopeInt' alt='GetEnvelopeInt' type='1' proto='1' />
				<api name='SetThreshold' alt='SetThreshold' type='1' proto='1' />
				<api name='SetRatio' alt='SetRatio' type='1' proto='1' />
				<api name='SetAttackTime' alt='SetAttackTime' type='1' proto='1' />
				<api name='SetReleaseTime' alt='SetReleaseTime' type='1' proto='1' />
				<api name='SetMakeupGain' alt='SetMakeupGain' type='1' proto='1' />
				<api name='GetGain' alt='GetGain' type='1' proto='1' />
				<api name='GetEnvelope' alt='GetEnvelope' type='1' proto='1' />
			</apis>
			<variables >
				<variable public='0' >
					<def class_type='variable' name='IndexIn' type='u16' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='IndexOut' type='u16' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='Enabled' type='b1' description='' isconst='0' isHidden='0' isinit='1' usrinit='1' setinit='1' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='IThresh' type='s32' description='' isconst='0' isHidden='0' isinit='1' usrinit='2097152' setinit='2097152' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='IRatio' type='u8' description='' isconst='0' isHidden='0' isinit='1' usrinit='2' setinit='2' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='IAttack' type='u8' description='' isconst='0' isHidden='0' isinit='1' usrinit='3' setinit='3' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='IRelease' type='u8' description='' isconst='0' isHidden='0' isinit='1' usrinit='7' setinit='7' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='IMakeup' type='u16' description='' isconst='0' isHidden='0' isinit='1' usrinit='256' setinit='256' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='IEnv' type='s32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='IGain' type='u16' description='' isconst='0' isHidden='0' isinit='1' usrinit='4096' setinit='4096' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='Initialised' type='b1' description='' isconst='0' isHidden='0' isinit='1' usrinit='0' setinit='0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='Threshold' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='8192.0' setinit='8192.0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='RatioExp' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='-0.75' setinit='-0.75' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='AttackCoef' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='1.0' setinit='1.0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='ReleaseCoef' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='1.0' setinit='1.0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='Makeup' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='1.0' setinit='1.0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='Envelope' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='0.0' setinit='0.0' />
				</variable>
				<variable public='0' >
					<def class_type='variable' name='Gain' type='f32' description='' isconst='0' isHidden='0' isinit='1' usrinit='1.0' setinit='1.0' />
				</variable>
			</variables>
			<macros >
				<macro >
					<flowline name='Compress' description='Collects a single value from the input buffer, applies the compressor and passes the result to the output buffer.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<local name='Val' type='s32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='Level_Q8' type='s32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='Gain_Q12' type='s32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='Sample' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='Level' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='Out' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<command class_type='decision' title='Decision' exp='BuffSizeIn &gt; 1' swap='0' >
							<flowline >
								<command class_type='decision' title='Float input?' exp='BuffTypeIn = 5' swap='0' >
									<flowline >
										<command class_type='calculation' title='Read float sample' >
											<exp exp='.Sample = Ref1 :: get_float (IndexIn)' />
										</command>
									</flowline>
									<flowline >
										<command class_type='calculation' title='Read integer sample' >
											<exp exp='.Val = Ref1 :: get (IndexIn)' />
										</command>
										<command class_type='decision' title='32-bit integer?' exp='BuffTypeIn &gt; 2' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' >
													<exp exp='.Sample = FLOAT .Val' />
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
								</command>
								<command class_type='calculation' title='Calculation' >
									<exp exp='IndexIn = IndexIn + 1' />
								</command>
								<command class_type='decision' title='Decision' exp='IndexIn = BuffSizeIn' swap='0' >
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='IndexIn = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline >
								<command class_type='decision' title='Float input?' exp='BuffTypeIn = 5' swap='0' >
									<flowline >
										<command class_type='calculation' title='Read float sample' >
											<exp exp='.Sample = Ref1 :: get_float (0)' />
										</command>
									</flowline>
									<flowline >
										<command class_type='calculation' title='Read integer sample' >
											<exp exp='.Val = Ref1 :: get (0)' />
										</command>
										<command class_type='decision' title='32-bit integer?' exp='BuffTypeIn &gt; 2' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' >
													<exp exp='.Sample = FLOAT .Val' />
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
								</command>
							</flowline>
						</command>
						<command class_type='decision' title='Fixed point or floating point?' exp='BuffType &lt; 3' swap='0' >
							<flowline >
								<command class_type='decision' title='Compressor enabled?' exp='Enabled' swap='0' >
									<flowline >
										<command class_type='calculation' title='Signal relative to centre' >
											<exp exp='.Val = .Val - IntCentre' />
											<exp exp='.Level_Q8 = .Val' />
										</command>
										<command class_type='decision' title='Absolute level' exp='.Level_Q8 &lt; 0' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' >
													<exp exp='.Level_Q8 = 0 - .Level_Q8' />
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='calculation' title='Level in Q8 fixed point' >
											<exp exp='.Level_Q8 = .Level_Q8 &lt;&lt; 8' />
										</command>
										<command class_type='decision' title='Rising or falling?' exp='.Level_Q8 &gt; IEnv' swap='0' >
											<flowline >
												<command class_type='calculation' title='Attack' >
													<exp exp='IEnv = IEnv + ((.Level_Q8 - IEnv) &gt;&gt; IAttack)' />
												</command>
											</flowline>
											<flowline >
												<command class_type='calculation' title='Release' >
													<exp exp='IEnv = IEnv + ((.Level_Q8 - IEnv) &gt;&gt; IRelease)' />
												</command>
											</flowline>
										</command>
										<command class_type='decision' title='Above threshold?' exp='IEnv &gt; IThresh' swap='0' >
											<flowline >
												<command class_type='calculation' title='Compressed envelope' >
													<exp exp='.Gain_Q12 = IThresh + ((IEnv - IThresh) &gt;&gt; IRatio)' />
												</command>
												<command class_type='decision' title='8-bit data?' exp='BuffType = 0' swap='0' >
													<flowline >
														<command class_type='calculation' title='Gain (Q12), 8-bit envelope fits in 16 bits' >
															<exp exp='.Gain_Q12 = (.Gain_Q12 &lt;&lt; 12) / IEnv' />
														</command>
													</flowline>
													<flowline >
														<command class_type='calculation' title='Gain (Q12), split shift keeps 16-bit data within 32 bits' >
															<exp exp='.Gain_Q12 = (.Gain_Q12 &lt;&lt; 6) / (IEnv &gt;&gt; 6)' />
														</command>
													</flowline>
												</command>
												<command class_type='calculation' title='Apply gain reduction' >
													<exp exp='IGain = .Gain_Q12' />
													<exp exp='.Val = ((.Val * .Gain_Q12) + 2048) &gt;&gt; 12' />
												</command>
											</flowline>
											<flowline >
												<command class_type='calculation' title='Unity gain' >
													<exp exp='IGain = 4096' />
												</command>
											</flowline>
										</command>
										<command class_type='calculation' title='Apply makeup gain' >
											<exp exp='.Val = (((.Val * IMakeup) + 128) &gt;&gt; 8) + IntCentre' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='comment' title='' comment='Saturate to the range of the output buffer type' textarea='12,0,12,0' />
								<command class_type='decision' title='Decision' exp='BuffType = 0' swap='0' >
									<flowline >
										<command class_type='decision' title='Decision' exp='.Val &gt; 255' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' >
													<exp exp='.Val = 255' />
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='decision' title='Decision' exp='.Val &lt; 0' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' >
													<exp exp='.Val = 0' />
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='BuffType = 1' swap='0' >
									<flowline >
										<command class_type='decision' title='Decision' exp='.Val &gt; 65535' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' >
													<exp exp='.Val = 65535' />
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='decision' title='Decision' exp='.Val &lt; 0' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' >
													<exp exp='.Val = 0' />
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='BuffType = 2' swap='0' >
									<flowline >
										<command class_type='decision' title='Decision' exp='.Val &gt; 32767' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' >
													<exp exp='.Val = 32767' />
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='decision' title='Decision' exp='.Val &lt; -32768' swap='0' >
											<flowline >
												<command class_type='calculation' title='Calculation' >
													<exp exp='.Val = -32768' />
												</command>
											</flowline>
											<flowline />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline >
								<command class_type='decision' title='Load property values on first use' exp='Initialised = 0' swap='0' >
									<flowline >
										<command class_type='call' title='User Macro' macro='Prv_Initialise' />
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Compressor enabled?' exp='Enabled' swap='0' >
									<flowline >
										<command class_type='calculation' title='Signal relative to centre' >
											<exp exp='.Sample = .Sample - SignalCentre' />
											<exp exp='.Level = fabs (.Sample)' />
										</command>
										<command class_type='decision' title='Rising or falling?' exp='.Level &gt; Envelope' swap='0' >
											<flowline >
												<command class_type='calculation' title='Attack' >
													<exp exp='Envelope = Envelope + AttackCoef * (.Level - Envelope)' />
												</command>
											</flowline>
											<flowline >
												<command class_type='calculation' title='Release' >
													<exp exp='Envelope = Envelope + ReleaseCoef * (.Level - Envelope)' />
												</command>
											</flowline>
										</command>
										<command class_type='decision' title='Above threshold?' exp='Envelope &gt; Threshold' swap='0' >
											<flowline >
												<command class_type='calculation' title='Gain reduction' >
													<exp exp='Gain = pow (Envelope / Threshold, RatioExp)' />
												</command>
											</flowline>
											<flowline >
												<command class_type='calculation' title='Unity gain' >
													<exp exp='Gain = 1.0' />
												</command>
											</flowline>
										</command>
										<command class_type='calculation' title='Apply gain' >
											<exp exp='.Out = (.Sample * Gain * Makeup) + SignalCentre' />
										</command>
									</flowline>
									<flowline >
										<command class_type='calculation' title='Bypass' >
											<exp exp='.Out = .Sample' />
										</command>
									</flowline>
								</command>
								<command class_type='decision' title='Float output?' exp='BuffType = 5' swap='0' >
									<flowline />
									<flowline >
										<command class_type='comment' title='' comment='Saturate to the range of the output buffer type' textarea='12,0,12,0' />
										<command class_type='decision' title='Decision' exp='BuffType = 3' swap='0' >
											<flowline >
												<command class_type='decision' title='Decision' exp='.Out &gt; 2147483520.0' swap='0' >
													<flowline >
														<command class_type='calculation' title='Calculation' >
															<exp exp='.Out = 2147483520.0' />
														</command>
													</flowline>
													<flowline />
												</command>
												<command class_type='decision' title='Decision' exp='.Out &lt; 0.0' swap='0' >
													<flowline >
														<command class_type='calculation' title='Calculation' >
															<exp exp='.Out = 0.0' />
														</command>
													</flowline>
													<flowline />
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='decision' title='Decision' exp='BuffType = 4' swap='0' >
											<flowline >
												<command class_type='decision' title='Decision' exp='.Out &gt; 2147483520.0' swap='0' >
													<flowline >
														<command class_type='calculation' title='Calculation' >
															<exp exp='.Out = 2147483520.0' />
														</command>
													</flowline>
													<flowline />
												</command>
												<command class_type='decision' title='Decision' exp='.Out &lt; -2147483520.0' swap='0' >
													<flowline >
														<command class_type='calculation' title='Calculation' >
															<exp exp='.Out = -2147483520.0' />
														</command>
													</flowline>
													<flowline />
												</command>
											</flowline>
											<flowline />
										</command>
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Val = fround (.Out, 0)' />
										</command>
									</flowline>
								</command>
							</flowline>
						</command>
						<command class_type='decision' title='Decision' exp='BuffSize &gt; 1' swap='0' >
							<flowline >
								<command class_type='decision' title='Float output?' exp='BuffType = 5' swap='0' >
									<flowline >
										<command class_type='call' title='Write float sample' component='Buff1' macro='put_float' >
											<argument exp='IndexOut' />
											<argument exp='.Out' />
										</command>
									</flowline>
									<flowline >
										<command class_type='call' title='Write integer sample' component='Buff1' macro='put' >
											<argument exp='IndexOut' />
											<argument exp='.Val' />
										</command>
									</flowline>
								</command>
								<command class_type='calculation' title='Calculation' >
									<exp exp='IndexOut = IndexOut + 1' />
								</command>
								<command class_type='decision' title='Decision' exp='IndexOut = BuffSize' swap='0' >
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='IndexOut = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline >
								<command class_type='decision' title='Float output?' exp='BuffType = 5' swap='0' >
									<flowline >
										<command class_type='call' title='Write float sample' component='Buff1' macro='put_float' >
											<argument exp='0' />
											<argument exp='.Out' />
										</command>
									</flowline>
									<flowline >
										<command class_type='call' title='Write integer sample' component='Buff1' macro='put' >
											<argument exp='0' />
											<argument exp='.Val' />
										</command>
									</flowline>
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='CompressArray' description='Passes an entire buffer through the compressor and outputs the compressed version of the buffer at the other end.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<local name='Idx' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='loop' title='Loop' type='0' exp='(.Idx &lt; BuffSizeIn) &amp;&amp; (.Idx &lt; BuffSize)' >
							<flowline >
								<command class_type='call' title='User Macro' macro='Compress' />
								<command class_type='calculation' title='Calculation' >
									<exp exp='.Idx = .Idx + 1' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='ControlCompressor' description='Enables or disables the compressor, enabled by default. When disabled samples pass through unchanged.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='State' type='b1' description='0=Disable, 1=Enable' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Calculation' >
							<exp exp='Enabled = .State' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Reset' description='Clears the envelope follower so the compressor starts again from no gain reduction.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<command class_type='decision' title='Fixed point or floating point?' exp='BuffType &lt; 3' swap='0' >
							<flowline >
								<command class_type='calculation' title='Calculation' >
									<exp exp='IEnv = 0' />
									<exp exp='IGain = 4096' />
								</command>
							</flowline>
							<flowline >
								<command class_type='calculation' title='Calculation' >
									<exp exp='Envelope = 0.0' />
									<exp exp='Gain = 1.0' />
								</command>
							</flowline>
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='SetThreshold' description='Float and 32-bit buffer types only. Sets the level, measured from the signal centre, above which compression is applied.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='Level' type='f32' description='Threshold level in buffer units, must be greater than zero' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<command class_type='decision' title='32-bit and float buffer types only' exp='BuffType &gt; 2' swap='0' >
							<flowline >
								<command class_type='decision' title='Load property values on first use' exp='Initialised = 0' swap='0' >
									<flowline >
										<command class_type='call' title='User Macro' macro='Prv_Initialise' />
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='.Level &lt;= 0.0' swap='0' >
									<flowline >
										<command class_type='calculation' title='Avoid divide by zero' >
											<exp exp='.Level = 0.000001' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='calculation' title='Calculation' >
									<exp exp='Threshold = .Level' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='SetRatio' description='Float and 32-bit buffer types only. Sets the compression ratio, e.g. 4.0 for 4:1. A level 4dB above the threshold comes out 1dB above it. Large ratios act as a limiter.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='Ratio' type='f32' description='Compression ratio, 1.0 or greater. 1.0 = no compression' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<command class_type='decision' title='32-bit and float buffer types only' exp='BuffType &gt; 2' swap='0' >
							<flowline >
								<command class_type='decision' title='Load property values on first use' exp='Initialised = 0' swap='0' >
									<flowline >
										<command class_type='call' title='User Macro' macro='Prv_Initialise' />
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='.Ratio &lt; 1.0' swap='0' >
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Ratio = 1.0' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='calculation' title='Calculation' >
									<exp exp='RatioExp = (1.0 / .Ratio) - 1.0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
									<argument exp='GdiText1' />
									<argument exp='&quot;sText&quot;' />
									<argument exp='FloatToString$ (.Ratio, 1) + &quot;:1&quot;' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='SetAttackTime' description='Float and 32-bit buffer types only. Sets how quickly the compressor responds to a signal rising above the threshold.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='Time_ms' type='f32' description='Attack time constant in milliseconds, 0 = instant' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<command class_type='decision' title='32-bit and float buffer types only' exp='BuffType &gt; 2' swap='0' >
							<flowline >
								<command class_type='decision' title='Load property values on first use' exp='Initialised = 0' swap='0' >
									<flowline >
										<command class_type='call' title='User Macro' macro='Prv_Initialise' />
									</flowline>
									<flowline />
								</command>
								<command class_type='call' title='User Macro' macro='Prv_CalcCoef' >
									<return exp='AttackCoef' />
									<argument exp='.Time_ms' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='SetReleaseTime' description='Float and 32-bit buffer types only. Sets how quickly the compressor recovers once the signal falls.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='Time_ms' type='f32' description='Release time constant in milliseconds, 0 = instant' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<command class_type='decision' title='32-bit and float buffer types only' exp='BuffType &gt; 2' swap='0' >
							<flowline >
								<command class_type='decision' title='Load property values on first use' exp='Initialised = 0' swap='0' >
									<flowline >
										<command class_type='call' title='User Macro' macro='Prv_Initialise' />
									</flowline>
									<flowline />
								</command>
								<command class_type='call' title='User Macro' macro='Prv_CalcCoef' >
									<return exp='ReleaseCoef' />
									<argument exp='.Time_ms' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='SetMakeupGain' description='Float and 32-bit buffer types only. Sets the gain applied after compression to restore the overall signal level.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='Multiplier' type='f32' description='Linear gain multiplier, 1.0 = no change' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<command class_type='decision' title='32-bit and float buffer types only' exp='BuffType &gt; 2' swap='0' >
							<flowline >
								<command class_type='decision' title='Load property values on first use' exp='Initialised = 0' swap='0' >
									<flowline >
										<command class_type='call' title='User Macro' macro='Prv_Initialise' />
									</flowline>
									<flowline />
								</command>
								<command class_type='calculation' title='Calculation' >
									<exp exp='Makeup = .Multiplier' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='GetGain' description='Float and 32-bit buffer types only. Returns the gain applied on the last sample, excluding makeup gain. 1.0 = no gain reduction, 0.5 = halved.' statediag='0' >
						<return name='Return' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<command class_type='decision' title='32-bit and float buffer types only' exp='BuffType &gt; 2' swap='0' >
							<flowline >
								<command class_type='calculation' title='Calculation' >
									<exp exp='.Return = Gain' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='GetEnvelope' description='Float and 32-bit buffer types only. Returns the detected signal level, measured from the signal centre.' statediag='0' >
						<return name='Return' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<command class_type='decision' title='32-bit and float buffer types only' exp='BuffType &gt; 2' swap='0' >
							<flowline >
								<command class_type='calculation' title='Calculation' >
									<exp exp='.Return = Envelope' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='SetThresholdInt' description='8/16-bit integer buffer types only. Sets the level, measured from the signal centre, above which compression is applied.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='Level' type='s32' description='Threshold level in buffer units, 1 to 65535' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='decision' title='8/16-bit integer buffer types only' exp='BuffType &lt; 3' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='.Level &lt; 1' swap='0' >
									<flowline >
										<command class_type='calculation' title='Avoid divide by zero' >
											<exp exp='.Level = 1' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='.Level &gt; 65535' swap='0' >
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Level = 65535' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='calculation' title='Calculation' >
									<exp exp='IThresh = .Level &lt;&lt; 8' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='SetRatioShift' description='8/16-bit integer buffer types only. Sets the compression ratio as a power of two: 0 = 1:1, 1 = 2:1, 2 = 4:1, 3 = 8:1, 4 = 16:1, 5 = 32:1, 24 = limiter.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='Shift' type='u8' description='Ratio = 2 ^ Shift, 0 to 5 or 24 for a limiter' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='decision' title='8/16-bit integer buffer types only' exp='BuffType &lt; 3' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='.Shift &gt; 24' swap='0' >
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Shift = 24' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='calculation' title='Calculation' >
									<exp exp='IRatio = .Shift' />
								</command>
								<command class_type='decision' title='Decision' exp='.Shift = 24' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='GdiText1' />
											<argument exp='&quot;sText&quot;' />
											<argument exp='&quot;Limit&quot;' />
										</command>
									</flowline>
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='GdiText1' />
											<argument exp='&quot;sText&quot;' />
											<argument exp='STRING (1 &lt;&lt; .Shift) + &quot;:1&quot;' />
										</command>
									</flowline>
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='SetAttackShift' description='8/16-bit integer buffer types only. Sets how quickly the compressor responds to a rising signal. The time constant is 2 ^ Shift samples.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='Shift' type='u8' description='0 = instant, 1 = 2 samples, 2 = 4 samples ... 15 = 32768 samples' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='decision' title='8/16-bit integer buffer types only' exp='BuffType &lt; 3' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='.Shift &gt; 15' swap='0' >
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Shift = 15' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='calculation' title='Calculation' >
									<exp exp='IAttack = .Shift' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='SetReleaseShift' description='8/16-bit integer buffer types only. Sets how quickly the compressor recovers once the signal falls. The time constant is 2 ^ Shift samples.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='Shift' type='u8' description='0 = instant, 1 = 2 samples, 2 = 4 samples ... 15 = 32768 samples' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='decision' title='8/16-bit integer buffer types only' exp='BuffType &lt; 3' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='.Shift &gt; 15' swap='0' >
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Shift = 15' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='calculation' title='Calculation' >
									<exp exp='IRelease = .Shift' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='SetMakeupGainQ8' description='8/16-bit integer buffer types only. Sets the gain applied after compression in 1/256 steps, e.g. 256 = x1, 384 = x1.5, 512 = x2.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<param name='Gain' type='u16' description='Makeup gain x 256, 0 to 8192 (x32)' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='decision' title='8/16-bit integer buffer types only' exp='BuffType &lt; 3' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='.Gain &gt; 8192' swap='0' >
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Gain = 8192' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='calculation' title='Calculation' >
									<exp exp='IMakeup = .Gain' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='GetGainQ8' description='8/16-bit integer buffer types only. Returns the gain applied on the last sample in 1/256 steps, excluding makeup gain. 256 = no gain reduction, 128 = halved.' statediag='0' >
						<return name='Return' type='u16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='decision' title='8/16-bit integer buffer types only' exp='BuffType &lt; 3' swap='0' >
							<flowline >
								<command class_type='calculation' title='Calculation' >
									<exp exp='.Return = IGain &gt;&gt; 4' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='GetEnvelopeInt' description='8/16-bit integer buffer types only. Returns the detected signal level, measured from the signal centre.' statediag='0' >
						<return name='Return' type='s32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='decision' title='8/16-bit integer buffer types only' exp='BuffType &lt; 3' swap='0' >
							<flowline >
								<command class_type='calculation' title='Calculation' >
									<exp exp='.Return = IEnv &gt;&gt; 8' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Prv_Initialise' description='Loads the floating point runtime settings from the component properties.' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<command class_type='decision' title='32-bit and float buffer types only' exp='BuffType &gt; 2' swap='0' >
							<flowline >
								<command class_type='calculation' title='Calculation' >
									<exp exp='Initialised = 1' />
									<exp exp='Threshold = InitThreshold' />
									<exp exp='RatioExp = (1.0 / InitRatio) - 1.0' />
									<exp exp='Makeup = InitMakeup' />
									<exp exp='Envelope = 0.0' />
									<exp exp='Gain = 1.0' />
								</command>
								<command class_type='call' title='User Macro' macro='Prv_CalcCoef' >
									<return exp='AttackCoef' />
									<argument exp='InitAttack' />
								</command>
								<command class_type='call' title='User Macro' macro='Prv_CalcCoef' >
									<return exp='ReleaseCoef' />
									<argument exp='InitRelease' />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Prv_CalcCoef' description='Converts a time constant in milliseconds into a one pole smoothing coefficient at the configured sample rate.' statediag='0' >
						<return name='Return' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<param name='Time_ms' type='f32' description='Time constant in milliseconds' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<command class_type='decision' title='32-bit and float buffer types only' exp='BuffType &gt; 2' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='.Time_ms &lt;= 0.0' swap='0' >
									<flowline >
										<command class_type='calculation' title='Instant response' >
											<exp exp='.Return = 1.0' />
										</command>
									</flowline>
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Return = 1.0 - exp (0.0 - 1000.0 / (.Time_ms * SampleRate))' />
										</command>
									</flowline>
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Ev_Start' description='Broadcast to all components that simulation is starting' statediag='0' >
						<return name='Return' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Floating point settings load on first use' >
							<exp exp='Initialised = 0' />
							<exp exp='Enabled = 1' />
						</command>
						<command class_type='calculation' title='Fixed point settings' >
							<exp exp='IThresh = IntThreshold &lt;&lt; 8' />
							<exp exp='IRatio = IntRatioShift' />
							<exp exp='IAttack = IntAttackShift' />
							<exp exp='IRelease = IntReleaseShift' />
							<exp exp='IMakeup = IntMakeupQ8' />
							<exp exp='IEnv = 0' />
							<exp exp='IGain = 4096' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Ev_AddVar' description='Sent to a component to allow dynamic amendment of global constant declarations' statediag='0' >
						<return name='Return' type='u32' description='Non-zero to include definition - initialised on call' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='VarName' type='T8' description='The original Flowcode variable' isconst='0' isHidden='0' isinit='0' usrinit='&quot;&quot;' setinit='' >
							<array size='20' />
						</param>
						<param name='ExpandName' type='T8' description='The expanded variable name' isconst='0' isHidden='0' isinit='0' usrinit='&quot;&quot;' setinit='' >
							<array size='20' />
						</param>
						<param name='Expansion' type='T8*' description='The expanded string to inline to the code' isconst='0' isHidden='0' isinit='0' usrinit='&quot;&quot;' setinit='' >
							<array size='20' />
						</param>
						<local name='cmp' type='u8' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='calculation' title='Calculation' >
							<exp exp='.Return = 1' />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;Initialised&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &lt; 3' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;Threshold&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &lt; 3' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;RatioExp&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &lt; 3' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;AttackCoef&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &lt; 3' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;ReleaseCoef&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &lt; 3' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;Makeup&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &lt; 3' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;Envelope&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &lt; 3' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;Gain&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &lt; 3' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;IThresh&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &gt; 2' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Expansion = &quot;MX_GLOBAL MX_SINT32 &quot; + .ExpandName + &quot; = &quot; + STRING (IntThreshold * 256) + &quot;;\n&quot;' />
										</command>
									</flowline>
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;IRatio&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &gt; 2' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Expansion = &quot;MX_GLOBAL MX_UINT8 &quot; + .ExpandName + &quot; = &quot; + STRING IntRatioShift + &quot;;\n&quot;' />
										</command>
									</flowline>
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;IAttack&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &gt; 2' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Expansion = &quot;MX_GLOBAL MX_UINT8 &quot; + .ExpandName + &quot; = &quot; + STRING IntAttackShift + &quot;;\n&quot;' />
										</command>
									</flowline>
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;IRelease&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &gt; 2' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Expansion = &quot;MX_GLOBAL MX_UINT8 &quot; + .ExpandName + &quot; = &quot; + STRING IntReleaseShift + &quot;;\n&quot;' />
										</command>
									</flowline>
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;IMakeup&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &gt; 2' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline >
										<command class_type='calculation' title='Calculation' >
											<exp exp='.Expansion = &quot;MX_GLOBAL MX_UINT16 &quot; + .ExpandName + &quot; = &quot; + STRING IntMakeupQ8 + &quot;;\n&quot;' />
										</command>
									</flowline>
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;IEnv&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &gt; 2' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;IGain&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffType &gt; 2' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;IndexIn&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffSizeIn = 1' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='Compare$ (.VarName,&quot;IndexOut&quot;,0) = 0' swap='0' >
							<flowline >
								<command class_type='decision' title='Decision' exp='BuffSize = 1' swap='0' >
									<flowline >
										<command class_type='calculation' title='Unused Variable - Don&apos;t add to C' >
											<exp exp='.Return = 0' />
										</command>
									</flowline>
									<flowline />
								</command>
							</flowline>
							<flowline />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Ev_Property' description='Sent when a property has been changed by the User' statediag='0' >
						<return name='Return' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='temp_str' type='T8' description='' isconst='0' isHidden='0' isinit='0' usrinit='&quot;&quot;' setinit='' >
							<array size='20' />
						</local>
						<local name='Calc' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='Div' type='f32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0.0' setinit='' />
						<local name='KneeY' type='s16' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='IVal' type='s32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<local name='Handle' type='h32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='sim' title='Simulation' macro='Tree.GetName' >
							<return exp='.temp_str' />
							<argument exp='this' />
						</command>
						<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
							<argument exp='GdiText2' />
							<argument exp='&quot;sText&quot;' />
							<argument exp='.temp_str' />
						</command>
						<command class_type='sim' title='Simulation' macro='Component.Property.GetValue' >
							<return exp='.temp_str' />
							<argument exp='Ref1' />
							<argument exp='&quot;BuffSize&quot;' />
						</command>
						<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
							<argument exp='this' />
							<argument exp='&quot;BuffSizeIn&quot;' />
							<argument exp='.temp_str' />
						</command>
						<command class_type='sim' title='Simulation' macro='Component.Property.GetValue' >
							<return exp='.temp_str' />
							<argument exp='Ref1' />
							<argument exp='&quot;BuffType&quot;' />
						</command>
						<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
							<argument exp='this' />
							<argument exp='&quot;BuffTypeIn&quot;' />
							<argument exp='.temp_str' />
						</command>
						<command class_type='sim' title='Match output buffer type with input buffer type' macro='Component.Property.SetValue' >
							<argument exp='this' />
							<argument exp='&quot;BuffType&quot;' />
							<argument exp='.temp_str' />
						</command>
						<command class_type='decision' title='Decision' exp='BuffSize &lt; 1' swap='0' >
							<flowline >
								<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
									<argument exp='this' />
									<argument exp='&quot;BuffSize&quot;' />
									<argument exp='1' />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='sim' title='Simulation' macro='Component.Property.CopyValue' >
							<argument exp='this' />
							<argument exp='Buff1' />
							<argument exp='&quot;BuffSize&quot;' />
						</command>
						<command class_type='sim' title='Simulation' macro='Component.Property.CopyValue' >
							<argument exp='this' />
							<argument exp='Buff1' />
							<argument exp='&quot;BuffType&quot;' />
						</command>
						<command class_type='sim' title='Built-in Function' macro='Component.GetParent' >
							<return exp='.Handle' />
							<argument exp='this' />
						</command>
						<command class_type='decision' title='Decision' exp='.Handle' swap='0' >
							<flowline >
								<command class_type='calculation' title='Calculation' >
									<exp exp='.Div = 25.0' />
								</command>
							</flowline>
							<flowline >
								<command class_type='calculation' title='Calculation' >
									<exp exp='.Div = 1.0' />
								</command>
							</flowline>
						</command>
						<command class_type='decision' title='Decision' exp='Direction' swap='0' >
							<flowline >
								<command class_type='sim' title='Built-in Function' macro='Panel.Position.MoveTo' >
									<argument exp='Ref1' />
									<argument exp='35.0 / .div' />
									<argument exp='0.0' />
									<argument exp='1.0 / .div' />
								</command>
								<command class_type='sim' title='Built-in Function' macro='Component.Property.SetValue' >
									<argument exp='Ref1' />
									<argument exp='&quot;Orientation&quot;' />
									<argument exp='2' />
								</command>
								<command class_type='sim' title='Built-in Function' macro='Panel.Position.MoveTo' >
									<argument exp='Buff1' />
									<argument exp='-35.0 / .div' />
									<argument exp='0.0' />
									<argument exp='1.0 / .div' />
								</command>
								<command class_type='sim' title='Built-in Function' macro='Component.Property.SetValue' >
									<argument exp='Buff1' />
									<argument exp='&quot;Orientation&quot;' />
									<argument exp='2' />
								</command>
							</flowline>
							<flowline >
								<command class_type='sim' title='Built-in Function' macro='Panel.Position.MoveTo' >
									<argument exp='Ref1' />
									<argument exp='-35.0 / .div' />
									<argument exp='0.0' />
									<argument exp='1.0 / .div' />
								</command>
								<command class_type='sim' title='Built-in Function' macro='Component.Property.SetValue' >
									<argument exp='Ref1' />
									<argument exp='&quot;Orientation&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Built-in Function' macro='Panel.Position.MoveTo' >
									<argument exp='Buff1' />
									<argument exp='35.0 / .div' />
									<argument exp='0.0' />
									<argument exp='1.0 / .div' />
								</command>
								<command class_type='sim' title='Built-in Function' macro='Component.Property.SetValue' >
									<argument exp='Buff1' />
									<argument exp='&quot;Orientation&quot;' />
									<argument exp='0' />
								</command>
							</flowline>
						</command>
						<command class_type='decision' title='Decision' exp='SampleRate &lt;= 0.0' swap='0' >
							<flowline >
								<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
									<argument exp='this' />
									<argument exp='&quot;SampleRate&quot;' />
									<argument exp='1000.0' />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Decision' exp='InitMakeup &lt; 0.0' swap='0' >
							<flowline >
								<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
									<argument exp='this' />
									<argument exp='&quot;InitMakeup&quot;' />
									<argument exp='0.0' />
								</command>
							</flowline>
							<flowline />
						</command>
						<command class_type='decision' title='Fixed point or floating point?' exp='BuffType &lt; 3' swap='0' >
							<flowline >
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;SignalCentre&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;InitThreshold&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;InitRatio&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;InitAttack&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;InitRelease&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntCentre&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntThreshold&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntRatio&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntAttackShift&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntAttackTime&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntReleaseShift&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntReleaseTime&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
									<argument exp='this' />
									<argument exp='&quot;Processing&quot;' />
									<argument exp='&quot;Fixed point (8/16-bit)&quot;' />
								</command>
								<command class_type='decision' title='Decision' exp='IntThreshold &lt; 1' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;IntThreshold&quot;' />
											<argument exp='1' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='IntThreshold &gt; 65535' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;IntThreshold&quot;' />
											<argument exp='65535' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='IntAttackShift &lt; 0' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;IntAttackShift&quot;' />
											<argument exp='0' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='IntAttackShift &gt; 15' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;IntAttackShift&quot;' />
											<argument exp='15' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='calculation' title='Time constant in ms' >
									<exp exp='.Calc = FLOAT (1 &lt;&lt; IntAttackShift) * 1000.0 / SampleRate' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
									<argument exp='this' />
									<argument exp='&quot;IntAttackTime&quot;' />
									<argument exp='.Calc' />
								</command>
								<command class_type='decision' title='Decision' exp='IntReleaseShift &lt; 0' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;IntReleaseShift&quot;' />
											<argument exp='0' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='IntReleaseShift &gt; 15' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;IntReleaseShift&quot;' />
											<argument exp='15' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='calculation' title='Time constant in ms' >
									<exp exp='.Calc = FLOAT (1 &lt;&lt; IntReleaseShift) * 1000.0 / SampleRate' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
									<argument exp='this' />
									<argument exp='&quot;IntReleaseTime&quot;' />
									<argument exp='.Calc' />
								</command>
								<command class_type='decision' title='Limiter?' exp='IntRatio = 5' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;IntRatioShift&quot;' />
											<argument exp='24' />
										</command>
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='GdiText1' />
											<argument exp='&quot;sText&quot;' />
											<argument exp='&quot;Limit&quot;' />
										</command>
										<command class_type='calculation' title='Calculation' >
											<exp exp='.KneeY = 0' />
										</command>
									</flowline>
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;IntRatioShift&quot;' />
											<argument exp='IntRatio + 1' />
										</command>
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='GdiText1' />
											<argument exp='&quot;sText&quot;' />
											<argument exp='STRING (1 &lt;&lt; (IntRatio + 1)) + &quot;:1&quot;' />
										</command>
										<command class_type='calculation' title='Calculation' >
											<exp exp='.KneeY = 90 &gt;&gt; (IntRatio + 1)' />
										</command>
									</flowline>
								</command>
								<command class_type='decision' title='Keep the Q8 maths within 32 bits' exp='InitMakeup &gt; 32.0' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;InitMakeup&quot;' />
											<argument exp='32.0' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='calculation' title='Makeup gain in Q8 fixed point' >
									<exp exp='.IVal = fround (InitMakeup * 256.0, 0)' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
									<argument exp='this' />
									<argument exp='&quot;IntMakeupQ8&quot;' />
									<argument exp='.IVal' />
								</command>
							</flowline>
							<flowline >
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;SignalCentre&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;InitThreshold&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;InitRatio&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;InitAttack&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;InitRelease&quot;' />
									<argument exp='1' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntCentre&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntThreshold&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntRatio&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntAttackShift&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntAttackTime&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntReleaseShift&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetVisible' >
									<argument exp='this' />
									<argument exp='&quot;IntReleaseTime&quot;' />
									<argument exp='0' />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
									<argument exp='this' />
									<argument exp='&quot;Processing&quot;' />
									<argument exp='&quot;Floating point&quot;' />
								</command>
								<command class_type='decision' title='Decision' exp='InitRatio &lt; 1.0' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;InitRatio&quot;' />
											<argument exp='1.0' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='InitThreshold &lt;= 0.0' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;InitThreshold&quot;' />
											<argument exp='1.0' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='InitAttack &lt; 0.0' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;InitAttack&quot;' />
											<argument exp='0.0' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='decision' title='Decision' exp='InitRelease &lt; 0.0' swap='0' >
									<flowline >
										<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
											<argument exp='this' />
											<argument exp='&quot;InitRelease&quot;' />
											<argument exp='0.0' />
										</command>
									</flowline>
									<flowline />
								</command>
								<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
									<argument exp='GdiText1' />
									<argument exp='&quot;sText&quot;' />
									<argument exp='FloatToString$ (InitRatio, 1) + &quot;:1&quot;' />
								</command>
								<command class_type='calculation' title='Slope above the knee' >
									<exp exp='.KneeY = 90.0 / InitRatio' />
								</command>
							</flowline>
						</command>
						<command class_type='sim' title='Simulation' macro='Component.Property.SetValue' >
							<argument exp='GdiComplexShape1' />
							<argument exp='&quot;sCode&quot;' />
							<argument exp='&quot;SS,-90,-90\nAL,0,0\nAL,90,&quot; + STRING .KneeY' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Ev_Initialise' description='Initialisation routine for the component once the component is linked to its parent' statediag='0' >
						<return name='Return' type='u32' description='Non-zero to prevent initialisation' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='call' title='User Macro' macro='Ev_Property' />
					</flowline>
				</macro>
				<macro >
					<flowline name='Ev_Resize' description='Sent to the mouse target when the user has altered the position of a component child' statediag='0' >
						<return name='Return' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='Component' type='h32' description='The component that has been altered' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='PrevPos' type='h32' description='The position of the object before the start of positioning' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='Final' type='b1' description='True if this is the end of a drag operation' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='sim' title='Built-in Function' macro='System.Forward' >
							<argument exp='Ref1' />
						</command>
						<command class_type='sim' title='Built-in Function' macro='System.Forward' >
							<argument exp='Buff1' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Ev_LoadComplete' description='Broadcast after a project has finished loading' statediag='0' >
						<return name='Return' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='sim' title='Built-in Function' macro='System.TimerStart' >
							<argument exp='0' />
							<argument exp='6000' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Ev_Timer' description='Called back on the panel command System.TimerStart' statediag='0' >
						<return name='Return' type='u32' description='' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<param name='TimerID' type='u32' description='The identifier passed to the System.TimerStart panel command' isconst='0' isHidden='0' isinit='0' usrinit='0' setinit='' />
						<command class_type='sim' title='Built-in Function' macro='System.Forward' >
							<argument exp='Ref1' />
						</command>
						<command class_type='sim' title='Built-in Function' macro='System.Forward' >
							<argument exp='Buff1' />
						</command>
					</flowline>
				</macro>
				<macro >
					<flowline name='Main' description='' statediag='0' >
						<return name='Return' type='v0' description='' isconst='0' isHidden='0' isinit='0' usrinit='' setinit='' />
						<command class_type='loop' title='Loop' type='0' exp='1' >
							<flowline >
								<command class_type='call' title='User Macro' macro='Compress' />
							</flowline>
						</command>
					</flowline>
				</macro>
			</macros>
			<component class_type='ref' guid='1e4a092c-cb7c-4e40-863c-0a64df7d297c' vmin='0' vmaj='1' codename='Ref1' panelId='-1' x='-35' y='0' z='1' xsz='24' ysz='24' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='0' ancTop='0' ancBottom='0' ancLeft='0' ancRight='0' ancMinX='0' ancMinY='0' comp2dType='0' >
				<resources />
				<properties />
				<values >
					<value target='LinkTo' data='0' />
					<value target='SubName' data='' />
					<value target='SubHandle' data='0' />
					<value target='BuffSize' data='0' />
					<value target='BuffType' data='0' />
					<value target='Console' data='0' />
					<value target='Text' data='In' />
					<value target='BufferHandle' data='0' />
					<value target='Orientation' data='0' />
					<value target='DSPRef' data='1' />
					<value target='LinkName' data='' />
					<value target='Connection1::nStyle' data='0' />
					<value target='Connection1::fLineThickness' data='2.100000' />
					<value target='Connection1::colOutline' data='0' />
					<value target='Loading' data='0' />
					<value target='TimerRetry' data='0' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
				<connection0 >
					<conncomp source='DSP_Comp.Ref1.Connection1' target='' />
				</connection0>
			</component>
			<component class_type='ref' guid='08d7f73a-6b9f-47fa-aa34-b306613d1e51' vmin='0' vmaj='1' codename='Buff1' panelId='-1' x='35' y='0' z='1' xsz='24' ysz='24' zsz='1' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='0' ancTop='0' ancBottom='0' ancLeft='0' ancRight='0' ancMinX='0' ancMinY='0' comp2dType='0' >
				<resources />
				<properties />
				<values >
					<value target='Val' data='' />
					<value target='ParentName' data='DSP_Comp' />
					<value target='BuffSize' data='1' />
					<value target='BuffType' data='0' />
					<value target='DRTrace' data='1' />
					<value target='DRTOld' data='1' />
					<value target='Console' data='821' />
					<value target='ConsoleSize' data='17' />
					<value target='Text' data='Out' />
					<value target='Orientation' data='0' />
					<value target='Enabled' data='1' />
					<value target='DSPBuffer' data='1' />
					<value target='PanelIdx' data='-1' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
				<connection0 >
					<conncomp source='DSP_Comp.Buff1.Connection1' target='' />
				</connection0>
			</component>
			<component class_type='GdiShape' codename='GdiShape1' panelId='-1' x='0' y='0' z='0' xsz='20' ysz='20' zsz='0' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='8' ancTop='0' ancBottom='0' ancLeft='0' ancRight='0' ancMinX='0' ancMinY='0' comp2dType='46' >
				<resources />
				<properties />
				<values >
					<value target='nType' data='  3' />
					<value target='iSubStyle' data='0' />
					<value target='iRounding' data='25' />
					<value target='colFill' data='16777215' />
					<value target='colFillGradient' data='16777215' />
					<value target='nGradientStyle' data='0' />
					<value target='nFillOpacity' data='1.0' />
					<value target='nStyle' data='0' />
					<value target='bFixedScale' data='0' />
					<value target='fThickness' data='1.00000' />
					<value target='iOutlineSize' data='1' />
					<value target='colOutline' data='0' />
					<value target='colOutlineGradient' data='0' />
					<value target='nOutlineStyle' data='0' />
					<value target='nOutlineOpacity' data='1.0' />
					<value target='bTooltipEnable' data='0' />
					<value target='sTooltipText' data='' />
					<value target='sTooltipDesc' data='' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
			<component class_type='GdiComplexShape' codename='GdiComplexShape1' panelId='-1' x='0' y='3' z='0.5' xsz='12' ysz='10' zsz='0' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='8' ancTop='0' ancBottom='0' ancLeft='0' ancRight='0' ancMinX='0' ancMinY='0' comp2dType='46' >
				<resources />
				<properties />
				<values >
					<value target='sCode' data='SS,-90,-90
AL,0,0
AL,90,22' />
					<value target='bClosed' data='0' />
					<value target='nStyle' data='0' />
					<value target='fThickness' data='1.00000' />
					<value target='colOutline' data='0' />
					<value target='colOutlineGradient' data='0' />
					<value target='nOutlineStyle' data='0' />
					<value target='colFill' data='14803425' />
					<value target='colFillGradient' data='16777215' />
					<value target='nGradientStyle' data='0' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
			<component class_type='GdiText' codename='GdiText1' panelId='-1' x='0' y='-5.5' z='0.25' xsz='10' ysz='6' zsz='0' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='8' ancTop='0' ancBottom='0' ancLeft='0' ancRight='0' ancMinX='0' ancMinY='0' comp2dType='46' >
				<resources />
				<properties />
				<values >
					<value target='sText' data='4.0:1' />
					<value target='bWordWrap' data='0' />
					<value target='nHorizontalAlignment' data='2' />
					<value target='nVerticalAlignment' data='2' />
					<value target='nAngle' data='0' />
					<value target='fntFamily' data='Calibri' />
					<value target='bFixedScale' data='0' />
					<value target='dScale' data='0.500000' />
					<value target='bScaleWidth' data='0' />
					<value target='iFontSize' data='12' />
					<value target='bBold' data='0' />
					<value target='bItalic' data='0' />
					<value target='bUnderline' data='0' />
					<value target='bStrikethrough' data='0' />
					<value target='colTextColour' data='0' />
					<value target='colTextGradient' data='9868950' />
					<value target='nGradient' data='0' />
					<value target='nTextOpacity' data='1.0' />
					<value target='colBackgroundColour' data='-1' />
					<value target='colBackgroundGradient' data='-1' />
					<value target='nBackgroundGradient' data='0' />
					<value target='nBackgroundOpacity' data='1.0' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
			<component class_type='GdiShape' codename='GdiShape2' panelId='-1' x='0' y='-25' z='-1.1' xsz='20' ysz='15' zsz='0' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='8' ancTop='0' ancBottom='0' ancLeft='0' ancRight='0' ancMinX='0' ancMinY='0' comp2dType='46' >
				<resources />
				<properties />
				<values >
					<value target='nType' data='  0' />
					<value target='iSubStyle' data='0' />
					<value target='iRounding' data='25' />
					<value target='colFill' data='3552822' />
					<value target='colFillGradient' data='16777215' />
					<value target='nGradientStyle' data='0' />
					<value target='nFillOpacity' data='1.0' />
					<value target='nStyle' data='0' />
					<value target='bFixedScale' data='0' />
					<value target='fThickness' data='1.00000' />
					<value target='iOutlineSize' data='1' />
					<value target='colOutline' data='7895160' />
					<value target='colOutlineGradient' data='16777215' />
					<value target='nOutlineStyle' data='  3' />
					<value target='nOutlineOpacity' data='1.0' />
					<value target='bTooltipEnable' data='0' />
					<value target='sTooltipText' data='' />
					<value target='sTooltipDesc' data='' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
			<component class_type='GdiText' codename='GdiText2' panelId='-1' x='0' y='-40' z='0' xsz='10' ysz='1' zsz='0' xang='0' yang='0' zang='0' xquat='0' yquat='0' zquat='0' wquat='1' visible='1' scadavisible='1' interactive='1' solid='1' layer='1' poslock='8' ancTop='0' ancBottom='0' ancLeft='0' ancRight='0' ancMinX='0' ancMinY='0' comp2dType='46' >
				<resources />
				<properties />
				<values >
					<value target='sText' data='DSP_Comp' />
					<value target='bWordWrap' data='0' />
					<value target='nHorizontalAlignment' data='2' />
					<value target='nVerticalAlignment' data='2' />
					<value target='nAngle' data='0' />
					<value target='fntFamily' data='Calibri' />
					<value target='bFixedScale' data='0' />
					<value target='dScale' data='1.6' />
					<value target='bScaleWidth' data='1' />
					<value target='iFontSize' data='12' />
					<value target='bBold' data='0' />
					<value target='bItalic' data='0' />
					<value target='bUnderline' data='0' />
					<value target='bStrikethrough' data='0' />
					<value target='colTextColour' data='16777215' />
					<value target='colTextGradient' data='9868950' />
					<value target='nGradient' data='0' />
					<value target='nTextOpacity' data='1.0' />
					<value target='colBackgroundColour' data='-1' />
					<value target='colBackgroundGradient' data='-1' />
					<value target='nBackgroundGradient' data='0' />
					<value target='nBackgroundOpacity' data='1.0' />
				</values>
				<events />
				<apis />
				<variables />
				<macros />
			</component>
		</component>
	</components>
	<scadaresourcelookup />
	<keymap />
	<panel2d shadows='0' lighting='0' brightness='0' >
		<background rgb='9737364' img='' style='0' />
		<camera xe='2.68548' ye='-0.418587' ze='171.256' xt='2.68548' yt='-0.418587' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<viewport dx='242' dy='205' zoom='170.984' fix_topleft='0' />
		<page x='1000' y='1000' show='0' rgb='0' />
		<winpos ID='7005' RectRecentFloat='1075,-496,1345,-193' RectRecentDocked='966,141,1470,1013' RecentFrameAlignment='16384' RecentRowIndex='0' IsFloating='1' MRUWidth='32767' PinState='0' IsMaximized='0' IsVisible='1' />
	</panel2d>
	<panel3d shadows='0' lighting='0' brightness='0' perspective='1' >
		<background rgb='8409120' img='' style='0' />
		<table rgb='7360576' img='' style='0' size='25' />
		<camera xe='-0.204885' ye='-0.0111113' ze='95.0856' xt='-0.204885' yt='-0.0111113' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<camerakey0 xe='0' ye='0' ze='300' xt='0' yt='0' zt='0' xquat='0' yquat='0' zquat='0' wquat='1' />
		<camerakey1 xe='-3.67394e-14' ye='0' ze='-300' xt='0' yt='0' zt='0' xquat='0' yquat='1' zquat='0' wquat='6.12323e-17' />
		<camerakey2 xe='0' ye='-300' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.707107' yquat='0' zquat='0' wquat='0.707107' />
		<camerakey3 xe='-3.67394e-14' ye='300' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-4.32978e-17' yquat='0.707107' zquat='0.707107' wquat='4.32978e-17' />
		<camerakey4 xe='-300' ye='-6.66134e-14' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.5' yquat='0.5' zquat='0.5' wquat='0.5' />
		<camerakey5 xe='300' ye='-6.66134e-14' ze='6.66134e-14' xt='0' yt='0' zt='0' xquat='-0.5' yquat='-0.5' zquat='-0.5' wquat='0.5' />
		<camerakey6 xe='-173.205' ye='-173.205' ze='173.205' xt='0' yt='0' zt='0' xquat='-0.424708' yquat='0.17592' zquat='0.339851' wquat='0.820473' />
		<winpos ID='7004' RectRecentFloat='927,365,1413,740' RectRecentDocked='0,0,246,872' RecentFrameAlignment='16384' RecentRowIndex='0' IsFloating='0' MRUWidth='32767' PinState='0' IsMaximized='0' IsVisible='0' />
	</panel3d>
	<panels2d count='0' />
	<layout >
		<view type='0' name='Compress' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='CompressArray' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='ControlCompressor' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Reset' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='SetThreshold' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='SetRatio' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='SetAttackTime' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='SetReleaseTime' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='SetMakeupGain' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='GetGain' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='GetEnvelope' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='SetThresholdInt' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='SetRatioShift' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='SetAttackShift' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='SetReleaseShift' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='SetMakeupGainQ8' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='GetGainQ8' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='GetEnvelopeInt' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Prv_Initialise' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Prv_CalcCoef' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Ev_Start' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Ev_AddVar' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Ev_Property' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Ev_Initialise' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Ev_Resize' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Ev_LoadComplete' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Ev_Timer' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
		<view type='0' name='Main' mode='0' placement='LAAAAAAAAAABAAAA---------------------wUAAAAYAAAA7AMAAGMDAAA' zoom='75' scrollx='0' scrolly='0' flags='0' />
	</layout>
</document>
</root>
