* copyright (C) 1984-2019 merrill consultants dallas texas usa



Yüklə 28,67 Mb.
səhifə81/383
tarix17.01.2019
ölçüsü28,67 Mb.
#98988
1   ...   77   78   79   80   81   82   83   84   ...   383

attributes have been consolidated to a single call to

reduce code path length.

-New parameter ABREAD/NOABREAD lets you control ASMRMFV's

action when a VSAM read I/O error does occur:

-ABREAD is the default and duplicates the current ASMRMFV

behavior: a USER 0998 abend occurs on the first instance

of a VSAM read I/O error and no further data is written

to the RMFBSAM output file by ASMRMFV. Alias is ABR.

-NOABREAD suppresses the above abend and the action taken

depends on the data being read. Alias is NOABR. On the

first read of an RMF III VSAM data set the action is to

close this VSAM dataset and then open the next RMF VSAM

file (if any). Otherwise, if the error occurs on a

subsequent read for sample set data, the problem sample

set is skipped and ASMRMFV attempts to read the next

sample set from the same data set (if any).

-ASMRMFV ends with Return Code=12 if NOABREAD is in

effect and a read I/O error has occurred.

-Program prologue documentation is updated to discuss

ABREAD and NOABREAD and new Return Code 12.

-With either ABREAD or NOABREAD, the output RMFBSAM file

is likely to be missing data after a read I/O error.

-NOTE: When ASMRMFV is being executed under the CLRMFV

CLIST, the abend (if ABREAD in effect) is trapped, and

with either ABREAD or NOABREAD, CLRMFV will eventually

end with Return Code=12 after a VSAM read I/O error.

You could use the JCL COND parm to test for RC=12 in the

subsequent PDB build, if you want to also terminate the

creation of the RMF III PDB datasets after a VSAM error.

Thanks to Rodger Foreman, TransUnion, USA

Thanks to Betty Wong, Bank of America, USA
Change 30.160 -ASMIMSL7: ASMIMSL6, to bypass 0C7 ABEND due to ARRVDATE

ASMIMSL7 containing invalid Packed Decimal data, by skipping the

ASMIMSL8 0C7'ing-records so the rest of the log can be read. If

Aug 18, 2012 invalid ARRVDATE is found, a new error "NOPD" message

Aug 30, 2012 will be written to the job log with the first 25 bytes of

the record in hex. Since we have added this diagnostic,

no reports of NOPD messages have been reported.

-ASMIMSL8: ASMIMSL7 ABEND 0C4 occurred when an INQUEUE

record had zero record length in the first four bytes, in

a record that was to be discarded due to other errors

(dupe key). This iteration deletes the defective record

without the 0C4 ABEND.

-We have been unable to replicate either the 0C4 or 0C7

condition with files from three runs, so it appears the

source is a corrupted INQUEUE file, and since a VERY

small number of records are being recycled, the safest

solution now would be to eliminate the use of INQUEUE

for a few cycles to confirm that was the culprit, and

then it can be reintroduced while watching the job logs

for MXG error messages, in case the corruption reoccurs.


Change 30.159 Support for Microsoft Exchange 2010 incompatible changes

VMACNTSM to MSEXCHANGEIS and MSEXCHANGEIS MAILBOX objects. Creates

Aug 18, 2012 variables MSIS0001-MSIS0051 MSISCQTH in MSEXCHIS dataset,

and in dataset MSEXCHPU variables MSPU0001-MSPU0074 and

new per-second rate variables MSGDLVPS MSGRECPS MSGSNTPS

MSGSUBPS (whose new per-sec values are also converted to

per-minute and stored in the existing per-minute

variables MSGDLVPM MSGRECPM MSGSNTPM MSGSUBPM).

Thanks to Stan Dylnicki, Royal Bank of Canada, CANADA.
Change 30.158 -VMXGSUM in 30.05 could leave temporary datasets KEEPDATA

VMXGSUM KEEPERS VAR1 VARS or VAR2 in the //WORK library, which

Aug 15, 2012 had no impact on your MXG programs, but as they were also

Sep 4, 2012 left behind in the MXG QA job, they were seen as "real"

MXG datasets and created DOCVER entries.

-New handling of error conditions when interactive: rather

than terminating the SAS Session, global macro MXGOPTKILL

