P. 1
a Practical Issues

a Practical Issues

|Views: 2|Likes:
Published by Vasanth Janmohan

More info:

Published by: Vasanth Janmohan on Nov 28, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

05/13/2014

pdf

text

original

I have a src like 3 column

ID NAME ADDRS
1 A 73
1 A NAGAR
1 A CHENNAI

My req o/p is

ID NAME ADDRS
1 A 73 NAGAR CHENNAI

I am using one logiic but is not getting o/p clearly
1) group by both id and name
2) v¸port÷iiI(addrs÷prev,addrs,,v¸port, addrs)
3) prev÷addrs
iI i am wrong correct and give some correct logic with screen shot.
the mapping Ilow should be like below.

SRC--~SQ--~SRT( By ID)--~EXP--~AGG--~TGT

In sorter sort data by ID.

in expression use below logic
input ports
in¸ID
in¸NAME

Variable ports

v¸NAME÷IIF(v¸ID÷in¸ID,v¸NAME,,in¸NAME,in¸NAME)
v¸ID÷in¸ID
out¸NAME÷v¸NAME
in aggregator group by id create out put port
out¸NAME÷MAX(NAME which is coming Irom expression)
Let me know iI Iurther details required.
When we sort the data using ID as key the order oI ADDR change how we can handle this ?

Eg. ADDR
Nagar
13
Chennai
For this we can't do any thing. But iI you have any identiIier in source to consider in order we
can use that one also in sort else based on date in source we can identiIy this.
In expression the port order should be like below.

in¸ID
In¸name
v¸ADDR÷IIF(V¸ID ÷ ID, V¸ADDR ,,' ',,ADDRS, ADDRS)
v¸ID÷ID
O¸ADDR÷v¸ADDR

so v¸ID port should be aIter v¸ADDR variable port.
No need to use aggregate Iunction (MAX Iun) in the above scenario. Justy pass O¸ADDR to
downstream transIomation and group by ID.
Logic: Aggregator transIormation passes the last record oI each group by deIault.

2. I am Iinding diIIiculty in Iinding "Second Highest" salary using "Rank
Transformation", Where I apply Rank and then Filter based on Rank.
In below sample data - 4500 is second highest salary which shows Rank '3', hence unable to
apply logic Ior 2, and in general terms 5, etc...
RANK()

ID NAME SALARY RANK
===============================
1 Mukesh 5000 1
2 Suresh 5000 1
3 Ganesh 4500 3
4 Mahesh 4000 4
5 Rakesh 4000 4
6 Jitesh 3000 6


DENSE_RANK solves the purpose but we don't have this Iunction in InIormatica Tool.

DENSE_RANK()

ID NAME SALARY RANK
===============================
1 Mukesh 5000 1
2 Suresh 5000 1
3 Ganesh 4500 2
4 Mahesh 4000 3
5 Rakesh 4000 3
6 Jitesh 3000 4

Please help me Iinding out second highest salary, in this case and in general terms.

Try the below logic and let me know the outcome.

1) In the source DB Use order by Ior the salaray column (or) order by salary using Sorter
TransIormation.
2)Create the Iollowing port in the expression TX
Salary (inputport)
V¸Rank ÷ IIF(Salary!÷V¸Salary,Vrank¹1,Vrank)
V¸Salary ÷ Salary
Output ÷ V¸Rank
3)Then allow only the records which is having Rank ÷ 2 using Filter transIormation

SQ -~ Sorter -~ Exp -~ ......
In Expression TransIormation, I am using as given in screenshot.


Please correct, iI I am wrong.....
Please change the port order. like below....

v¸Rank
v¸SAL
o¸SAL

I Iollowed the Port sequence (v_Rank, v_SAL, o_SAL) as mentioned.
Here o¸SAL is connected to Port (SAL) in Target Table.
But when I query the Target Table I am getting value ZERO (0).

Please help me understanding this.