that is set in VMXGOPTK (the macro that drives the keep

logic and is part of VMXGSUM) gracefully shuts down the

VMXGSUM execution but preserves the interactive session.

-Messages about too-long-text were revised.
Change 30.157 New REPORT THREE-A for IMACICEZ, IMACICE1, and IMACICE2

UTILEXCL tailoring members now identifies the number of fields and

Aug 13, 2012 the lengths that must be updated in those three members.

It may be necessary to use the MCTSSDRL field in the DO

groups for these three optional segments.

Thanks to Scott Barry, SBBWorks Inc, USA.


Change 30.156 -Variables TOTLSESS ACTVSESS INACSESS in TERMSERV dataset

EXNTICAS for the Terminal Services object were input in that order

IMACNTSM in Windows Server 2003 (NTVERSN='5.2'). In Windows Server

VMACNTSM 2008-R2 (NTVERSN='6.1') the order was changed to ACTVSESS

VMXGINIT INACSESS TOTLSESS, so now, one of two INPUT statements is

Aug 10, 2012 executed, based on NTVERSN.

-Support for ICA Session object creates ICASESSN dataset.

dddddd dataset description

NTICAS ICASESSN ICA Session

Thanks to ???, ???, ???

Thanks to Mark Friedman, Demand Technology, USA.
Change 30.155 -Support for the WebSphere Asynchronous Section in subtype

EXT1209A nine records creates new TYP1209A dataset

IMAC120 dddddd dataset description

VMAC120 T1209A TYP1209A WebSphere Subtype 9 ASYNC

VMXGINIT These variables in TYP1209A and TYP1209E correspond and

Aug 9, 2012 can be used to compare observations in those datasets:

Oct 16, 2012 TYP1209A TYP1209E

SM1209GP SM1209CG

SM1209GQ SM1209CR

SM1209GR SM1209CS

SM1209GT SM1209CU

SM1209GV SM1209CV

-Unrelated, variable SM1209CX was found to have been

incorrectly divided by 4096, in TYP1209E dataset.

-Oct 16: The August change also corrected variables

SM1209DL, SM1209DM, and SM1209DN service units.

Thanks to Joseph L. Babcock, JPM Chase, USA.

Thanks to Tom Bubnash, SSA, USA.

Thanks to Babatunde Ashiru, SSA, USA.

Thanks to Jim Hare, Shared Services, CANADA.


Change 30.154 Velocity Software ZVPS (a/k/a XAM) new User Record with

EXXAMUSV with USERTYPE='VCPU' creates new dataset:

FORMATS dddddd dataset description

IMACXAM XAMUSV XMUSVCPU Virtual CPU per User Statistics

VMACXAM Dataset XMUSVCPU contains the USEACT and USEINT variables

VMXGINIT plus Virtual CPU Address (VMDCPUAD) and Engine Type in

Aug 9, 2012 VMDPUTYP, decoded by new MGXAMTY format (CP, ZIIP, etc),

so there is one observation for each USERID and VMDCPUAD

for each MONWRITE interval.

Thanks to Patricia Hansen, ADP, USA.

Thanks to Mike Chaves, ADP, USA.
====== Changes thru 30.153 were in MXG 30.05 dated Aug 8, 2012=========
Change 30.153 -See Change 30.166. Documentation updated.

VMXGUOW -PROGRAM names PROG1-PROGnn are created (TRAN1-TRANnn),

Aug 8, 2012 with the HOWDEEP= argument (default 10) setting the "nn"

to be created, but you must also use KUOWIDC to list the

variables you want to be kept. You can put the statement

MACRO _KUOWIDC PROG1=PROG9 % in IMACKEEP tailoring, or

use %LET MACKEEP= MACRO _KUOWIDC PROG1-PROG9 %; in SYSIN.

-Documentation of CICS transaction counts:

An observation in CICSTRAN cay be only one of many CICS

"segments" that make up a "unit of work", UOW, a "real"

transaction. Counting the number of observations in the

CICSTRAN dataset does NOT tell you how many actual CICS

Thanks to Charles Savikas, DCF, State of Florida, USA.

"transactions", or "units-of-work" were executed.

MRO trans typically have at least two observations in

the CICSTRAN dataset for a unit of work: one is from

the TOR region/applid and one is from the AOR region.

In ASUMCICS dataset (summarized CICSTRAN), the variable