Please try this

SRC--~SQ--~SRT--~EXP--~FIL--~TGT

SRC

EMPNO
ENAME
SAL

SQ--~
EMPNO
ENAME
SAL
SRT--~
EMPNO
ENAME
SAL
Here sort data by SAL
EXP--~

in¸EMPNO
in¸ENAME
in¸SAL
create variable ports
v¸RANK÷IIF(in¸SAL÷v¸PRE¸SAL,v¸RANK,v¸RANK¹1)
v¸PRE¸SAL÷in¸SAL
Create out put port
out¸RANK÷v¸RANK
From expression take Iollowing ports to Iilter transIormation

in¸EMPNO
in¸ENAME
in¸SAL
out¸RANK
Apply Iilter out¸RANK÷2
connect
in¸EMPNO
in¸ENAME
in¸SAL
to target.
I am trying to Iind out second highest salary oI each department (10, 20, 30)
(See screenshot of SQL Plus of previous post).
Hence, I should get Iollowing rows in Target Table
EMPNO ENAME SAL
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
7782 CLARK 2450
7566 JONES 2975
7499 ALLEN 1600
I proceeded as per your suggestion (Filter was not aplied) and try to see the output in Target
Table. I Iound Rank Ior all the values.
Source --~ SQ --~ Sorter (EPTNO SC & SAL SC) --~ Exp (Your logic) --~ Target Table
What could be the reason Ior that?

rom the above example as per the mapping Ilow data will be like below
SRC--~SQ--~SRT--~EXP--~FIL--~TGT
at SRC and SQ
Data looks like below
ID NAME SALARY DEPT
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
1 Mukesh 5000 10
2 Suresh 5000 20
3 Ganesh 4500 30
4 Mahesh 4000 10
5 Rakesh 4000 20
6 Jitesh 3000 30
7 Mahesh 3000 10
8 Rakesh 3000 20
9 Jitesh 2000 30
AIter sorter data looks like blow
ID NAME SALARY DEPT
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
1 Mukesh 5000 10
4 Mahesh 4000 10
7 Mahesh 3000 10
2 Suresh 5000 20
5 Rakesh 4000 20
8 Rakesh 3000 20
3 Ganesh 4500 30
6 Jitesh 3000 30
9 Jitesh 2000 30

In expression Ior Iirst record
in¸EMPNO÷1
in¸ENAME÷Mukesh
in¸DEPTNO÷10
in¸SAL÷5000
v¸RANK÷IIF(in¸DEPT·~v¸PRE¸DEPT,1,IIF(in¸SAL÷v¸PRE¸SAL,1,v¸RANK¹1)) Ior this
value calculation
in¸DEPT equal to 10 and v¸PRE¸DEPT is 0 so condition true and it will return 1 , inthis
scenario it won't check Ior sal
v¸PRE¸DEPT÷10 this value 10 will assign only aIter v¸RANK caluction so now
v¸PRE¸DEPT÷10
v¸PRE¸SAL÷5000
out¸RANK÷1

In the same way Ior second record

in¸EMPNO÷4
in¸ENAME÷Mukesh
in¸DEPTNO÷10
in¸SAL÷4000
v¸RANK÷IIF(in¸DEPT·~v¸PRE¸DEPT,1,IIF(in¸DEPT÷v¸PRE¸SAL,1,v¸RANK¹1))
in¸DEPT is equal to v¸PRE¸DEPT so the condition in¸DEPT·~v¸PRE¸DEPT Ialse and it will
go to second iI statement, in¸SAL÷v¸PRE¸SAL(4000÷5000) this condition Ialse so
v¸RANK¹1÷1¹1÷2.
v¸PRE¸DEPT÷10
v¸PRE¸SAl÷4000
out¸RANK÷2
like this.......
Iinal out put Irom expression is like below
ID NAME SALARY DEPT RANK
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
1 Mukesh 5000 10 1
4 Mahesh 4000 10 2
7 Mahesh 3000 10 3
2 Suresh 5000 20 1
5 Rakesh 4000 20 2
8 Rakesh 3000 20 3
3 Ganesh 4500 30 1
6 Jitesh 3000 30 2
9 Jitesh 2000 30 3
InIilter RANK÷2 then out put Irom Iilter is
ID NAME SALARY DEPT RANK
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
4 Mahesh 4000 10 2
5 Rakesh 4000 20 2
6 Jitesh 3000 30 2
Please go through my mapping and correct me where I am going wrong....
Still I am getting Rank Value -
Mapping

Expression TransIormation properties: -


I will apply Filter TransIormation once I start getting correct Rank values....
Please change the port order in expression transIormation like below
in¸EMPNO
in¸ENAME
in¸SAL
in¸DEPT¸NO
v¸RANK÷IIF(in¸DEPT¸NO·~v¸DEPT¸NO,1,IIF(in¸SAL÷v¸SAL,v¸RANK,v¸RANK¹1))
v¸SAL÷in¸SAL
v¸DEPT¸NO÷in¸DEPT¸NO
o¸RANK÷v¸RANK
Actually inIormatica will process the ports in the Iollowing order
1) input port
2) Variable port as in the order
3) Output port

So in your logic you are suppose to check the DEPTNO and salaray oI the employee in iII
condition beIore the assignment oI V¸SAL and V¸DEPTNO.
Please change the port order as Veeru mentioned
Move the v¸DEPT¸NO÷in¸DEPT¸NO and v¸SAL÷in¸SAL aIter the V¸RANK port
I was doing some mistake in Expression TransIormation. There I mentioned Expression as -
"v_RANK÷IIF......".
When I removed "v_RANK÷" it started working Iine.
Order oI the port as Iollows: - in_EMPNO, in_ENAME, in_EPTNO, in_SAL, v_RANK,
v_SAL, v_EPTNO, o_RANK
There was one mistake in the logic
IIF(in_EPT<>v_EPT,1,IIF(in_SAL÷v_SAL,1,v_RANK+1)) which was suggested to me.
(See the output in Red Window)
I modiIied this logic to
IIF(in_EPTNO<>v_EPTNO,1,IIF(in_SAL÷v_SAL,v_Rank,v_Rank+1)) and got the
result what I wanted. (See the output in Green Window)



Ŧ How can Ì calculate the sum or average of salaries for each department without using aggregator
transformation in my mapping.

My source and target are files.
we can do this with the help oI variables in the expression transIrmation.