NUMTRANS is the number of CICSTRAN observations, i.e.,

the inflated count of MRO CICS segments.

In ASUMCICX dataset (summarized ASUMUOW), the variable

NUMTRANS is the number of ASUMUOW observations, i.e.,

the "correct" count of transactions/units-of-work).

In ASUMUOW dataset, (created from CICSTRAN/DB2ACCT/MQ):

MROTRAN - Count of CICSTRAN observations in this UOW,

inflated segment count.

DB2TRAN - Count of DB2ACCT observations in this UOW.

MQTRAN - Count of MQMACCT/MQMACCTQ obs in this UOW.

Thanks to Scott Barry, SBBWorks Inc, USA.
Change 30.152 A strange SAS compiler error, if you used the _KDCODSN

VMACDCOL "KEEP= exit" for dataset DCOLDSET, intending to add some

Aug 6, 2012 new variables and to DROP= some existing variables:

MACRO _KDCODSN NEWVAR1 NEWVAR2 DROP= OLDVAR1 OLDVAR2 %

This compiler error is unique to the VMACDCOL structure,

and is circumvented by relocating the &MXGFILNM macro

variable to a different place in the source code.

-The SAS compiler erroneously expanded that _KDCODSN macro

token TWICE, causing the first instance of DROP= to apply

to all of the NEW variables in the second instance of the

expansion, so NONE of the new variables were kept. This

error was precipitated by Change 29.296, which added a

new-style macro variable token, &MXGFILNM, at the end of

each KEEP= list (so you could add variable INFILENM to

all DCOLLECT datasets). Apparently, even when &MXGFILNM

is blank, when it is the last token before the _KDCODSN

token, then if _KDCODSN is not blank, the SAS old-style

macro compiler expanded that macro token TWICE. But, by

relocating that &MXGFILNM text to a separate line, before

the last variable line in the MACRO _VDCODSN KEEP= list,

so it is no longer immediately prior to _KDCODSN token,

that second unwanted expansion is avoided and your normal

_Kdddddd tailoring works as expected. The error was in

both SAS 9.2 and 9.3 on Windows and z/OS SAS 9.1.3 SP4.

Thanks to Paul Maradin, HP, USA.
====== Changes thru 30.151 were in MXG 30.05 dated Aug 6, 2012=========
Change 30.151 Additional Enhancements for RMF III processing.

VMACRMFV -ZRBASM file was not output to the PDB when TYPSRMFV

Aug 4, 2012 member was used to build an RMF Monitor III PDB.

-Macro call to _SZRBASM was missing from _SRMFV macro.

-_BZRBASM macro for ZRBASM file misspelled ASMJESID

variable as ASIJESID causing SAS error during PDB build.

-Change 27.100 altered the EXZRBLCP macro to conserve disk

space for inactive logical processors by suppressing

output to the ZRBLCP file when LCPUPDTM was zero (which

includes LPARs that are categorized as PHYSICAL).

However, all processor entries for PHYSICAL LPARs are

required to determine the number of physical engines on a

CEC for an engine type such as a ZAAP or ZIIP. One or

more of these can legitimately be inactive during an RMF

III MINTIME interval. The number of physical engines for

each engine type is required to compute Physical % UTIL

as in the RMF III CPC panel. Entries for PHYSICAL

LPARs are now always output regardless of activity.

-Variable SSHRMFVN (RMF version number) added to these MXG

created RMF III "PDB" SAS datasets:

ZRBSVPP, ZRBSVPW, ZRBSVPC, ZRBSVPZ, ZRBSVPR, ZRBSVPG.

-Variable SSHSMPNR (number of valid MINTIME samples) added

to these RMF III PDB datasets:

ZRBGEI, ZRBCFC, ZRBCFI, ZRBCPD, ZRBCPU,

ZRBLCP, ZRBCSR, ZRBDVT, ZRBENC, ZRBENT,

ZRBSHD, ZRBPGP, ZRBRED, ZRBRCDB, ZRBRCDS,

ZRBRCDR, ZRBOPD, ZRBSPG, ZRBSVPP, ZRBSVPW,

ZRBSVPC, ZRBSVPZ, ZRBSVPR, ZRBSVPG, ZRBUWDEV,

ZRBUWSTO, ZRBUWJES, ZRBUWHSM, ZRBUWENQ, ZRBUWMNT,