First step is to sort the data based on dept number.
In expression, add three variable ports and one output port -
v¸dept ÷ o¸dept
i¸dept ÷ ·input Irom prev transoIrmation~
o¸dept ÷ v¸dept
v¸sal ÷ IIF(v¸dept ÷ i¸dept, sal¹v¸sal, sal)
out¸sal ÷ v¸sal
check iI the v¸dept ÷ i¸dept, iI they are same then add the salaries. II there is a change in dept
number then replace the v¸sal with the sal.
Second step is to sort the data based on dept num,salaries in descending order. And in next
expression, use the same logic to pick the Iirst row(and Iilter all other rows Ior that dept
number).
In expression2, create 3 variable ports.
v¸dept ÷ o¸dept
i¸dept ÷ ·input Irom prev transoIrmation~
o¸dept ÷ i¸dept
FLAG ÷ IIF(v¸dept ÷ i¸dept , 'N' , 'Y')
Finally Iilter all the rows with FLAG as "Y".
Let me know iI you need more details.
You can skip second step ie one EXP and sorter just by adding a rank trans. Select group by on
dept and rank based on column sum¸sal which is a output port in EXP1.
(by deIault rank will output TOP 1 row(sum oI sal) ) oI each dept.
4. I am newbie to inIormatica and need helps and suggestions on unknown dimension key.
- Should I use unknown dimension row or unknow dimension member?
- What is the diIIerence?
- Should i append unknow dimension row aIter each loading?
- Where can I Iind some documents related to it?
When you loading data in Fact tables usually we will do lookup on dimension to populate key
value in Fact tables. II you unable to Iind Fact value in Dimension table , depending on Business
logic you need to insert record in Fact table or reject. II you want to insert that record in Iact
table then you have to assign some deIault value to that record Ior this you need to insert one
deIault record in all dimension tables with UNKNOWN.
What is the best practice Ior inserting this deIault record in all dimension table?
Can I add one insert into dim¸table1 (..) values(...) in pre-sql oI DIM¸TABLE1?
What is the best way to do this?
While creating dimension tables you can insert deIault records in all dimension tables one time
with -1 primary key and deIault 'UNKNOWN' values Ior all varchar attributes.
We will truncate dimension table every night so I cannot insert deIault record at the time
creating.
I want to insert this deIault record beIore we start loading operational data every night. What
should I do? store procedure? pre-sql?
How you are truncating tables? iI you are using procedure then use same procedure Ior inserting
records?
In the workIlow Truncate Target Table Option. I want to insert the deIault record aIter trucating
but beIore loading. Should I put inserting in pre-loading somewhere?
5. How to mark all dulpicates records in a Iile as '1' and all unrepeated rows as '0'
II my Ilat Iile have emp¸num col
emp¸num
÷÷÷÷÷÷÷÷÷
1
2
2
2
3
4
4
÷÷÷÷÷÷÷÷÷
then it should be marked as below
emp¸num mark
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
1 0
2 1
2 1
2 1
3 0
4 1
4 1
you can try the Iollowing approach.
SRC--SQ-----------------~JNR--~EXP--~TGT
AGG--~
In aggregator select group by emp¸num and create one out put port count(emp¸num)
From aggregator out put looks like below
emp¸num,count
1,1
2,3
3,1
4,2
Join this data with source data based on emp¸num
aIter joiner data looks like below
emp¸num,count
1,1
2,3
2,3
2,3
3,1
4,2
4,2
In expression create out put port mark and use iiI(count÷1,0,1)
out put Irom expression will be like below
emp¸num,count,mark
1,1,0
2,3,1
2,3,1
2,3,1
3,1,0
4,2,1
4,2,1
you can achive this with out using aggregator.
But it will be quit complex logic you have to implement.
SRC--~SQ--~SRT--~EXP--~SRT--~EXP--~TGT
One liner unix cmd to get count of running workflows
ps -elI , grep -i pmdtm , grep -v grep , awk '¦ print $26 " " $35 }' , grep -v '` $' , awk 'BEGIN ¦
FS÷" "} ¦ print substr($1,0,index($0,".")-1) " " split($2, a, "¸") " " a|1| "¸" a|2| "¸" a|3| "¸" a|4|
"¸" a|5| "¸" a|6| }' , cut -I2 -d ":" , sort -u , cut -I1 -d " " , awk '¦print , "grep -in " $0 }' , awk
'BEGIN ¦ FS÷":"} ¦ print $2 " " $1} ' , sort -t" " -k 1,1 -k2,2r , awk 'a !÷ $1 ¦a÷$1; print $0;
next}'
Let me explain what it does. There are three parts but all are piped.
Part a is normal stuII to grep Ior pmdtm: ps -elI , grep -i pmdtm , grep -v grep , awk '¦ print $26 "
" $35 }' , grep -v '` $' ,
Part b is an awk that Iilters Ior the workIlows only (no sessions): awk 'BEGIN ¦ FS÷" "} ¦ print
substr($1,0,index($0,".")-1) " " split($2, a, "¸") " " a|1| "¸" a|2| "¸" a|3| "¸" a|4| "¸" a|5| "¸"
a|6| }' , cut -I2 -d ":" , sort -u , cut -I1 -d " " , awk '¦print , "grep -in " $0 }' , awk 'BEGIN ¦
FS÷":"} ¦ print $2 " " $1} ' ,
Part c is a sort Ior unique: sort -t" " -k 1,1 -k2,2r , awk 'a !÷ $1 ¦a÷$1; print $0; next}'

One liner unix cmd to get domain name for 8.6
DomainName÷` ps -elI , grep 'DINFA¸DOMAINS¸FILE' , grep -v grep , tr -s " " , cut -I20 -d " "
, awk -F'÷' '¦print , "cat " $2}' , grep 'domainName' , awk -F'·,~'
'/·domainName~|`·~|¹·\/domainName~/¦print $3}'`


-:9834909934.2:834304.58  #$ #  .

9.-   .//78.98.7003849  902.5531484:/-00-04   $# $" $#%  !  %%  38479078479/.0.08420..94. .4770.3/.4770.5.3/3.*54791 .9.7  74:5--49/.20  .2743.//78 1.*5479 .//78   570.//78570.

..9.:83.3.9430..*3* 3*  . 47980.3 9/4..*3* .7  033.70.094.438/07347/070 .8706:70/  030847990/..3040.904:95:95479 4:9* .8.* 3..3:809.-054798  .80/43/.305708843:80-044.70.90384:7.393 :914:.00.809047/0741#.3/039107384:7.8438479080-.*3* 4:9*.* .7. 35:954798 3* 3*  '.0..3/098   # .94774:5-/.3/039198  30570884390547947/0784:/-00-04   3* .423174205708843  09203411:7907/09.

-05479  4300/94:80.3/30307..848#.381472.94797.7.74 :895.08.70.*#.43/0898..-094 ..308  .7..*#  84.7:83#.381472.  #  $##  :08  $:708  .213/3/11.1907.0:3.38142.3 %7.3/74:5-  4.3.* *#.3*3.03.:9313/3$0.20 .74:5-/01.880890.943 070.8970.47/410.80/43#.*# '* '*#  #$ #$  .3/903907-.9435.70.55#.943 1:3 390.297.147 .250/.:9    .*547984:/-0.  880.88 *#94 /438970.901:3.08  #.08  908    .3  3-048.943.3  03.9.43/0898.-4.90728 09.554.

80052013/34:980.7'*$.7 35:95479  '*#..420    39084:7.3/092034904:9.. $*#84.%44   $*#  $##  :08  $:708  .0&8047/07-147908..381472.80.08  908   !0..43/0898.7..7 398.7 '7.3  '7..90901443547939005708843% $...08  #.0981:3.3  '*$..943331472.308  ...7:83$47907 %7.08905:75480-:90/43 9.7  ..90728   %790-044.7$.3/30307.4:23 47 47/07-8..3 $.9.943   70.

8.4770.0 .*#.4330.90/94!479 $ 3%.:0#    ..709%..3 .8.47/8.*$ 4*$  1440/90!479806:03.709%.3  %03.80.3#.82039430/  0704*$8.. :95:9'*#.*$ 4*$ .3 .943 .-0  :9036:0790%.0338.-0.9 1.2:83.3:8390797.381472.*#.4439070.80.3090547947/07 0-04   .381472.2743  !0.943  $" $47907 5   35708843%7.20993.7003849    !0.

3/398   !0.800520:3/0789. !0.809798  $# $" $#% !  %%  $#  !   $  $"  !   .

-$ !   3*!  3* 3*$ .$ $#%  !   $ 0708479/.381472.90.70.*# 3*$.904:95:95479 4:9*#.*#   .014435479894190797.*!#*$ ..9.943  3*!  3* 3*$ 4:9*# 5519074:9*# .*!#*$3*$ 70.-054798 .*# 742057088439.7.*# .