ZRBUWMSG.

-Variable SSHGOMNT (Gatherer MINTIME option) added to

these RMF III PDB files:

ZRBGEI, ZRBASI, ZRBCFC, ZRBCFI, ZRBCPD,

ZRBCPU, ZRBLCP, ZRBCSR, ZRBDVT, ZRBENC,

ZRBENT, ZRBSHD, ZRBPGP, ZRBRED, ZRBRCDB,

ZRBRCDS, ZRBRCDR, ZRBRCDT, ZRBRCDX, ZRBRCDD,

ZRBOPD, ZRBSPG, ZRBSVPP, ZRBSVPW, ZRBSVPC,

ZRBSVPZ, ZRBSVPR, ZRBSVPG, ZRBUWDEV, ZRBUWSTO,

ZRBUWJES, ZRBUWHSM, ZRBUWENQ, ZRBUWMNT, ZRBUWMSG.

Thanks to Randy Hewitt, HP Canada, Canada


Change 30.150 NDM-CDI record 'EX' caused "UNKNOWN SUBTYPE" log messages

VMACNDM and no DSECT is yet received to decode the 40 bytes of

Aug 3, 2012 hex zeros at the end of the record, but the front end has

the same fields as the NDMDT record so the 'EX' record is

output in NDMDT, pending receipt of documentation.

Thanks to Paul Volpi, UHC, USA.


Change 30.149 The KEEPALL=YES default is used in most MXG code because

VMXGSUM it is usually safer, as it protects if there is an INCODE=

Aug 3, 2012 argument that can reference a variable that is not in one

Aug 7, 2012 of the parameter lists. However, in some invocations of

VMXGSUM, it caused a VARIABLE NOT FOUND error that caused

PROC MEANS to fail, when a variable did not exist, due to

an error in the VMXGSUM logic that only rebuilt the KEEP

list after the first data step when KEEPALL=NO. Now, that

rebuild is always executed with either NO or YES.

-VMXGSUM was redated Aug 7; the above logic was revised.

Thanks to Robert Kirkland, MedMutual, USA.
Change 30.148 The %SYMEXIST() function now detects that macro variable