-00-04 $# $" $#% !  %% .7410.00/0/.-0 14:3/#.9$#.8507902.9  74290.709%.90.4480-04 $#!%  .4:/-09070.55314/./05.9 3*!  3* 3*$ 949.-0 .4330.8349.85074:78:08943 907.0 84:/0914437483%.3/$" .43/0898.3/9794800904:95:93%..-4.29739413/4:980.3 147.709 %..  %..8431479.9.0 $" $47907 !% $ $$  5 4:74..4:85489  03.00.700384941$"!:841570.:08  $4:7.-0 ! $  #   $   574.250.50/ .792039     $008.9.709%.9.709  .

08   908   .08   908   1907847907/.308   .08   .08   #.08   $:708   #.08   .:08   $:708   .47/ .08   #.08   #.9.4480-4 $#!%  :08   .308   908   908    305708843147178970.

03.74943 9.*!#*!%1.1478.3*!  3*:08 3*!%   3*$  ..*!#*!%   3*$.*!#*$  4:9*# .*!#*!%8490..43/189.8084 .*#  14798 .0.43/9431.43/94397:0.*!#*$   98.94 .:.943 3*!%06:.94.88343.*!#*!%  .:.80.*!#*$  .3/9 49480.*!#*!%8 84.*#.20.43/70.*!#*!%   3*!%.*!#*$  .47/  3*!  3*:08 3*!%   3*$  . ..:0...:0 .14780.*#   3*!%806:.902039 3*$.*!#*$  4:9*#  3908.*#    .*# 3*!%.*# 3*!%.9438434 .43/9433*!%.3/.1907.*!#*!%  .*!#*!% 98.3/9709:73 398 8.

804974:22.553.4:95:917420570884380-04 $#!%#  :08   .553 .08   .3/.243743  $9.08   908   !0.08   #.098  13.308   908   908   31907#9034:95:9174219078 $#!%#  .08   $:708   #.08   .920070.08   #.3'.4770.:0   .20993#.

3090547947/0730570884397.0889054798390144347/07  35:95479 ..31472.*# .*#   .*$ .381472.9430-04 3*!  3* 3*$ 3*!%*  .9:.3.381472..*!%*   3*$. 5708843%7.*# .9#.55907%7.9.381472..089.4770.*!%* 3*!%*  4*#.:08  !0.*# 3*!%* .574.94343.80.*$3*$ .790993.943574507908    .

8430289.03904.3/.381472.0/.3  .4190025400311 . '.  3*!%.3/'*!%  !0..88:0890/9420  $00904:95:93#0/3/4  24/10/984.*#  .*#  %070.8'007:2039430/ 4.390/  $00904:95:9370033/4     .9.*#989.*!% 4*# 3* 3*!% 3*$ .790/473130   7/0741905479.4:.090.*$  .43/943-0147090.*!%   3*$.*$ .*#.035708843%7.*!%* 3*!%* .839047/07   :95:95479  $434:74.708:5548094.90!% .3/8.3090547947/07.80.7.7.8/438420289..*!%   3*$.0.883203941'*$.*#   037024.*$3*$.-05479.*$ .3/4990 708:9..190790'*#5479 .*#.8  .81448 3*! .943 %0702039430/5708843.94  3*!% .3 .

3/7.//9700.20903.80/43.943 4*/059.79203994:9:83.. .70108  0.3/4304:95:95479  .7081470.90178974 .-054798  ..*8.709.38172..090..70. 8..0.3/9.80/43/0593:2 8.190.-054798.97.//908.945.*/059*/059 8.4:95:954793!  .3/847907:89-.8.553   84:7.-.3-.397.9/059 3:2-07  305708843 .943 4*/059*/059  ..*8.0.381472.7.9908.*/0594*/059 */05935:91742570.07.708.384172.8  09203414:300/2470/09.-083900570884397.3/1907.:.943322.7083/08.97.80/43/0593:2-07  305708843 .43/8905894847990/.943   7898905894847990/.90908:247. 4..907489..8  4:.*/059*/059 190. .//3.38 $00.*8..*8.947 97.90.03/347/07 3/3309 05708843 :80908.9..1907.384172.  $0..49077481479.708 190708.7.303/059 3:2-07903705..3/4989900541.974:5-43 /059....204.  4:9*8.3.-.43/89050430!.7./05.0418.9.70..38580. .*/0594*/059 */05935:91742570.7..4:238:2*8.*/059 .*/059*/059       3..

..7./2038439.-08:8:.338079/01.47/3..9890-089.3/300/058.47/31.-0814:..0/444:543/20384394545:.-/01.:03./3 $4:/5:93807933570 4.9890-08957.19070.8838420/01.:032038439.47/....9.93/2038439.90/949 034:4.47/147984:300/9438079430 /01.7097:3.0/:70903:808.970..4 025*3:2  .-09413/..334938079/01.70.990920 .90/2038439.313/8420/4..39943807990/01.34:95:9% !74 8:2418.3994380799.-00.0/:70147380793 70.:2039870.970./059   ./3/.47/8 3904714%7:3.794.0..47/./34507.:970.-0 .99.0025*3:2./38420070  4942./:5.:08 3570 8641*% .93 -:9-014704.8  .94/498 0.-09034:.9.:970.10.900 .:37050.99.47/83.230-09431472.-0 /0503/343:83088 4.9 84://489470574.3/8:08943843:3343/2038430   $4:/:80:3343/2038437447:334/203843202-07 .-047700..0/:70570 86 44:.:9 &  .9.-0 .8  121./3 070.9 9.3/..-084:.:970...7.93  .47/3..9890/110703..:970..70:83574.:97.90%.9.0 $4:/.47/-01470089./2038439.70.90870.939.99.7.943.5503/:334/20384374.3./2038439.:9.9 14:./.997-:908  097:3..910.-0 5943 ..47/83.-08430920 9 572..4:300/943807970.014738079398/01.0739 .90/748.39943807998/01..:0949.9...4.-08 14::3.709%.:08147.190797:.3//01.073984..  410..-089&   .//43038079394/2*9.:970.20574.70.47/3.:970.094..3..

9474:95:94480-04 .3/.904304:95:95479...947800.5574.70.70.974:5-025*3:2.70/.70.  $# $" # ! %%   3.7           4:.397901443.8-04 025*3:22.        903984:/-02.4:39 025*3:2  742.

9.984:7.4:39 2.904:95:954792.4480-04 025*3:2 .19074307/.025*3:2 .-.7                .9.9.4:39               305708843.3/:801 .0/.7.4:39         4398/.4:39   4:95:9174205708843-00-04 025*3:2 .80/43025*3:2 .70.

(< ..( *.(*.42504.  $<5739<  !.5739  309<  092005.8.20+58 01705 * $* 705 ..79.4:.(* .09894:9:83.79-8. .(*.      4:.4:39417:33347148 58 01705 52/92705 .7097005.:9 1  / .:9 1 /8479 :.    .3. )  !.:9 1 /8479 :.20 .5739 309<   30307:3.3.8479147:36:08479 9    7. * .(*..798-:9. .33.705.2/9409/42.947  :99-06:9.20147  42.(*.919078147904714843 348088438 .    5739. $<5739< 8479 9    7. $<5739 8:-897  3/0     859  .  $<57398:-897  3/0     859  .3.(*.(*.:9 1 /.:9 1 /. 5739 < 705 ..70597 8. 5739< 705 .3.89:119470514752/9258 01705 52/92705 .0942502039  $# $" $#% ! $#% ! %% 30307:3.(*. * . 5739705 3 < . 5739705 3 < ..2/9409.9.70.3.(< .9< 705 /42.79.705.(*.99/408 %070.... ) .83472.70550/  !.

3.20)( ./42.

3.20./42.

5739< +     .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->