VMXGINIT MXGSOURC exists ("MXGNAMES" dynamic allocation was used,

Aug 1, 2012 which requires FIXORDER dataset to be created to print

the //SOURCLIB DSNAMEs messages at MXG startup), so the

FIXORDER creation can be bypassed for static allocation.

And FIXORDER is not compressed when it is created, to

suppress a cosmetic warning messages about size increase.
Change 30.147 The DB2 AUDIT reports were reformatted to match reports

ANALDB2R in OMEGAMON XE for DB2 Performance Monitor Version 4.2.

VFMT102 Since the detail and trace formats are essentially the

Jul 31, 2012 same, PMAUD03 now simply invokes PMAUD02.


AUDIT= parameter is expanded to support these options:

DDFTRAN - DDF TRANSLATION .

ESTTRST - Establish Trusted Context

CRTTRST - Create Trusted Context

KERBERO - KERBEROS/ENCRYPTED Connection
Change 30.140 revised VFMT102 to eliminate time; this

change removes the timestamp when VFMT102 is called.


The LINESIZE option is now set to 200 at the beginning

and then reset to the original value at the end of

ANALDB2R, as some of the reports can get very wide.

Thanks to Alyona Bertneski, JPMorgan, USA.


Change 30.146 Cosmetic/maybe. The %DO loop variable &I was changed to

VMXGDSNL the more "unique" &DSNL to possibly avoid conflict with

Jul 31, 2012 user code that was wrapped around VMXGDSNL in TYPEQACS.

Thanks to Stephen Hoar, Lloyds Banking, ENGLAND.


Change 30.145 Variable CORRNAME and CORRNUM were incorrectly decoded

VMACDB2 for QWACATYP=4 (CICS) connections.

Jul 31, 2012
Change 30.144 -If you specified PDBOUT=PDB and asked for specific IFCIDS

READDB2 e.g. IFCIDS=ACCOUNT 105 107 269, the T102Sxxx datasets

Jul 31, 2012 were not copied to the PDBOUT= destination.

-If you used the LDB2xxx parameters to limit the variables

kept or dropped and used the syntax:

LDB2ACC=PDB//KEEP/varlist

the // did not work as documented; a space was required,

but this change now properly supports // or / / as the

null argument.
Change 30.143 -These variables, which should have been a MAX value, were

VMXGDBSS incorrectly summed:

Jul 31, 2012 ASUMDBSS - QB1TVPL QB2TVPL QB3TVPL QB4TVPL QB1TCBA

QB2TCBA QB3TCBA QB4TCBA

ASUMDBSB - QBSTVPL QBSTCBA

They now contain the MAX value of the end-of-interval

values, across each summary interval.

-In addition, because DB2 V10 writes fixed one-minute data

and so those variables are end-of-interval values, these

average value variables are now created:

ASUMDBSS - AVG1VPL AVG2VPL AVGTVPL AVGTVPL AVG1CBA

AVG2CBA AVGTCBA AVGTCBA

ASUMDBSB - AVGTVPL AVGTCBA

-Labels were created for these four variables:

ASUMDBSS - THRDFTPT THRDUSE TOTTHRD

ASUMDBSB - READS


Change 30.142 %VMXGPRNT, which "PROC PRINTs" with both the LABEL and

VMXGPRNT VARIABLE as heading, is enhanced to allow FMTLST= option

Jul 31, 2012 to specify the printed format. See ANAL113 for example.
Change 30.141 -XAM/ZVPS XAMTCP record contains 0.0.0.0 for IPADDR in all

VMACXAM observations as that is what is in the record.

Jul 31, 2012 -Values in AVERAGTM='TOTALTIME/TOTALACKED IN FAL' and the

values in TOTALTIM='TOT ROUND TRIP TIME(MS)' in XMTCPAPP

dataset are large negative values in many records.

-Both problems will be forwarded to the vendor.

-Variable NAMENODE is now kept in XMTCPAPP dataset.

Thanks to Andrew Petersen, CSC, AUSTRALIA.


Change 30.140 -Support for IFCID 269 and 270 populates existing T102S269

FORMATS and T102S270 datasets with QW0269xx/QW0270xx variables.

VFMT102 -Formats created for some QW0269xx/QW0270xx variables.

VMAC102 -VFMT102 revised to eliminate the time values.

Jul 31, 2012 -SQL Text long-variables have multiple blanks removed with

COMPBL function.

Thanks to Alyona Bertneski, JPMorgan, USA.
Change 30.139 The label for PIRSHELF is corrected to "SHELF", which I

VMAC110 now know is a z/OS Unix name for a directory, primarily

Jul 30, 2012 used for Web service binding files.

Thanks to Dale Slaughter, Transamerica, USA.


Change 30.138 ASG TMON/DB2 creates invalid DB2 101 records that causes

VMACDB2H MXG to print ERROR: INVALID DB2 101 RECORD messages, but

Jul 27, 2012 since the ASG records have their header segment at the

Aug 3, 2012 start of the record, whereas IBM's header segment is at

the end of the record, I've updated these error messages

to identify "ASG-CREATED" and to identify the ASG fix of

TE03737 in the error messages. These records are DELETED.

Change 30.023 detected these errors, but printed ALL of

the defective records; this change limits printing to 3.

Thanks to Marty Pruden, Purina Nestle, USA.


Change 30.137 Updates to NMON/TOPAS Monitor for AIX and LINUX.

EXNMONDF -All BBBP single-value-per-line configuration entries for

EXNMONEN the lsconf, lparstat, lsattr EL, vmstat V, and vmstat S

EXNMONLP subtypes are now output in NMONBBBP dataset. All labels

EXNMONMP now contain the subtype name. Variables from each subtype

EXNMONVM are grouped in the LABEL statement so they are adjacent

IMACNMON when printed. Variables BBBP001-BBBP0146 now exist.

VMACNMON -These "BBBP,ending" multi-value-per-line entries are

VMXGINIT output in these new datasets:

Jul 28, 2012 DDDDDD DATASET DESCRIPTION

Aug 17, 2012 NMONDF NMONBBBPENDDF BBBP,ending df m

Sep 13, 2012 NMONLP NMONBBBPENDLP BBBP,ending lparstat h

NMONMP NMONBBBPENDMP BBBP,ending mpstat d

NMONVM NMONBBBPENDVM BBBP,ending vmstat i

-The "BBBP,ending" single-value-per-line entries from the

"ending vmstat v" and "ending vmstat s" subtypes are

output in this new dataset:

DDDDDD DATASET DESCRIPTION

NMONDF NMONBBBPENDING BBBP,ending vmstat v and s

-Entries PCPUnn and SCPUnn create TEMPCPUNP and TEMPCPUNS

that are merged into existing NMONCPUD, detail CPU

metrics by CPUNR.

-Entries PCPU_ALL and SCPU_ALL_ are input and variables

retained and added to NMONINTV.

-Entries DISKRIO, DISKWIO, DISKAVGRIO, DISKAVGWIO are now

supported, and variables of the same name are added to

the NMONDISK dataset.

-The internal logic for the DISKxxxxN "suffixed" records,

written when there are more disk devices than will fit on

a single record, is restructured to use a 2-elment array

instead of a separate explicit DO group for each suffix.

These arrays support 50 suffixed records with 512 devices

per record, versus the original fixed 21 suffixes.

-ERROR: ARRAY Subscript Out Of Range - DISKSERV DISKSVCTM

DISKWAIT DISKWAITTM objects corrected, and protection for

"NANQ" text for "not a number" for BBBPENDLP04, Aug 17.

-Sep 13: BBBPENDVM05 increased to 64 bytes.
Change 30.136 These TYPE50 OSA/Express READ variables (ATTCHTYP=4 only)

VMAC50 TY50PCIR TY50PCIV TY50PCIT TY50PCIU TY50PDFR

Jul 25, 2012 are missing if SUBCHPOL is not 'READ'; IBM had changed

the value to "RD/n" without documentation. The MXG test

is now revised to detect READ if SUBCHPOL starts with RD.

Thanks to John McLaughlin, Bank of America, USA.


Change 30.135 %VGETALOC is a new macro for use with AUTOALOC=YES (that

VGETALOC VMXGALOC option creates directory names containing date)

Jul 24, 2012 that lets you select (getdaterange=,typeofdata=) a group

of "PDBs"/directories that are to be read, constructing

a "SET" statement in a DATA-step using VMXGSET.
For example:

%vgetaloc(getdaterange=01jul12 24jul12,

typeofdata=daily,

basedir=c:\mxg,

datefmt=date7.

);

data jobs;



%vmxgset(dataset=jobs);
will search the c:\mxg directory for all directories with

a name that contains a date in ddmmmyy format, selects

those with date between 01Jul12 and 24Jul12 inclusive,

and allocates them as PDB1- PDB24 as there are 24 dates

in your selection criteria. These libnames are passed to

VMXGSET which build the logical SET statement to read all

24 LIBNAMEs for the JOBS dataset you requested in VMXGSET

set pdb1.jobs pdb2.jobs pdb3.jobs ... pdb24.jobs;

(i.e., the number of libnames found by vgetaloc).
Change 30.134 Cosmetic/Spurious. ANALDB2R printed note from VMXGVERS

ANALDB2R that you were using a backlevel ANALDB2R, because that

Jul 24, 2012 statement at the bottom of ANALDB2R still had 30.02 in

both 30.03 and 30.04. While the MXG QA stream has a test

for VMXGVERS value, the line was in lower case and the QA

test expected upper case. Now, the QA test looks first

for lower case and then for version number.

Since there is a %PUT with the ANALDB2R last update date,

the currency of this ANALDB2R member was confirmed on the

SAS log, so this was only a cosmetic error. But it gets

this change text because the user had to waste his time

to report the potential problem due to my error!

Thanks to R. van der Zande, KLM, THE NETHERLANDS.
Change 30.133 Support for (optional) DB2 Netezza for Accelerator data.

IMACDBNZ IBM DB2 Analytics Accelerator IDAA product uses Netezza.

VMACDB2 -Similar to MXG support for optional CICS data segments,

Jul 23, 2012 support for optional Q8AC DB2 Accounting variables is in

a comment block in the new IMACDBNZ member that contains

the code, labels, and formats, so none of the Netezza

variables will exist in DB2ACCT, until you copy IMACDBNZ

into your "USERID.SOURCLIB tailoring library and then

remove that comment block.

-Because the volume of DB2 statistics records is small,

the Netezza Q8ST DB2 Statistics variables are created in


Yüklə 28,67 Mb.

Dostları ilə paylaş:
1   ...   77   78   79   80   81   82   83   84   ...   383




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin