Best Python code snippet using hypothesis
vars.py
Source:vars.py  
1# -*- coding:utf-8 -*- 2import sys3PY3 = (sys.version_info[0] >= 3)4HTTP_OK = 2005HTTP_AUTHORIZATION_ERROR = 4016HTTP_URL = 'api.wmcloud.com'7HTTP_PORT = 4438BOND = '/api/bond/getBond.csv?secID=%s&ticker=%s&field=%s'9BONDCF = '/api/bond/getBondCf.csv?secID=%s&ticker=%s&beginDate=%s&cashTypeCD=%s&endDate=%s&field=%s'10BONDCOUPON = '/api/bond/getBondCoupon.csv?secID=%s&ticker=%s&field=%s'11BONDGUAR = '/api/bond/getBondGuar.csv?secID=%s&ticker=%s&guarModeCD=%s&field=%s'12BONDISSUE = '/api/bond/getBondIssue.csv?secID=%s&ticker=%s&raiseModeCD=%s&field=%s'13BONDOPTION = '/api/bond/getBondOption.csv?secID=%s&ticker=%s&field=%s'14BONDRATING = '/api/bond/getBondRating.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'15EQU = '/api/equity/getEqu.csv?equTypeCD=%s&secID=%s&ticker=%s&listStatusCD=%s&field=%s'16EQUALLOT = '/api/equity/getEquAllot.csv?isAllotment=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'17EQUDIV = '/api/equity/getEquDiv.csv?eventProcessCD=%s&exDivDate=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'18EQUINDUSTRY = '/api/equity/getEquIndustry.csv?industry=%s&industryID=%s&industryVersionCD=%s&secID=%s&ticker=%s&intoDate=%s&field=%s'19EQUIPO = '/api/equity/getEquIPO.csv?eventProcessCD=%s&secID=%s&ticker=%s&field=%s'20EQUREF = '/api/equity/getEquRef.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&eventProcessCD=%s&field=%s'21EQURETUD = '/api/equity/getEquRetud.csv?listStatusCD=%s&secID=%s&ticker=%s&beginDate=%s&dailyReturnNoReinvLower=%s&dailyReturnNoReinvUpper=%s&dailyReturnReinvLower=%s&dailyReturnReinvUpper=%s&endDate=%s&isChgPctl=%s&field=%s'22EQUSPLITS = '/api/equity/getEquSplits.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'23FUTU = '/api/future/getFutu.csv?exchangeCD=%s&secID=%s&ticker=%s&contractObject=%s&field=%s'24FUTUCONVF = '/api/future/getFutuConvf.csv?secID=%s&ticker=%s&field=%s'25GUARRATING = '/api/bond/getGuarRating.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'26IDX = '/api/idx/getIdx.csv?secID=%s&ticker=%s&field=%s'27IDXCONS = '/api/idx/getIdxCons.csv?secID=%s&ticker=%s&intoDate=%s&intoDate=%s&isNew=%s&field=%s'28IDXWEIGHT = '/api/idx/getIdxCloseWeight.json?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'29ISSUERRATING = '/api/bond/getIssuerRating.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'30MKTEQUD = '/api/market/getMktEqud.csv?secID=%s&ticker=%s&tradeDate=%s&beginDate=%s&endDate=%s&field=%s'31MKTFUTD = '/api/market/getMktFutd.csv?secID=%s&ticker=%s&tradeDate=%s&beginDate=%s&endDate=%s&field=%s'32MKTIDXD = '/api/market/getMktIdxd.csv?indexID=%s&ticker=%s&tradeDate=%s&beginDate=%s&endDate=%s&field=%s'33SECID = '/api/master/getSecID.csv?assetClass=%s&cnSpell=%s&partyID=%s&ticker=%s&field=%s'34FUND = '/api/fund/getFund.csv?etfLof=%s&listStatusCd=%s&secID=%s&ticker=%s&category=%s&operationMode=%s&field=%s'35FUNDNAV = '/api/fund/getFundNav.csv?dataDate=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'36FUNDDIVM = '/api/fund/getFundDivm.csv?dataDate=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'37FUNDDIV = '/api/fund/getFundDiv.csv?secID=%s&ticker=%s&adjustedType=%s&beginDate=%s&endDate=%s&field=%s'38FUNDASSETS = '/api/fund/getFundAssets.csv?reportDate=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'39FUNDHOLDINGS = '/api/fund/getFundHoldings.csv?reportDate=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&secType=%s&field=%s'40FDMTBS = '/api/fundamental/getFdmtBS.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'41FDMTBSBANK = '/api/fundamental/getFdmtBSBank.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'42FDMTBSSECU = '/api/fundamental/getFdmtBSSecu.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'43FDMTBSINDU = '/api/fundamental/getFdmtBSIndu.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'44FDMTBSINSU = '/api/fundamental/getFdmtBSInsu.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'45FDMTCF = '/api/fundamental/getFdmtCF.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'46FDMTCFBANK = '/api/fundamental/getFdmtCFBank.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'47FDMTCFSECU = '/api/fundamental/getFdmtCFSecu.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'48FDMTCFINDU = '/api/fundamental/getFdmtCFIndu.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'49FDMTCFINSU = '/api/fundamental/getFdmtCFInsu.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'50FDMTIS = '/api/fundamental/getFdmtIS.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'51FDMTISBANK = '/api/fundamental/getFdmtISBank.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'52FDMTISSECU = '/api/fundamental/getFdmtISSecu.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'53FDMTISINDU = '/api/fundamental/getFdmtISIndu.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'54FDMTISINSU = '/api/fundamental/getFdmtISInsu.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'55FDMTEE = '/api/fundamental/getFdmtEe.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'56FDMTEF = '/api/fundamental/getFdmtEf.csv?reportType=%s&secID=%s&ticker=%s&beginDate=%s&endDate=%s&forecastType=%s&publishDateBegin=%s&publishDateEnd=%s&field=%s'57TRADECAL = '/api/master/getTradeCal.csv?exchangeCD=%s&beginDate=%s&endDate=%s&field=%s'58INDUSTRY = '/api/master/getIndustry.csv?industryVersion=%s&industryVersionCD=%s&industryLevel=%s&isNew=%s&field=%s'59FSTTOTAL = '/api/equity/getFstTotal.csv?beginDate=%s&endDate=%s&exchangeCD=%s&field=%s'60FSTDETAIL = '/api/equity/getFstDetail.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'61MKTBLOCKD = '/api/market/getMktBlockd.csv?secID=%s&ticker=%s&tradeDate=%s&assetClass=%s&beginDate=%s&endDate=%s&field=%s'62HKEQU = '/api/HKequity/getHKEqu.csv?listStatusCD=%s&secID=%s&ticker=%s&field=%s'63HKEQUCA = '/api/HKequity/getHKEquCA.csv?secID=%s&ticker=%s&eventTypeCD=%s&field=%s'64MKTREPOD = '/api/market/getMktRepod.csv?secID=%s&ticker=%s&tradeDate=%s&beginDate=%s&endDate=%s&field=%s'65MKTBONDD = '/api/market/getMktBondd.csv?secID=%s&ticker=%s&tradeDate=%s&beginDate=%s&endDate=%s&field=%s'66EQUSHARE = '/api/equity/getEquShare.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&partyID=%s&field=%s'67REPO = '/api/bond/getRepo.csv?secID=%s&ticker=%s&field=%s'68MKTHKEQUD = '/api/market/getMktHKEqud.csv?secID=%s&ticker=%s&tradeDate=%s&beginDate=%s&endDate=%s&field=%s'69TICKRTSNAPSHOT = '/api/market/getTickRTSnapshot.csv?securityID=%s&field=%s'70TICKRTSNAPSHOTINDEX = '/api/market/getTickRTSnapshotIndex.csv?securityID=%s&field=%s'71FUTURETICKRTSNAPSHOT = '/api/market/getFutureTickRTSnapshot.csv?instrumentID=%s&field=%s'72TICKRTINTRADAY = '/api/market/getTickRTIntraDay.csv?securityID=%s&endTime=%s&startTime=%s&field=%s'73BARRTINTRADAY = '/api/market/getBarRTIntraDay.csv?securityID=%s&endTime=%s&startTime=%s&field=%s'74BARHISTONEDAY = '/api/market/getBarHistOneDay.csv?securityID=%s&date=%s&endTime=%s&startTime=%s&field=%s'75BARHISTDAYRANGE = '/api/market/getBarHistDateRange.csv?securityID=%s&startDate=%s&&endDate=%s&field=%s'76FUTURETICKRTINTRADAY = '/api/market/getFutureTickRTIntraDay.csv?instrumentID=%s&endTime=%s&startTime=%s&field=%s'77FUTUREBARINDAY = '/api/market/getFutureBarHistOneDay.csv?instrumentID=%s&date=%s&field=%s'78FUTUREBARDATERANGE = '/api/market/getFutureBarHistDateRange.csv?instrumentID=%s&startDate=%s&endDate=%s&field=%s'79STOCKFACTORSONEDAY = '/api/market/getStockFactorsOneDay.csv?tradeDate=%s&secID=%s&ticker=%s&field=%s'80STOCKFACTORSDATERANGE = '/api/market/getStockFactorsDateRange.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'81MKTFUNDD = '/api/market/getMktFundd.csv?secID=%s&ticker=%s&tradeDate=%s&beginDate=%s&endDate=%s&field=%s'82MKTFUTMTR = '/api/market/getMktFutMTR.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'83MKTFUTMSR = '/api/market/getMktFutMSR.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'84MKTFUTMLR = '/api/market/getMktFutMLR.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'85FUNDETFPRLIST = '/api/fund/getFundETFPRList.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'86FUNDETFCONS = '/api/fund/getFundETFCons.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'87FUNDRATING = '/api/fund/getFundRating.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'88CHINAMACRODATA = '/api/macro/getChinaMacroData.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'89CHINAMACROINFO = '/api/macro/getChinaMacroInfo.csv?indicID=%s&indicNameAbbr=%s&parentID=%s&field=%s'90GLOBALMACRODATA = '/api/macro/getGlobalMacroData.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'91GLOBALMACROINFO = '/api/macro/getGlobalMacroInfo.csv?indicID=%s&indicNameAbbr=%s&parentID=%s&field=%s'92INDUSTRIALDATA = '/api/macro/getIndustrialData.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'93INDUSTRIALINFO = '/api/macro/getIndustrialInfo.csv?indicID=%s&indicNameAbbr=%s&parentID=%s&field=%s'94ECOMMERCEDATA = '/api/macro/getEcommerceData.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'95ECOMMERCEINFO = '/api/macro/getEcommerceInfo.csv?indicID=%s&indicNameAbbr=%s&parentID=%s&field=%s'96MKTMFUTD = '/api/market/getMktMFutd.csv?contractMark=%s&contractObject=%s&mainCon=%s&tradeDate=%s&endDate=%s&startDate=%s&field=%s'97CHINADATAGDP = '/api/macro/getChinaDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'98CHINADATAECI = '/api/macro/getChinaDataECI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'99CHINADATAPMI = '/api/macro/getChinaDataPMI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'100CHINADATACCI = '/api/macro/getChinaDataCCI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'101CHINADATAECONOMISTSBOOMINDEX = '/api/macro/getChinaDataEconomistsBoomIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'102CHINADATAINDUSTRIALBUSINESSCLIMATEINDEX = '/api/macro/getChinaDataIndustrialBusinessClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'103CHINADATACPI = '/api/macro/getChinaDataCPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'104CHINADATAPPI = '/api/macro/getChinaDataPPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'105CHINADATAINDUSTRY = '/api/macro/getChinaDataIndustry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'106CHINADATARETAILSALES = '/api/macro/getChinaDataRetailSales.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'107CHINADATARESIDENTINCOMEEXP = '/api/macro/getChinaDataResidentIncomeExp.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'108CHINADATAFAI = '/api/macro/getChinaDataFAI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'109CHINADATAREALESTATE = '/api/macro/getChinaDataRealEstate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'110CHINADATAFOREIGNTRADE = '/api/macro/getChinaDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'111CHINADATAFDI = '/api/macro/getChinaDataFDI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'112CHINADATAMONEYSTATISTICS = '/api/macro/getChinaDataMoneyStatistics.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'113CHINADATAALLSYSTEMFINANCING = '/api/macro/getChinaDataAllSystemFinancing.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'114CHINADATALENDINGDEPOSIT = '/api/macro/getChinaDataLendingDeposit.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'115CHINADATACREDITFUNDSTABLE = '/api/macro/getChinaDataCreditFundsTable.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'116CHINADATAOPENMARKETOPERATION = '/api/macro/getChinaDataOpenMarketOperation.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'117CHINADATAEXCHANGERATE = '/api/macro/getChinaDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'118CHINADATAINTERESTRATELENDINGDEPOSIT = '/api/macro/getChinaDataInterestRateLendingDeposit.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'119CHINADATAINTERESTRATESHIBOR = '/api/macro/getChinaDataInterestRateSHIBOR.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'120CHINADATAINTERESTRATEINTERBANKREPO = '/api/macro/getChinaDataInterestRateInterbankRepo.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'121CHINADATAFINANCE = '/api/macro/getChinaDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'122CHINADATAGOLDCLOSEPRICE = '/api/macro/getChinaDataGoldClosePrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'123USDATAGDP = '/api/macro/getUSDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'124USDATAFOREIGNTRADE = '/api/macro/getUSDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'125USDATAPRICEINDEX = '/api/macro/getUSDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'126USDATAEMPLOYMENTUNEMPLOYMENT = '/api/macro/getUSDataEmploymentUnemployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'127USDATAINTERESTRATE = '/api/macro/getUSDataInterestRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'128USDATAEXCHANGERATE = '/api/macro/getUSDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'129USDATAMONEYSUPPLY = '/api/macro/getUSDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'130USDATACONSUMERCREDIT = '/api/macro/getUSDataConsumerCredit.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'131USDATACLIMATEINDEX = '/api/macro/getUSDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'132USDATADURABLEGOODS = '/api/macro/getUSDataDurableGoods.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'133USDATAREALESTATE = '/api/macro/getUSDataRealEstate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'134USDATADOMESTICTRADE = '/api/macro/getUSDataDomesticTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'135EUDATAGDP = '/api/macro/getEUDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'136EUDATAFOREIGNTRADE = '/api/macro/getEUDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'137EUDATAPRICEINDEX = '/api/macro/getEUDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'138EUDATAEMPLOYMENTUNEMPLOYMENT = '/api/macro/getEUDataEmploymentUnemployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'139EUDATAINTERESTRATE = '/api/macro/getEUDataInterestRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'140EUDATAEXCHANGERATE = '/api/macro/getEUDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'141EUDATABANKING = '/api/macro/getEUDataBanking.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'142EUDATACLIMATEINDEX = '/api/macro/getEUDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'143EUDATAINDUSTRY = '/api/macro/getEUDataIndustry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'144EUDATARETAIL = '/api/macro/getEUDataRetail.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'145SWITZERLANDDATAGDP = '/api/macro/getSwitzerlandDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'146SWITZERLANDDATAPRICEINDEX = '/api/macro/getSwitzerlandDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'147SWITZERLANDDATACLIMATEINDEX = '/api/macro/getSwitzerlandDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'148SWITZERLANDDATAMONEYSUPPLY = '/api/macro/getSwitzerlandDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'149SWEDENDATAGDP = '/api/macro/getSwedenDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'150SWEDENDATAPRICEINDEX = '/api/macro/getSwedenDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'151SWEDENDATAFOREIGNTRADE = '/api/macro/getSwedenDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'152KOREADATAGDP = '/api/macro/getKoreaDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'153KOREADATAPRICEINDEX = '/api/macro/getKoreaDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'154KOREADATAEMPLOYMENTUNEMPLOYMENT = '/api/macro/getKoreaDataEmploymentUnemployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'155KOREADATAINTERESTRATES = '/api/macro/getKoreaDataInterestRates.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'156KOREADATAEXCHANGERATE = '/api/macro/getKoreaDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'157KOREADATAMONEYSUPPLY = '/api/macro/getKoreaDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'158KOREADATACLIMATEINDEX = '/api/macro/getKoreaDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'159KOREADATA_EXTERNALDEBT = '/api/macro/getKoreaData_ExternalDebt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'160KOREADATAINDUSTRYANDSERVICE = '/api/macro/getKoreaDataIndustryandService.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'161KOREADATAREALESTATE = '/api/macro/getKoreaDataRealEstate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'162AUSTRALIADATAGDP = '/api/macro/getAustraliaDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'163AUSTRALIADATAFOREIGNTRADE = '/api/macro/getAustraliaDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'164AUSTRALIADATAPRICEINDEX = '/api/macro/getAustraliaDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'165AUSTRALIADATAEMPLOYMENT = '/api/macro/getAustraliaDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'166AUSTRALIADATACLIMATEINDEX = '/api/macro/getAustraliaDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'167ITALYDATAGDP = '/api/macro/getItalyDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'168ITALYDATAPAYMENTSBALANCE = '/api/macro/getItalyDataPaymentsBalance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'169ITALYDATAPRICEINDEX = '/api/macro/getItalyDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'170ITALYDATAEMPLOYMENT = '/api/macro/getItalyDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'171ITALYDATAFINANCE = '/api/macro/getItalyDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'172ITALYDATACLIMATEINDEX = '/api/macro/getItalyDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'173ITALYDATAINTERESTRATE = '/api/macro/getItalyDataInterestRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'174SPAINDATAGDP = '/api/macro/getSpainDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'175SPAINDATAFOREIGNTRADE = '/api/macro/getSpainDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'176SPAINDATAPAYMENTSBALANCE = '/api/macro/getSpainDataPaymentsBalance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'177SPAINDATABANKING = '/api/macro/getSpainDataBanking.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'178SPAINDATATRANSPORTATION = '/api/macro/getSpainDataTransportation.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'179SPAINDATAENERGY = '/api/macro/getSpainDataEnergy.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'180SPAINDATAFINANCE = '/api/macro/getSpainDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'181CANADADATAGDP = '/api/macro/getCanadaDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'182CANADADATAPAYMENTSBALANCE = '/api/macro/getCanadaDataPaymentsBalance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'183CANADADATAFOREIGNTRADE = '/api/macro/getCanadaDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'184CANADADATAPRICEINDEX = '/api/macro/getCanadaDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'185CANADADATABANKING = '/api/macro/getCanadaDataBanking.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'186CANADADATAEMPLOYMENT = '/api/macro/getCanadaDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'187CANADADATAMANUFACTURING = '/api/macro/getCanadaDataManufacturing.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'188CANADADATAREALESTATE = '/api/macro/getCanadaDataRealEstate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'189CANADADATACLIMATEINDEX = '/api/macro/getCanadaDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'190HKDATAGDP = '/api/macro/getHKDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'191HKDATAFOREIGNTRADE = '/api/macro/getHKDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'192HKDATAPRICEINDEX = '/api/macro/getHKDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'193HKDATAFINANCE = '/api/macro/getHKDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'194HKDATABANKING = '/api/macro/getHKDataBanking.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'195HKDATAINDUSTRY = '/api/macro/getHKDataIndustry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'196HKDATACONSUMPTION = '/api/macro/getHKDataConsumption.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'197HKDATATHROUGHPUT = '/api/macro/getHKDataThroughput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'198HKDATAEMPLOYMENT = '/api/macro/getHKDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'199HKDATAINTERESTRATE = '/api/macro/getHKDataInterestRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'200HKDATAEXCHANGERATE = '/api/macro/getHKDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'201HKDATAREALESTATE = '/api/macro/getHKDataRealEstate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'202HKDATATOURISM = '/api/macro/getHKDataTourism.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'203INDIADATAGDP = '/api/macro/getIndiaDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'204INDIADATAPAYMENTSBALANCE = '/api/macro/getIndiaDataPaymentsBalance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'205INDIADATAPRICEINDEX = '/api/macro/getIndiaDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'206INDIADATATOURISM = '/api/macro/getIndiaDataTourism.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'207INDIADATAENERGY = '/api/macro/getIndiaDataEnergy.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'208INDIADATACLIMATEINDEX = '/api/macro/getIndiaDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'209INDIADATABANKING = '/api/macro/getIndiaDataBanking.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'210INDIADATAINDUSTRY = '/api/macro/getIndiaDataIndustry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'211INDIADATAFOREIGNTRADE = '/api/macro/getIndiaDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'212MALAYSIADATAGDP = '/api/macro/getMalaysiaDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'213MALAYSIADATAPAYMENTSBALANCE = '/api/macro/getMalaysiaDataPaymentsBalance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'214MALAYSIADATAFOREIGNTRADE = '/api/macro/getMalaysiaDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'215MALAYSIADATAPRICEINDEX = '/api/macro/getMalaysiaDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'216MALAYSIADATAEMPLOYMENT = '/api/macro/getMalaysiaDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'217MALAYSIADATAINDUSTRY = '/api/macro/getMalaysiaDataIndustry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'218MALAYSIADATAFINANCE = '/api/macro/getMalaysiaDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'219MALAYSIADATAMONEYSUPPLY = '/api/macro/getMalaysiaDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'220MALAYSIADATAREALESTATE = '/api/macro/getMalaysiaDataRealEstate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'221INDONESIADATAGDP = '/api/macro/getIndonesiaDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'222INDONESIADATAPAYMENTSBALANCE = '/api/macro/getIndonesiaDataPaymentsBalance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'223INDONESIADATAFOREIGNTRADE = '/api/macro/getIndonesiaDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'224INDONESIADATAPRICEINDEX = '/api/macro/getIndonesiaDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'225INDONESIADATAINDUSTRY = '/api/macro/getIndonesiaDataIndustry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'226INDONESIADATAFINANCE = '/api/macro/getIndonesiaDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'227INDONESIADATABANKING = '/api/macro/getIndonesiaDataBanking.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'228INDONESIADATASECURITY = '/api/macro/getIndonesiaDataSecurity.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'229INDONESIADATATOURISM = '/api/macro/getIndonesiaDataTourism.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'230TURKEYDATAGDP = '/api/macro/getTurkeyDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'231TURKEYDATAPAYMENTSBALANCE = '/api/macro/getTurkeyDataPaymentsBalance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'232TURKEYDATAFOREIGNTRADE = '/api/macro/getTurkeyDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'233TURKEYDATAPRICEINDEX = '/api/macro/getTurkeyDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'234TURKEYDATAEMPLOYMENT = '/api/macro/getTurkeyDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'235TURKEYDATAINDUSTRY = '/api/macro/getTurkeyDataIndustry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'236TURKEYDATAFINANCE = '/api/macro/getTurkeyDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'237TURKEYDATAMONEYSUPPLY = '/api/macro/getTurkeyDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'238THAILANDDATAGDP = '/api/macro/getThailandDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'239THAILANDDATAPAYMENTSBALANCE = '/api/macro/getThailandDataPaymentsBalance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'240THAILANDDATAFOREIGNTRADE = '/api/macro/getThailandDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'241THAILANDDATAPRICEINDEX = '/api/macro/getThailandDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'242THAILANDDATAEMPLOYMENT = '/api/macro/getThailandDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'243THAILANDDATAINDUSTRY = '/api/macro/getThailandDataIndustry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'244THAILANDDATAFINANCE = '/api/macro/getThailandDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'245THAILANDDATACLIMATEINDEX = '/api/macro/getThailandDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'246THAILANDDATAMONEYSUPPLY = '/api/macro/getThailandDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'247UKDATAGDP = '/api/macro/getUKDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'248UKDATAFOREIGNTRADE = '/api/macro/getUKDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'249UKDATACPI = '/api/macro/getUKDataCPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'250UKDATARPI = '/api/macro/getUKDataRPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'251UKDATAEMPLOYMENT = '/api/macro/getUKDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'252UKDATAMONEYSUPPLY = '/api/macro/getUKDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'253UKDATACONSUMERCREDIT = '/api/macro/getUKDataConsumerCredit.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'254UKDATACLIMATEINDEX = '/api/macro/getUKDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'255UKDATAFINANCE = '/api/macro/getUKDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'256UKDATAINDUSTRIALPI = '/api/macro/getUKDataIndustrialPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'257UKDATAHOUSEPI = '/api/macro/getUKDataHousePI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'258UKDATAINTERESTRATES = '/api/macro/getUKDataInterestRates.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'259UKDATAEXCHANGERATE = '/api/macro/getUKDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'260JAPANDATAGDP = '/api/macro/getJapanDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'261JAPANDATAFOREIGNTRADE = '/api/macro/getJapanDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'262JAPANDATACPI = '/api/macro/getJapanDataCPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'263JAPANDATAEMPLOYMENT = '/api/macro/getJapanDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'264JAPANDATAMONEYSUPPLY = '/api/macro/getJapanDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'265JAPANDATACLIMATEINDEX = '/api/macro/getJapanDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'266JAPANDATAINDUSTRIALPI = '/api/macro/getJapanDataIndustrialPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'267JAPANDATAHOUSEPI = '/api/macro/getJapanDataHousePI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'268JAPANDATAINTERESTRATES = '/api/macro/getJapanDataInterestRates.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'269JAPANDATAEXCHANGERATE = '/api/macro/getJapanDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'270GERMANYDATAGDP = '/api/macro/getGermanyDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'271GERMANYDATAFOREIGNTRADE = '/api/macro/getGermanyDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'272GERMANYDATACPI = '/api/macro/getGermanyDataCPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'273GERMANYDATAPPI = '/api/macro/getGermanyDataPPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'274GERMANYDATAIMPORTEXPORTPI = '/api/macro/getGermanyDataImportExportPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'275GERMANYDATAEMPLOYMENT = '/api/macro/getGermanyDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'276GERMANYDATAMONEYSUPPLY = '/api/macro/getGermanyDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'277GERMANYDATACLIMATEINDEX = '/api/macro/getGermanyDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'278GERMANYDATAFINANCE = '/api/macro/getGermanyDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'279GERMANYDATAINDUSTRIALPI = '/api/macro/getGermanyDataIndustrialPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'280GERMANYDATAREALESTATE = '/api/macro/getGermanyDataRealEstate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'281GERMANYDATADOMESTICTRADE = '/api/macro/getGermanyDataDomesticTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'282GERMANYDATAINTERESTRATES = '/api/macro/getGermanyDataInterestRates.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'283FRANCEDATAFINANCE = '/api/macro/getFranceDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'284FRANCEDATAGDP = '/api/macro/getFranceDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'285FRANCEDATAFOREIGNTRADE = '/api/macro/getFranceDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'286FRANCEDATACPI = '/api/macro/getFranceDataCPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'287FRANCEDATAPPI = '/api/macro/getFranceDataPPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'288FRANCEDATAIMPORTPI = '/api/macro/getFranceDataImportPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'289FRANCEDATAEMPLOYMENT = '/api/macro/getFranceDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'290FRANCEDATAMONEYSUPPLY = '/api/macro/getFranceDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'291FRANCEDATACLIMATEINDEX = '/api/macro/getFranceDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'292FRANCEDATAINDUSTRIALPI = '/api/macro/getFranceDataIndustrialPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'293FRANCEDATADOMESTICTRADE = '/api/macro/getFranceDataDomesticTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'294FRANCEDATAINTERESTRATES = '/api/macro/getFranceDataInterestRates.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'295TAIWANDATAGDP = '/api/macro/getTaiwanDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'296TAIWANDATAEXTERNALDEBT = '/api/macro/getTaiwanDataExternalDebt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'297TAIWANDATAFOREIGNTRADE = '/api/macro/getTaiwanDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'298TAIWANDATACPI = '/api/macro/getTaiwanDataCPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'299TAIWANDATAIMPORTEXPORTPI = '/api/macro/getTaiwanDataImportExportPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'300TAIWANDATAEMPLOYMENT = '/api/macro/getTaiwanDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'301TAIWANDATAMONEYSUPPLY = '/api/macro/getTaiwanDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'302TAIWANDATALENDINGDEPOSIT = '/api/macro/getTaiwanDataLendingDeposit.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'303TAIWANDATARESERVEFUND = '/api/macro/getTaiwanDataReserveFund.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'304TAIWANDATACLIMATEINDEX = '/api/macro/getTaiwanDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'305TAIWANDATAFINANCE = '/api/macro/getTaiwanDataFinance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'306TAIWANDATAINDUSTRIALPI = '/api/macro/getTaiwanDataIndustrialPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'307TAIWANDATAREALESTATE = '/api/macro/getTaiwanDataRealEstate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'308TAIWANDATATOURISM = '/api/macro/getTaiwanDataTourism.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'309TAIWANDATACROSSSTRAITTRADE = '/api/macro/getTaiwanDataCrossStraitTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'310TAIWANDATABUSINESSANDECONOMY = '/api/macro/getTaiwanDataBusinessandEconomy.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'311TAIWANDATAINTERESTRATES = '/api/macro/getTaiwanDataInterestRates.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'312TAIWANDATAEXCHANGERATE = '/api/macro/getTaiwanDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'313MACAODATAGDP = '/api/macro/getMacaoDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'314MACAODATAPRICEINDEX = '/api/macro/getMacaoDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'315MACAODATAEMPLOYMENT = '/api/macro/getMacaoDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'316MACAODATAMONEYSUPPLY = '/api/macro/getMacaoDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'317MACAODATAFOREIGNEXCHANGERESERVES = '/api/macro/getMacaoDataForeignExchangeReserves.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'318MACAODATATOURISM = '/api/macro/getMacaoDataTourism.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'319MACAODATAGAMINGINDUSTRY = '/api/macro/getMacaoDataGamingIndustry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'320MACAODATAINTERESTRATES = '/api/macro/getMacaoDataInterestRates.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'321MACAODATAEXCHANGERATE = '/api/macro/getMacaoDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'322RUSSIADATAGDP = '/api/macro/getRussiaDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'323RUSSIADATAFOREIGNTRADE = '/api/macro/getRussiaDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'324RUSSIADATACPI = '/api/macro/getRussiaDataCPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'325RUSSIADATAMONEYSUPPLY = '/api/macro/getRussiaDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'326RUSSIADATACLIMATEINDEX = '/api/macro/getRussiaDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'327RUSSIADATAINTERESTRATES = '/api/macro/getRussiaDataInterestRates.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'328RUSSIADATAEXCHANGERATE = '/api/macro/getRussiaDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'329BRAZILDATAGDP = '/api/macro/getBrazilDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'330BRAZILDATAFOREIGNTRADE = '/api/macro/getBrazilDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'331BRAZILDATAPRICEINDEX = '/api/macro/getBrazilDataPriceIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'332BRAZILDATAEMPLOYMENT = '/api/macro/getBrazilDataEmployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'333BRAZILDATAMONEYSUPPLY = '/api/macro/getBrazilDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'334BRAZILDATACLIMATEINDEX = '/api/macro/getBrazilDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'335BRAZILDATARETAILSALE = '/api/macro/getBrazilDataRetailSale.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'336BRAZILDATAINTERESTRATES = '/api/macro/getBrazilDataInterestRates.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'337BRAZILDATAEXCHANGERATE = '/api/macro/getBrazilDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'338SOUTHAFRICADATAGDP = '/api/macro/getSouthAfricaDataGDP.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'339SOUTHAFRICADATAEMPLOYMENTUNEMPLOYMENT = '/api/macro/getSouthAfricaDataEmploymentUnemployment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'340SOUTHAFRICADATAFOREIGNTRADE = '/api/macro/getSouthAfricaDataForeignTrade.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'341SOUTHAFRICADATACPI = '/api/macro/getSouthAfricaDataCPI.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'342SOUTHAFRICADATAMONEYSUPPLY = '/api/macro/getSouthAfricaDataMoneySupply.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'343SOUTHAFRICADATACLIMATEINDEX = '/api/macro/getSouthAfricaDataClimateIndex.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'344SOUTHAFRICADATAINDUSTRY = '/api/macro/getSouthAfricaDataIndustry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'345SOUTHAFRICADATAREALESTATE = '/api/macro/getSouthAfricaDataRealEstate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'346SOUTHAFRICADATARETAILSALES = '/api/macro/getSouthAfricaDataRetailSales.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'347SOUTHAFRICADATAINTERESTRATES = '/api/macro/getSouthAfricaDataInterestRates.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'348SOUTHAFRICADATAEXCHANGERATE = '/api/macro/getSouthAfricaDataExchangeRate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'349AGRICDATAPRICE = '/api/macro/getAgricDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'350AGRICDATAOUTPV = '/api/macro/getAgricDataOutpV.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'351AGRICDATAWASDE = '/api/macro/getAgricDataWASDE.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'352AGRICDATAIMPTEXPT = '/api/macro/getAgricDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'353FOODBVGDATAPRICE = '/api/macro/getFoodBvgDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'354FOODBVGDATASALESOUTPUT = '/api/macro/getFoodBvgDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'355FOODBVGDATAIMPTEXPT = '/api/macro/getFoodBvgDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'356COMMTRADEDATATRSCG = '/api/macro/getCommTradeDataTRSCG.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'357COMMTRADEDATASALES50LARGEEN = '/api/macro/getCommTradeDataSales50LargeEn.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'358COMMTRADEDATAINDEXKEYCIRCEN = '/api/macro/getCommTradeDataIndexKeyCircEn.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'359CATERTOURDATATRSCG = '/api/macro/getCaterTourDataTRSCG.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'360CATERTOURDATAHOTELSOPER = '/api/macro/getCaterTourDataHotelsOper.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'361CATERTOURDATANEWHOTEL = '/api/macro/getCaterTourDataNewHotel.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'362CATERTOURDATAINBOUNDTOUR = '/api/macro/getCaterTourDataInboundTour.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'363BIOMEDICINEDATASALESOUTPUT = '/api/macro/getBioMedicineDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'364BIOMEDICINEDATAIMPTEXPT = '/api/macro/getBioMedicineDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'365PETROCHEMDATAPRICE = '/api/macro/getPetrochemDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'366PETROCHEMDATASALESOUTPUT = '/api/macro/getPetrochemDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'367PETROCHEMDATAIMPTEXPT = '/api/macro/getPetrochemDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'368CLOTHTEXDATAPRICE = '/api/macro/getClothTexDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'369CLOTHTEXDATASALESOUTPUT = '/api/macro/getClothTexDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'370CLOTHTEXDATACOTTONWASDE = '/api/macro/getClothTexDataCottonWASDE.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'371CLOTHTEXDATAIMPTEXPT = '/api/macro/getClothTexDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'372LIGHTMANUFDATAPRICE = '/api/macro/getLightManufDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'373LIGHTMANUFDATASALESOUTPUT = '/api/macro/getLightManufDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'374LIGHTMANUFDATAIMPTEXPT = '/api/macro/getLightManufDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'375MININGDATAPRICE = '/api/macro/getMiningDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'376MININGDATAOUTPSALESTRANSP = '/api/macro/getMiningDataOutpSalesTransp.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'377MININGDATAIMPTEXPT = '/api/macro/getMiningDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'378FERMETALDATAPRICE = '/api/macro/getFerMetalDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'379FERMETALDATASALESOUTPUT = '/api/macro/getFerMetalDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'380FERMETALDATAIMPTEXPT = '/api/macro/getFerMetalDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'381NONFERMETALDATAPRICE = '/api/macro/getNonferMetalDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'382NONFERMETALDATASALESOUTPUT = '/api/macro/getNonferMetalDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'383NONFERMETALDATAIMPTEXPT = '/api/macro/getNonferMetalDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'384DELIVERYEQDATAPRICE = '/api/macro/getDeliveryEqDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'385DELIVERYEQDATASALESOUTPUT = '/api/macro/getDeliveryEqDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'386DELIVERYEQDATAIMPTEXPT = '/api/macro/getDeliveryEqDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'387TRAFFICTRANSDATARAILWAY = '/api/macro/getTrafficTransDataRailway.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'388TRAFFICTRANSDATAROAD = '/api/macro/getTrafficTransDataRoad.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'389TRAFFICTRANSDATAWATERWAY = '/api/macro/getTrafficTransDataWaterway.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'390TRAFFICTRANSDATAAIR = '/api/macro/getTrafficTransDataAir.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'391UTILINDUSTRYDATAPOWER = '/api/macro/getUtilIndustryDataPower.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'392UTILINDUSTRYDATAWATER = '/api/macro/getUtilIndustryDataWater.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'393UTILINDUSTRYDATAGAS = '/api/macro/getUtilIndustryDataGas.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'394UTILINDUSTRYDATAENVIRPROT = '/api/macro/getUtilIndustryDataEnvirProt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'395ELECCOMPDATAPRICE = '/api/macro/getElecCompDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'396ELECCOMPDATASALESOUTPUT = '/api/macro/getElecCompDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'397ELECCOMPDATAIMPTEXPT = '/api/macro/getElecCompDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'398INFOEQPTDATAPRICE = '/api/macro/getInfoEqptDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'399INFOEQPTDATASALESOUTPUT = '/api/macro/getInfoEqptDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'400INFOEQPTDATAIMPTEXPT = '/api/macro/getInfoEqptDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'401HOUSEHOLDAPLSDATASALESOUTPUT = '/api/macro/getHouseholdAplsDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'402HOUSEHOLDAPLSDATAIMPTEXPT = '/api/macro/getHouseholdAplsDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'403INFOSERVDATASOFTWARE = '/api/macro/getInfoServDataSoftware.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'404INFOSERVDATACOMM = '/api/macro/getInfoServDataComm.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'405INFOSERVDATAINTERNET = '/api/macro/getInfoServDataInternet.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'406REALESTDATAPRICE = '/api/macro/getRealEstDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'407REALESTDATAINVESTDVPT = '/api/macro/getRealEstDataInvestDvpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'408REALESTDATALAND = '/api/macro/getRealEstDataLand.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'409REALESTDATASALES = '/api/macro/getRealEstDataSales.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'410BLDGMATERDATAPRICE = '/api/macro/getBldgMaterDataPrice.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'411BLDGMATERDATASALESOUTPUT = '/api/macro/getBldgMaterDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'412MCHNREQPTDATASALESOUTPUT = '/api/macro/getMchnrEqptDataSalesOutput.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'413MCHNREQPTDATAIMPTEXPT = '/api/macro/getMchnrEqptDataImptExpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'414BANKDATAASSETSLIABILITIES = '/api/macro/getBankDataAssetsLiabilities.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'415BANKDATANONPERFORMINGLOANS = '/api/macro/getBankDataNonPerformingLoans.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'416SECURITIESDATAOPERINDIC = '/api/macro/getSecuritiesDataOperIndic.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'417INSDATAPREMPRYINSURANCE = '/api/macro/getInsDataPremPryInsurance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'418INSDATACLAIMPAYMENT = '/api/macro/getInsDataClaimPayment.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'419INSDATAFUNDBALANCE = '/api/macro/getInsDataFundBalance.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'420INSDATAASSETS = '/api/macro/getInsDataAssets.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'421ECOMMERCEDATAYILI = '/api/macro/getEcommerceDataYili.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'422ECOMMERCEDATAGUANGMING = '/api/macro/getEcommerceDataGuangming.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'423ECOMMERCEDATACHENGDELOLO = '/api/macro/getEcommerceDataChengDeLolo.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'424ECOMMERCEDATAQIAQIA = '/api/macro/getEcommerceDataQiaqia.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'425ECOMMERCEDATAVVGROUP = '/api/macro/getEcommerceDataVVGroup.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'426ECOMMERCEDATAJINFENGWINE = '/api/macro/getEcommerceDataJinfengWine.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'427ECOMMERCEDATAGUYUELONGSHAN = '/api/macro/getEcommerceDataGuyueLongshan.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'428ECOMMERCEDATASHANXIFENJIU = '/api/macro/getEcommerceDataShanxiFenjiu.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'429ECOMMERCEDATAZHANGYUA = '/api/macro/getEcommerceDataZhangyuA.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'430ECOMMERCEDATAMOGAO = '/api/macro/getEcommerceDataMogao.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'431ECOMMERCEDATAKEMENNOODLEMFG = '/api/macro/getEcommerceDataKemenNoodleMFG.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'432ECOMMERCEDATAJINZIHAM = '/api/macro/getEcommerceDataJinziHam.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'433ECOMMERCEDATALOTUS = '/api/macro/getEcommerceDataLotus.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'434ECOMMERCEDATABEIYINMATE = '/api/macro/getEcommerceDataBeiyinMate.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'435ECOMMERCEDATAQINGDAOHAIER = '/api/macro/getEcommerceDataQingdaoHaier.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'436ECOMMERCEDATATCLGROUP = '/api/macro/getEcommerceDataTCLGroup.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'437ECOMMERCEDATAMIDEAGROUP = '/api/macro/getEcommerceDataMideaGroup.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'438ECOMMERCEDATAWHIRLPOOL = '/api/macro/getEcommerceDataWhirlpool.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'439ECOMMERCEDATAJOYOUNG = '/api/macro/getEcommerceDataJoyoung.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'440ECOMMERCEDATAVATTI = '/api/macro/getEcommerceDataVatti.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'441ECOMMERCEDATASUPOR = '/api/macro/getEcommerceDataSupor.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'442ECOMMERCEDATAKONKA = '/api/macro/getEcommerceDataKonka.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'443ECOMMERCEDATACHANGHONG = '/api/macro/getEcommerceDataChanghong.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'444ECOMMERCEDATALITTLESWAN = '/api/macro/getEcommerceDataLittleSwan.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'445ECOMMERCEDATAMEILING = '/api/macro/getEcommerceDataMeiling.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'446ECOMMERCEDATAZTE = '/api/macro/getEcommerceDataZTE.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'447ECOMMERCEDATADATANGTELECOM = '/api/macro/getEcommerceDataDatangTelecom.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'448ECOMMERCEDATABIRD = '/api/macro/getEcommerceDataBird.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'449ECOMMERCEDATADAHUATECHNOLOGY = '/api/macro/getEcommerceDataDahuaTechnology.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'450ECOMMERCEDATATSINGHUATONGFANG = '/api/macro/getEcommerceDataTsinghuaTongfang.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'451ECOMMERCEDATAHEDY = '/api/macro/getEcommerceDataHedy.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'452ECOMMERCEDATAHADAY = '/api/macro/getEcommerceDataHaday.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'453ECOMMERCEDATAYANJINGBEER = '/api/macro/getEcommerceDataYanjingBeer.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'454ECOMMERCEDATAMAIQUER = '/api/macro/getEcommerceDataMaiquer.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'455ECOMMERCEDATACITICGUOANWINE = '/api/macro/getEcommerceDataCiticGuoanWine.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'456ECOMMERCEDATAQINGQINGBARLEYWINE = '/api/macro/getEcommerceDataQingqingBarleyWine.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'457ECOMMERCEDATAHAOXIANGNI = '/api/macro/getEcommerceDataHaoxiangni.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'458ECOMMERCEDATAFULINGZHACAI = '/api/macro/getEcommerceDataFulingZhacai.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'459ECOMMERCEDATAHUANGSHANGHUANG = '/api/macro/getEcommerceDataHuangshanghuang.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'460ECOMMERCEDATAHAINANYEDAO = '/api/macro/getEcommerceDataHainanYedao.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'461ECOMMERCEDATASHUANGTAFOOD = '/api/macro/getEcommerceDataShuangtaFood.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'462ECOMMERCEDATAJIUGUILIQUOR = '/api/macro/getEcommerceDataJiuguiLiquor.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'463ECOMMERCEDATABLACKSESAME = '/api/macro/getEcommerceDataBlackSesame.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'464ECOMMERCEDATAKINGSLUCK = '/api/macro/getEcommerceDataKingsLuck.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'465ECOMMERCEDATALAOBAIGANLIQUOR = '/api/macro/getEcommerceDataLaobaiganLiquor.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'466ECOMMERCEDATASHUANGHUIDVPT = '/api/macro/getEcommerceDataShuanghuiDvpt.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'467OPT = '/api/options/getOpt.csv?contractStatus=%s&optID=%s&secID=%s&ticker=%s&varSecID=%s&varticker=%s&field=%s'468MKTOPTD = '/api/market/getMktOptd.csv?optID=%s&secID=%s&ticker=%s&tradeDate=%s&beginDate=%s&endDate=%s&field=%s'469SOCIALDATAXQ = '/api/subject/getSocialDataXQ.csv?beginDate=%s&endDate=%s&ticker=%s&field=%s'470SOCIALDATAXQBYTICKER = '/api/subject/getSocialDataXQByTicker.csv?ticker=%s&field=%s'471SOCIALDATAXQBYDATE = '/api/subject/getSocialDataXQByDate.csv?statisticsDate=%s&field=%s'472OPTVAR = '/api/options/getOptVar.csv?exchangeCD=%s&secID=%s&ticker=%s&contractType=%s&exerType=%s&field=%s'473NEWSINFO = '/api/subject/getNewsInfo.csv?newsID=%s&field=%s'474NEWSINFOBYTIME = '/api/subject/getNewsInfoByTime.csv?newsPublishDate=%s&beginTime=%s&endTime=%s&field=%s'475NEWSCONTENT = '/api/subject/getNewsContent.csv?newsID=%s&field=%s'476NEWSCONTENTBYTIME = '/api/subject/getNewsContentByTime.csv?newsPublishDate=%s&beginTime=%s&endTime=%s&field=%s'477COMPANYBYNEWS = '/api/subject/getCompanyByNews.csv?newsID=%s&field=%s'478NEWSBYCOMPANY = '/api/subject/getNewsByCompany.csv?partyID=%s&beginDate=%s&endDate=%s&field=%s'479TICKERSBYNEWS = '/api/subject/getTickersByNews.csv?newsID=%s&field=%s'480NEWSBYTICKERS = '/api/subject/getNewsByTickers.csv?secID=%s&secShortName=%s&ticker=%s&beginDate=%s&endDate=%s&exchangeCD=%s&field=%s'481MKTEQUDADJ = '/api/market/getMktEqudAdj.csv?secID=%s&ticker=%s&tradeDate=%s&beginDate=%s&endDate=%s&field=%s'482MKTADJF = '/api/market/getMktAdjf.csv?secID=%s&ticker=%s&field=%s'483OPTIONTICKRTSNAPSHOT = '/api/market/getOptionTickRTSnapshot.csv?optionId=%s&field=%s'484FUTUREBARRTINTRADAY = '/api/market/getFutureBarRTIntraDay.csv?instrumentID=%s&endTime=%s&startTime=%s&field=%s'485MKTFUTDVOL = '/api/market/getMktFutdVol.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'486THEMESCONTENT = '/api/subject/getThemesContent.csv?isMain=%s&themeID=%s&themeName=%s&themeSource=%s&field=%s'487TICKERSBYTHEMES = '/api/subject/getTickersByThemes.csv?themeID=%s&themeName=%s&beginDate=%s&endDate=%s&isNew=%s&field=%s'488THEMESTICKERSINSERT = '/api/subject/getThemesTickersInsert.csv?themeID=%s&themeName=%s&beginDate=%s&endDate=%s&field=%s'489THEMESTICKERSDELETE = '/api/subject/getThemesTickersDelete.csv?themeID=%s&themeName=%s&beginDate=%s&endDate=%s&field=%s'490THEMESBYTICKERS = '/api/subject/getThemesByTickers.csv?secID=%s&secShortName=%s&ticker=%s&beginDate=%s&endDate=%s&exchangeCD=%s&field=%s'491THEMESPERIOD = '/api/subject/getThemesPeriod.csv?isLatest=%s&themeID=%s&themeName=%s&field=%s'492ACTIVETHEMES = '/api/subject/getActiveThemes.csv?date=%s&field=%s'493THEMESSIMILARITY = '/api/subject/getThemesSimilarity.csv?themeID=%s&themeName=%s&field=%s'494THEMESHEAT = '/api/subject/getThemesHeat.csv?themeID=%s&themeName=%s&beginDate=%s&endDate=%s&field=%s'495SECTORTHEMESBYTICKERS = '/api/subject/getSectorThemesByTickers.csv?secID=%s&secShortName=%s&ticker=%s&beginDate=%s&endDate=%s&exchangeCD=%s&field=%s'496WEBTHEMESBYTICKERS = '/api/subject/getWebThemesByTickers.csv?secID=%s&secShortName=%s&ticker=%s&beginDate=%s&endDate=%s&exchangeCD=%s&field=%s'497MKTEQUDLATELY = '/api/market/getMktEqudLately.csv?field=%s'498FDMTISLATELY = '/api/fundamental/getFdmtISLately.csv?field=%s'499NEWSHEATINDEX = '/api/subject/getNewsHeatIndex.csv?beginDate=%s&endDate=%s&exchangeCD=%s&secID=%s&secShortName=%s&ticker=%s&field=%s'500NEWSSENTIMENTINDEX = '/api/subject/getNewsSentimentIndex.csv?beginDate=%s&endDate=%s&exchangeCD=%s&secID=%s&secShortName=%s&ticker=%s&field=%s'501SECTYPEREL = '/api/master/getSecTypeRel.csv?secID=%s&ticker=%s&typeID=%s&field=%s'502REPORTBYTICKER = '/api/subject/getReportByTicker.csv?ticker=%s&beginDate=%s&endDate=%s&field=%s'503REPORTBYCATEGORY = '/api/subject/getReportByCategory.csv?beginDate=%s&Category=%s&endDate=%s&field=%s'504REPORTCONTENT = '/api/subject/getReportContent.csv?ticker=%s&beginDate=%s&endDate=%s&field=%s'505MKTLIMIT = '/api/market/getMktLimit.csv?secID=%s&ticker=%s&tradeDate=%s&field=%s'506ECOMMERCEDATAWULIANGYE = '/api/macro/getEcommerceDataWuliangye.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'507ECOMMERCEDATAGREE = '/api/macro/getEcommerceDataGree.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'508ECOMMERCEDATAHISENSEELECTRIC = '/api/macro/getEcommerceDataHisenseElectric.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'509ECOMMERCEDATAHISENSE = '/api/macro/getEcommerceDataHisense.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'510ECOMMERCEDATAJIAJIAFOOD = '/api/macro/getEcommerceDataJiajiaFood.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'511ECOMMERCEDATAROBAM = '/api/macro/getEcommerceDataRobam.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'512ECOMMERCEDATAASD = '/api/macro/getEcommerceDataASD.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'513ECOMMERCEDATAMACRO = '/api/macro/getEcommerceDataMacro.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'514ECOMMERCEDATAELECPRO = '/api/macro/getEcommerceDataElecpro.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'515ECOMMERCEDATASANGLEJIN = '/api/macro/getEcommerceDataSanglejin.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'516ECOMMERCEDATAHOMA = '/api/macro/getEcommerceDataHoma.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'517ECOMMERCEDATALONGDAMEAT = '/api/macro/getEcommerceDataLongdaMeat.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'518ECOMMERCEDATABYHEALTH = '/api/macro/getEcommerceDataByHealth.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'519ECOMMERCEDATAHAIXIN = '/api/macro/getEcommerceDataHaixin.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'520ECOMMERCEDATAVANWARD = '/api/macro/getEcommerceDataVanward.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'521ECOMMERCEDATAMEIDA = '/api/macro/getEcommerceDataMeida.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'522ECOMMERCEDATAHENGSHUNVINEGARINDUSTRY = '/api/macro/getEcommerceDataHengshunVinegarindustry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'523ECOMMERCEDATASHUIJINGFANG = '/api/macro/getEcommerceDataShuijingfang.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'524ECOMMERCEDATACHUNLAN = '/api/macro/getEcommerceDataChunlan.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'525ECOMMERCEDATAYILITE = '/api/macro/getEcommerceDataYilite.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'526ECOMMERCEDATAHUANGSHI = '/api/macro/getEcommerceDataHuangshi.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'527ECOMMERCEDATAYANGHE = '/api/macro/getEcommerceDataYanghe.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'528ECOMMERCEDATASANYUAN = '/api/macro/getEcommerceDataSanyuan.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'529ECOMMERCEDATATUOPAISHEDE = '/api/macro/getEcommerceDataTuopaiShede.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'530ECOMMERCEDATAKUAIJISHAN = '/api/macro/getEcommerceDataKuaijishan.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'531ECOMMERCEDATATONGHUA = '/api/macro/getEcommerceDataTonghua.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'532ECOMMERCEDATAKWEICHOWMOUTAIGROUP = '/api/macro/getEcommerceDataKweichowMoutaiGroup.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'533ECOMMERCEDATATSINGTAO = '/api/macro/getEcommerceDataTsingTao.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'534ACTIVETHEMESINSERT = '/api/subject/getActiveThemesInsert.csv?beginDate=%s&endDate=%s&isLatest=%s&themeSource=%s&field=%s'535ACTIVETHEMESDELETE = '/api/subject/getActiveThemesDelete.csv?beginDate=%s&endDate=%s&isLatest=%s&themeSource=%s&field=%s'536EQUINFO = '/api/master/getEquInfo.csv?ticker=%s&field=%s'537SECTIPS = '/api/market/getSecTips.csv?tipsTypeCD=%s&field=%s'538THEMESCLUSTER = '/api/subject/getThemesCluster.csv?isMain=%s&themeID=%s&themeName=%s&field=%s'539THEMESBYNEWS = '/api/subject/getThemesByNews.csv?insertDate=%s&insertDate=%s&newsID=%s&beginTime=%s&endTime=%s&field=%s'540BARRTINTRADAYONEMINUTE = '/api/market/getBarRTIntraDayOneMinute.csv?time=%s&field=%s'541EQURTRANK = '/api/market/getEquRTRank.csv?desc=%s&exchangeCD=%s&field=%s'542ECOMMERCEDATAGUJING = '/api/macro/getEcommerceDataGujing.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'543ECOMMERCEDATALUZHOULAOJIAO = '/api/macro/getEcommerceDataLuzhouLaojiao.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'544ECOMMERCEDATASHANGHAIMALING = '/api/macro/getEcommerceDataShanghaiMaling.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'545ECOMMERCEDATABLACKCATTLEFOOD = '/api/macro/getEcommerceDataBlackCattleFood.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'546ECOMMERCEDATADELISI = '/api/macro/getEcommerceDataDelisi.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'547ECOMMERCEDATASTARLAKEBIOSCIENCE = '/api/macro/getEcommerceDataStarLakeBioscience.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'548ECOMMERCEDATAJONJEEHITECH = '/api/macro/getEcommerceDataJonjeeHiTech.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'549ECOMMERCEDATACRSANJIU = '/api/macro/getEcommerceDataCRSanjiu.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'550ECOMMERCEDATAJIUZHITANG = '/api/macro/getEcommerceDataJiuzhitang.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'551ECOMMERCEDATAFUANNA = '/api/macro/getEcommerceDataFuanna.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'552ECOMMERCEDATALUOLAI = '/api/macro/getEcommerceDataLuolai.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'553ECOMMERCEDATAGUIRENNIAO = '/api/macro/getEcommerceDataGuirenniao.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'554ECOMMERCEDATABAOXINIAO = '/api/macro/getEcommerceDataBaoxiniao.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'555ECOMMERCEDATALAOFENGXIANG = '/api/macro/getEcommerceDataLaofengxiang.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'556ECOMMERCEDATAFIYTAA = '/api/macro/getEcommerceDataFiytaA.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'557ECOMMERCEDATAGOLDLEAFJEWELRY = '/api/macro/getEcommerceDataGoldleafJewelry.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'558ECOMMERCEDATACOMIXGROUP = '/api/macro/getEcommerceDataComixGroup.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'559ECOMMERCEDATAYAOJIPLAYINGCARD = '/api/macro/getEcommerceDataYaojiPlayingCard.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'560ECOMMERCEDATAMGSTATIONERY = '/api/macro/getEcommerceDataMGStationery.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'561ECOMMERCEDATACS = '/api/macro/getEcommerceDataCS.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'562ECOMMERCEDATAEDIFIER = '/api/macro/getEcommerceDataEdifier.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'563ECOMMERCEDATAHIKVISION = '/api/macro/getEcommerceDataHikVision.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'564ECOMMERCEDATASOLAREAST = '/api/macro/getEcommerceDataSolareast.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'565ECOMMERCEDATACHIGO = '/api/macro/getEcommerceDataChigo.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'566ECOMMERCEDATAAUCMA = '/api/macro/getEcommerceDataAucma.csv?indicID=%s&indicName=%s&beginDate=%s&endDate=%s&field=%s'567THEMESBYNEWSCOMPANYREL = '/api/subject/getThemesByNewsCompanyRel.csv?insertDate=%s&insertDate=%s&newsID=%s&beginTime=%s&endTime=%s&field=%s'568THEMESINSERTDB = '/api/subject/getThemesInsertDB.csv?beginDate=%s&endDate=%s&themeSource=%s&field=%s'569THEMESBYNEWSLF = '/api/subject/getThemesByNewsLF.csv?insertDate=%s&insertDate=%s&newsID=%s&beginTime=%s&endTime=%s&field=%s'570THEMESBYNEWSMF = '/api/subject/getThemesByNewsMF.csv?insertDate=%s&insertDate=%s&newsID=%s&beginTime=%s&endTime=%s&field=%s'571INDUSTRYTICKRTSNAPSHOT = '/api/market/getIndustryTickRTSnapshot.csv?securityID=%s&field=%s'572NEWSINFOBYINSERTTIME = '/api/subject/getNewsInfoByInsertTime.csv?newsInsertDate=%s&beginTime=%s&endTime=%s&field=%s'573NEWSCONTENTBYINSERTTIME = '/api/subject/getNewsContentByInsertTime.csv?newsInsertDate=%s&beginTime=%s&endTime=%s&field=%s'574SECTYPEREGIONREL = '/api/master/getSecTypeRegionRel.csv?secID=%s&ticker=%s&typeID=%s&field=%s'575SECTYPE = '/api/master/getSecType.csv?field=%s'576SECTYPEREGION = '/api/master/getSecTypeRegion.csv?field=%s'577SOCIALDATAGUBA = '/api/subject/getSocialDataGuba.csv?beginDate=%s&endDate=%s&ticker=%s&field=%s'578SOCIALTHEMEDATAGUBA = '/api/subject/getSocialThemeDataGuba.csv?beginDate=%s&endDate=%s&themeID=%s&field=%s'579FUNDSHARESCHG = '/api/fund/getFundSharesChg.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'580THEMESBYNEWSTIME = '/api/subject/getThemesByNewsTime.csv?publishBeginTime=%s&publishEndTime=%s&field=%s'581THEMESBYNEWSTIMECOMPANYREL = '/api/subject/getThemesByNewsTimeCompanyRel.csv?publishBeginTime=%s&publishEndTime=%s&field=%s'582THEMESBYNEWSTIMELF = '/api/subject/getThemesByNewsTimeLF.csv?publishBeginTime=%s&publishEndTime=%s&field=%s'583THEMESBYNEWSTIMEMF = '/api/subject/getThemesByNewsTimeMF.csv?publishBeginTime=%s&publishEndTime=%s&field=%s'584MKTFUNDDADJAF = '/api/market/getMktFunddAdjAf.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'585REPORTCONTENTBYID = '/api/subject/getReportContentByID.csv?reportID=%s&field=%s'586THEMESBYNEWS2 = '/api/subject/getThemesByNews2.csv?insertBeginTime=%s&insertEndTime=%s&newsID=%s&field=%s'587THEMESBYNEWSTIME2 = '/api/subject/getThemesByNewsTime2.csv?publishBeginTime=%s&publishEndTime=%s&field=%s'588SYSCODE = '/api/master/getSysCode.csv?codeTypeID=%s&valueCD=%s&field=%s'589FUNDLEVERAGEINFO = '/api/fund/getFundLeverageInfo.csv?exchangeCDLeverage=%s&secID=%s&ticker=%s&field=%s'590SECST = '/api/equity/getSecST.csv?secID=%s&ticker=%s&beginDate=%s&endDate=%s&field=%s'591DERIV = '/api/IV/getDerIv.csv?beginDate=%s&endDate=%s&optID=%s&SecID=%s&field=%s'592DERIVHV = '/api/IV/getDerIvHv.csv?beginDate=%s&endDate=%s&SecID=%s&period=%s&field=%s'593DERIVINDEX = '/api/IV/getDerIvIndex.csv?beginDate=%s&endDate=%s&SecID=%s&period=%s&field=%s'594DERIVIVPDELTA = '/api/IV/getDerIvIvpDelta.csv?beginDate=%s&endDate=%s&SecID=%s&delta=%s&period=%s&field=%s'595DERIVPARAM = '/api/IV/getDerIvParam.csv?beginDate=%s&endDate=%s&SecID=%s&expDate=%s&field=%s'596DERIVRAWDELTA = '/api/IV/getDerIvRawDelta.csv?beginDate=%s&endDate=%s&SecID=%s&delta=%s&period=%s&field=%s'
...ctrl_gen.py
Source:ctrl_gen.py  
1#!/usr/bin/python 2import math3from ctrl_func import *4##########################################################5print "//##########################################################"6print "// Generated Fowarding Adder Network Controller (FAN topology routing)"7print "// Author: Eric Qin"8print "// Contact: ecqin@gatech.edu"9print "//##########################################################\n\n"10##########################################################11##########################################################12# Generating module initization and input/output ports13##########################################################14print "module fan_ctrl # ("15print "\tparameter DATA_TYPE = ", OUT_DATA_TYPE, ","16print "\tparameter NUM_PES = ", NUM_PES, ","17print "\tparameter LOG2_PES = ", LOG2_PES, ") ("18print "\tclk,"19print "\trst,"20print "\ti_vn," # different partial sum bit seperator21print "\ti_stationary," # determine if input is for stationary or streaming 22print "\ti_data_valid," # if input data is valid or not23print "\to_reduction_add," # if adder needs to add24print "\to_reduction_cmd," # reduction command (VN outputs)25print "\to_reduction_sel," # reduction select for the N-2 muxes26print "\to_reduction_valid" # if reduction output from FAN is valid or not27print ");" 28print "\tinput clk;"29print "\tinput rst;"30print "\tinput [NUM_PES*LOG2_PES-1: 0] i_vn; // different partial sum bit seperator"31print "\tinput i_stationary; // if input data is for stationary or streaming"32print "\tinput i_data_valid; // if input data is valid or not"33print "\toutput reg [(NUM_PES-1)-1:0] o_reduction_add; // determine to add or not"34print "\toutput reg [3*(NUM_PES-1)-1:0] o_reduction_cmd; // reduction command (for VN commands)"35NUM_SEL_BITS = get_sel_bits()36print "\toutput reg [" + str(int(NUM_SEL_BITS- 1)) + " : 0] o_reduction_sel; // select bits for FAN topology"37print "\toutput reg o_reduction_valid; // if reduction output from FAN is valid or not\n"38##########################################################39# Generate wire and reg declarations 40##########################################################41# not flopped cmd and sel signals42print "\t// reduction cmd and sel control bits (not flopped for timing yet)"43print "\treg [(NUM_PES-1)-1:0] r_reduction_add;"44print "\treg [3*(NUM_PES-1)-1:0] r_reduction_cmd;"45print "\treg [" + str(int(NUM_SEL_BITS - 1)) + " : 0] r_reduction_sel;"46print "\n"47# diagonal flops for timing leveling (adder en signal)48print "\t// diagonal flops for timing fix across different levels in tree (add_en signal)"49for i in range(LOG2_PES):50	add_max_range = get_adder_lvl(i)51	print "\treg [" + str(add_max_range) + " : 0] r_add_lvl_" +  str(i) + ";"52print "\n"53# diagonal flops for timing leveling (cmd signal)54print "\t// diagonal flops for timing fix across different levels in tree (cmd signal)"55for i in range(LOG2_PES):56	max_range = get_cmd_lvl(i)57	print "\treg [" + str(max_range) + " : 0] r_cmd_lvl_" +  str(i) + ";"58print "\n"59	60# diagonal flops for timing leveling (sel signal)61print "\t// diagonal flops for timing fix across different levels in tree (sel signal)"62for i in range(LOG2_PES-2):63	max_range = get_sel_lvl(i+2) # plus two as first two levels do not need sel64	print "\treg [" + str(max_range) + " : 0] r_sel_lvl_" +  str(i+2) + ";"65print "\n"66# timing alignment signals for i_vn delay and for output valid67VALID_DELAY = 4 # test which value works for timing alignment68CMD_SEL_DELAY = 2 # test which value works for timing alignment69print "\t// timing alignment for i_vn delay and for output valid"70print "\treg [" + str(CMD_SEL_DELAY) + "*NUM_PES*LOG2_PES-1:0] r_vn;"71print "\treg [NUM_PES*LOG2_PES-1:0] w_vn;"72print "\treg [" + str(VALID_DELAY) + " : 0 ] r_valid;" 73print "\n"74##########################################################75# Generate FF for i_vn cycle delays76##########################################################77print "\tgenvar i, x;;"78# add flip flops to delay i_vn79print "\t// add flip flops to delay i_vn"80print "\tgenerate"81print "\t\tfor (i=0; i < " + str(CMD_SEL_DELAY) + "; i=i+1) begin : vn_ff"82print "\t\t\tif (i == 0) begin: pass"83print "\t\t\t\talways @ (posedge clk) begin"84print "\t\t\t\t\tif (rst == 1'b1) begin"85print "\t\t\t\t\t\tr_vn[(i+1)*NUM_PES*LOG2_PES-1:i*NUM_PES*LOG2_PES] <= 'd0;"86print "\t\t\t\t\tend else begin"87print "\t\t\t\t\t\tr_vn[(i+1)*NUM_PES*LOG2_PES-1:i*NUM_PES*LOG2_PES] <= i_vn;"88print "\t\t\t\t\tend"89print "\t\t\t\tend"90print "\t\t\tend else begin: flop"91print "\t\t\t\talways @ (posedge clk) begin"92print "\t\t\t\t\tif (rst == 1'b1) begin"93print "\t\t\t\t\t\tr_vn[(i+1)*NUM_PES*LOG2_PES-1:i*NUM_PES*LOG2_PES] <= 'd0;"94print "\t\t\t\t\tend else begin"95print "\t\t\t\t\t\tr_vn[(i+1)*NUM_PES*LOG2_PES-1:i*NUM_PES*LOG2_PES] <= r_vn[i*NUM_PES*LOG2_PES-1:(i-1)*NUM_PES*LOG2_PES];"96print "\t\t\t\t\tend"97print "\t\t\t\tend"98print "\t\t\tend"99print "\t\tend"100print "\tendgenerate\n"101# assign last flop to w_vn102print "\t// assign last flop to w_vn"103print "\talways @(*) begin"104print "\t\tw_vn = r_vn[" + str(CMD_SEL_DELAY) + "*NUM_PES*LOG2_PES-1:" + str(CMD_SEL_DELAY-1) + "*NUM_PES*LOG2_PES];" 105print "\tend"106print "\n"107##########################################################108##########################################################109##########################################################110# Controller Logic to Compute CMD and SEL bits for each adder111##########################################################112for i in range(LOG2_PES):113	print "\t// generating control bits for lvl: " + str(i)114	if ( i < LOG2_PES -1): 115		print "\t// Note: lvl 0 and 1 do not require sel bits"116		print "\tgenerate"117		print "\t\tfor (x=0; x < " + str(NUM_PES >> (i+1)) + "; x=x+1) begin: adders_lvl_" + str(i)118		############################################### LEFT CASE ###########################################119		print "\t\t\tif (x == 0) begin: l_edge_case"120		print "\t\t\t\talways @ (*) begin"121		print "\t\t\t\t\tif (rst == 1'b1) begin"122		print "\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 'd0;"123		print "\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 'd0;"124		if (i > 1): # need select logic for level 2 and over125			print "\t\t\t\t\t\t"  + generate_sel_range(i, "full") + " = 'd0;"126		print "\t\t\t\t\tend else begin"127		print "\t\t\t\t\t\t// generate cmd logic"128		print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"129		print "\t\t\t\t\t\t\tif (" + generate_lvl_wn_range(i, "add", "left") + ") begin"130		print "\t\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b1; // add enable"131		print "\t\t\t\t\t\t\tend else begin"132		print "\t\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b0;"133		print "\t\t\t\t\t\t\tend"134		print "\n"135		print "\t\t\t\t\t\t\tif (" + generate_lvl_wn_range(i, "bothpass", "left") +  ") begin"136		print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b101; // both vn done"137		if (i > 0):138			print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "rightpass", "middle") + ") begin"139			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b100; // right vn done"140			print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "leftpass", "left") + ") begin"141			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b011; // left vn done"				142		else:	143			print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "leftpass", "left") + ") begin"144			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b011; // left vn done"145		print "\t\t\t\t\t\t\tend else begin"146		print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b000; // nothing"147		print "\t\t\t\t\t\t\tend"148		print "\t\t\t\t\t\tend else begin"149		print "\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b0;"150		print "\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b000; // nothing"151		print "\t\t\t\t\t\tend\n"152		if (i > 1): # need select logic153			print "\t\t\t\t\t\t// generate left select logic"154			print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"155			print generate_sel_statement(i, "left", "no")156			print "\t\t\t\t\t\tend else begin"157			print generate_sel_statement(i, "left", "yes")158			print "\t\t\t\t\t\tend\n"159			print "\n\t\t\t\t\t\t// generate right select logic"160			print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"161			print generate_sel_statement(i, "right", "no")162			print "\t\t\t\t\t\tend else begin"163			print generate_sel_statement(i, "right", "yes")164			print "\t\t\t\t\t\tend\n"165		print "\t\t\t\t\tend"166		print "\t\t\t\tend"167		############################################### RIGHT CASE ###########################################168		print "\t\t\tend else if (x == " + str((NUM_PES >> (i+1)) -1 )  + ") begin: r_edge_case"169		print "\t\t\t\talways @ (*) begin"170		print "\t\t\t\t\tif (rst == 1'b1) begin"171		print "\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) +  "+x] = 'd0;"172		print "\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 'd0;"173		if (i > 1): # need select logic for level 2 and over174			print "\t\t\t\t\t\t" + generate_sel_range(i, "full") + " = 'd0;"	175		print "\t\t\t\t\tend else begin"176		print "\t\t\t\t\t\t// generate cmd logic"177		print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"178		print "\t\t\t\t\t\t\tif (" + generate_lvl_wn_range(i, "add", "right") + ") begin"179		print "\t\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b1; // add enable"180		print "\t\t\t\t\t\t\tend else begin"181		print "\t\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b0;"182		print "\t\t\t\t\t\t\tend"183		print "\n"184		print "\t\t\t\t\t\t\tif (" + generate_lvl_wn_range(i, "bothpass", "right") + ") begin"185		print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b101; // both vn done"186		if (i > 0):187			print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "leftpass", "middle") + ") begin"188			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b011; // left vn done"189			print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "rightpass", "right") + ") begin"190			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b100; // right vn done"				191		else:	192			print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "rightpass", "right") + ") begin"193			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b100; // right vn done"194		print "\t\t\t\t\t\t\tend else begin"195		print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b000; // nothing"196		print "\t\t\t\t\t\t\tend\n"197		print "\t\t\t\t\t\tend else begin"198		print "\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b0;"199		print "\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b000; // nothing"200		print "\t\t\t\t\t\tend\n"201		if (i > 1): # need select logic202			print "\t\t\t\t\t\t// generate left select logic"203			print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"204			print generate_sel_statement(i, "left", "no")205			print "\t\t\t\t\t\tend else begin"206			print generate_sel_statement(i, "left", "yes")207			print "\t\t\t\t\t\tend\n"208			print "\n\t\t\t\t\t\t// generate right select logic"209			print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"210			print generate_sel_statement(i, "right", "no")211			print "\t\t\t\t\t\tend else begin"212			print generate_sel_statement(i, "right", "yes")213			print "\t\t\t\t\t\tend\n"214		print "\t\t\t\t\tend"215		print "\t\t\t\tend"	216		############################################### NORMAL ###########################################217		print "\t\t\tend else begin: normal"218		print "\t\t\t\talways @ (*) begin"219		print "\t\t\t\t\tif (rst == 1'b1) begin"220		print "\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) +  "+x] = 'd0;"221		print "\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 'd0;"222		if (i > 1): # need select logic for level 2 and over223			print "\t\t\t\t\t\t"  + generate_sel_range(i, "full") + " = 'd0;"224		print "\t\t\t\t\tend else begin"225		print "\t\t\t\t\t\t// generate cmd logic"226		print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"227		print "\t\t\t\t\t\t\tif (" + generate_lvl_wn_range(i, "add", "middle") + ") begin"228		print "\t\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b1; // add enable"229		print "\t\t\t\t\t\t\tend else begin"230		print "\t\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b0;"231		print "\t\t\t\t\t\t\tend"232		print "\n"233		print "\t\t\t\t\t\t\tif (" + generate_lvl_wn_range(i, "bothpass", "middle") + ") begin"234		print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b101; // both vn done"235		if (i > 0):236			print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "rightpass", "middle") + ") begin"237			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b100; // right vn done"238			print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "leftpass", "middle") + ") begin"239			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b011; // left vn done"				240		else:241			print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "rightpass", "middle") + ") begin"242			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b100; // right vn done"243			print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "leftpass", "middle") + ") begin"244			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b011; // left vn done"245		print "\t\t\t\t\t\t\tend else begin"246		if (i == 0): # bypass247			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b001; // bypass"248		else: # no bypass needed249			print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b000; // nothing"250		print "\t\t\t\t\t\t\tend\n"251		print "\t\t\t\t\t\tend else begin"252		print "\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b0;"253		print "\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b000; // nothing"254		print "\t\t\t\t\t\tend\n"255		if (i > 1): # need select logic256			print "\t\t\t\t\t\t// generate left select logic"257			print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"258			print generate_sel_statement(i, "left", "no") 259			print "\t\t\t\t\t\tend else begin"260			print generate_sel_statement(i, "left", "yes")261			print "\t\t\t\t\t\tend\n"262			print "\n\t\t\t\t\t\t// generate right select logic"263			print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"264			print generate_sel_statement(i, "right", "no")265			print "\t\t\t\t\t\tend else begin"266			print generate_sel_statement(i, "right", "yes")267			print "\t\t\t\t\t\tend\n"268		print "\t\t\t\t\tend"269		print "\t\t\t\tend"	270		print "\t\t\tend"271		print "\t\tend"272		print "\tendgenerate\n"273	############################################### LAST LEVEL ###########################################274	else: # last level275		print "\tgenerate"276		print "\t\tfor (x=0; x < " + str(NUM_PES >> (i+1)) + "; x=x+1) begin: adders_lvl_" + str(i)277		print "\t\t\tif (x == 0) begin: middle_case"278		print "\t\t\t\talways @ (*) begin"279		print "\t\t\t\t\tif (rst == 1'b1) begin"280		print "\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) +  "+x] = 'd0;"281		print "\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 'd0;"282		if (i > 1): # need select logic for level 2 and over283			print "\t\t\t\t\t\t"  + generate_sel_range(i, "full") + " = 'd0;"284		print "\t\t\t\t\tend else begin"285		print "\t\t\t\t\t\t// generate cmd logic"286		print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"287		print "\t\t\t\t\t\t\tif (" + generate_lvl_wn_range(i, "add", "last") + ") begin"288		print "\t\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b1; // add enable"289		print "\t\t\t\t\t\t\tend else begin"290		print "\t\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b0;"291		print "\t\t\t\t\t\t\tend"292		print "\n"293		print "\t\t\t\t\t\t\tif (" + generate_lvl_wn_range(i, "bothpass", "last") + ") begin"294		print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b101; // both vn done"295		print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "rightpass", "last") + ") begin"296		print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b100; // right vn done"297		print "\t\t\t\t\t\t\tend else if (" + generate_lvl_wn_range(i, "leftpass", "last") + ") begin"298		print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b011; // left vn done"299		print "\t\t\t\t\t\t\tend else begin"300		print "\t\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b000; // nothing"301		print "\t\t\t\t\t\t\tend\n"302		print "\t\t\t\t\t\tend else begin"303		print "\t\t\t\t\t\t\tr_reduction_add[" + get_cmd_shift_accum(i) + "+x] = 1'b0;"304		print "\t\t\t\t\t\t\tr_reduction_cmd[3*" + get_cmd_shift_accum(i) +  "+3*x+:3] = 3'b000; // nothing"305		print "\t\t\t\t\t\tend\n"306		if (i > 1): # need select logic307			print "\t\t\t\t\t\t// generate left select logic"308			print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"309			print generate_sel_statement(i, "left", "no")310			print "\t\t\t\t\t\tend else begin"311			print generate_sel_statement(i, "left", "yes")312			print "\t\t\t\t\t\tend\n"313			print "\n\t\t\t\t\t\t// generate right select logic"314			print "\t\t\t\t\t\tif (r_valid[" + str(CMD_SEL_DELAY-1) + "] == 1'b1) begin"315			print generate_sel_statement(i, "right", "no")316			print "\t\t\t\t\t\tend else begin"317			print generate_sel_statement(i, "right", "yes")318			print "\t\t\t\t\t\tend\n"319		print "\t\t\t\t\tend"320		print "\t\t\t\tend"321		print "\t\t\tend"322		print "\t\tend"323		print "\tendgenerate\n"324print "\n"325##########################################################326# Generate diagonal flops cmd/sel timing alignment327##########################################################328# flops to adjust for timing329print "\t// generate diagonal flops for cmd and sel timing alignment"330print "\talways @ (posedge clk) begin"331print "\t\tif (rst == 1'b1) begin"332for i in range(LOG2_PES):333	print "\t\t\tr_add_lvl_" +  str(i) + " <= 'd0;"334print "\n"335for i in range(LOG2_PES):336	print "\t\t\tr_cmd_lvl_" +  str(i) + " <= 'd0;"337print "\n"338for i in range(LOG2_PES-2):339	print "\t\t\tr_sel_lvl_" + str(i+2) + " <= 'd0;"340print "\t\tend else begin"341for i in range(LOG2_PES):342	num_adder = num_adders_in_lvl(i)343	for j in range(i+1):344		if (j == 0):345			print "\t\t\tr_add_lvl_" + str(i) + "[" + str(num_adder-1) + ":0] <= r_reduction_add" + get_lvl_add_range(i) + ";"346		else:347			print "\t\t\tr_add_lvl_" + str(i) + "[" + str((j+1)*num_adder-1) + ":" + str(j*num_adder) + "] <= r_add_lvl_" + str(i) + "[" + str(j*num_adder-1) + ":" + str((j-1)*num_adder) + "];"348print "\n"349for i in range(LOG2_PES):350	num_adder = num_adders_in_lvl(i)351	for j in range(i+1):352		if (j == 0):353			print "\t\t\tr_cmd_lvl_" + str(i) + "[" + str(3*num_adder-1) + ":0] <= r_reduction_cmd" + get_lvl_cmd_range(i) + ";"354		else:355			print "\t\t\tr_cmd_lvl_" + str(i) + "[" + str((j+1)*3*num_adder-1) + ":" + str(j*3*num_adder) + "] <= r_cmd_lvl_" + str(i) + "[" + str(j*3*num_adder-1) + ":" + str((j-1)*3*num_adder) + "];"356print "\n"357for i in range(LOG2_PES-2):358	num_sel = num_sel_bits_in_lvl(i+2)359	for j in range(i+3):360		if (j == 0):361			print "\t\t\tr_sel_lvl_" + str(i+2) + "[" + str(num_sel-1) + ":0] <= r_reduction_sel" + get_lvl_sel_range(i+2) + ";"362		else:363			print "\t\t\tr_sel_lvl_" + str(i+2) + "[" + str((j+1)*num_sel-1) + ":" + str(j*num_sel) + "] <= r_sel_lvl_" + str(i+2) + "[" + str(j*num_sel-1) + ":" + str((j-1)*num_sel) + "];"364print "\t\tend" 365print "\tend"366print "\n"367##########################################################368# Assigning final outputs369##########################################################370# Adjust output valid timing and logic..371print "\t// Adjust output valid timing and logic"372print "\talways @ (posedge clk) begin"373print "\t\tif (i_stationary == 1'b0 && i_data_valid == 1'b1) begin"374print "\t\t\tr_valid[0] <= 1'b1;"375print "\t\tend else begin"376print "\t\t\tr_valid[0] <= 1'b0;"377print "\t\tend"378print "\tend\n"379print "\tgenerate"380print "\t\tfor (i=0; i < " + str(VALID_DELAY) + "; i=i+1) begin"381print "\t\t\talways @ (posedge clk) begin"382print "\t\t\t\tif (rst == 1'b1) begin"383print "\t\t\t\t\tr_valid[i+1] <= 1'b0;"384print "\t\t\t\tend else begin"385print "\t\t\t\t\tr_valid[i+1] <= r_valid[i];"386print "\t\t\t\tend"387print "\t\t\tend"388print "\t\tend"389print "\tendgenerate\n"390print "\talways @ (*) begin"391print "\t\tif (rst == 1'b1) begin"392print "\t\t\to_reduction_valid <= 1'b0;"393print "\t\tend else begin"394print "\t\t\to_reduction_valid <= r_valid[" + str(int(VALID_DELAY-1)) + "];"395print "\t\tend"396print "\tend\n"397# Assigning final outputs for both diagonal flopped cmd and sel398print "\t// assigning diagonally flopped cmd and sel"399print "\talways @ (posedge clk) begin"400print "\t\tif (rst == 1'b1) begin"401print "\t\t\to_reduction_add <= 'd0;"402print "\t\t\to_reduction_cmd <= 'd0;"403print "\t\t\to_reduction_sel <= 'd0;"404print "\t\tend else begin"405print "\t\t\to_reduction_add <= " + gen_o_reduction_add(LOG2_PES, NUM_PES)406print "\t\t\to_reduction_cmd <= " + gen_o_reduction_cmd(LOG2_PES, NUM_PES)407print "\t\t\to_reduction_sel <= " + gen_o_reduction_sel(LOG2_PES, NUM_PES)408print "\t\tend"409print "\tend\n"...test_pass_merge_compiler_regions.py
Source:test_pass_merge_compiler_regions.py  
...34    otherwise both subgraphs would depend on the other.35    """36    def diamond_graph_fanouts():37        data = relay.var('data', shape=(10, 10))38        cb_1 = compiler_begin(data, "test")39        O_1 = relay.abs(cb_1)40        ce_1 = compiler_end(O_1, "test")41        ce_2 = compiler_end(O_1, "test")42        cb_2 = compiler_begin(ce_1, "test")43        cb_3 = compiler_begin(ce_2, "default")44        O_2 = relay.nn.relu(cb_2)45        ce_3 = compiler_end(O_2, "test")46        X = relay.tanh(cb_3)47        ce_4 = compiler_end(X, "default")48        cb_4 = compiler_begin(ce_3, "test")49        cb_5 = compiler_begin(ce_4, "test")50        O_3 = relay.add(cb_4, cb_5)51        ce_5 = compiler_end(O_3, "test")52        diamond = relay.Function([data], ce_5)53        return diamond54    def expected():55        data = relay.var('data', shape=(10, 10))56        cb_1 = compiler_begin(data, "test")57        O_1 = relay.abs(cb_1)58        ce_2 = compiler_end(O_1, "test")59        O_2 = relay.nn.relu(O_1)60        ce_3 = compiler_end(O_2, "test")61        cb_3 = compiler_begin(ce_2, "default")62        X = relay.tanh(cb_3)63        ce_4 = compiler_end(X, "default")64        cb_4 = compiler_begin(ce_3, "test")65        cb_5 = compiler_begin(ce_4, "test")66        O_3 = relay.add(cb_4, cb_5)67        ce_5 = compiler_end(O_3, "test")68        func = relay.Function([data], ce_5)69        return func70    result = run_opt_pass(diamond_graph_fanouts(), relay.transform.MergeCompilerRegions())71    golden = run_opt_pass(expected(), relay.transform.InferType())72    assert tvm.ir.structural_equal(result, golden)73def test_example_graph():74    """This tests the merging algorithm on the example used in the RFC.75    See the RFC here: https://discuss.tvm.ai/t/relay-improved-graph-partitioning-algorithm/583076    Blue nodes are adds (target: test), red nodes are subtracts (target: default).77    """78    def annotated():79        in_1 = relay.var('in_1', shape=(10, 10), dtype='float32')80        in_2 = relay.var('in_2', shape=(10, 10), dtype='float32')81        in_3 = relay.var('in_3', shape=(10, 10), dtype='float32')82        in_4 = relay.var('in_4', shape=(10, 10), dtype='float32')83        in_5 = relay.var('in_5', shape=(10, 10), dtype='float32')84        in_6 = relay.var('in_6', shape=(10, 10), dtype='float32')85        in_7 = relay.var('in_7', shape=(10, 10), dtype='float32')86        in_8 = relay.var('in_8', shape=(10, 10), dtype='float32')87        in_9 = relay.var('in_9', shape=(10, 10), dtype='float32')88        in_10 = relay.var('in_10', shape=(10, 10), dtype='float32')89        begin0 = compiler_begin(in_1, "test")90        begin1 = compiler_begin(in_2, "test")91        begin2 = compiler_begin(in_3, "test")92        begin3 = compiler_begin(in_4, "test")93        node0 = relay.add(begin0, begin1)94        node1 = relay.add(begin2, begin3)95        end0 = compiler_end(node0, "test")96        end1 = compiler_end(node1, "test")97        begin4 = compiler_begin(end0, "test")98        begin5 = compiler_begin(end1, "test")99        node2 = relay.add(begin4, begin5)100        end2 = compiler_end(node2, "test")101        dbegin0 = compiler_begin(in_5, "default")102        dbegin1 = compiler_begin(in_6, "default")103        node3 = relay.subtract(dbegin0, dbegin1)104        dbegin2 = compiler_begin(in_7, "default")105        dend1 = compiler_end(node3, "default")106        dbegin3 = compiler_begin(dend1, "default")107        node4 = relay.subtract(dbegin2, dbegin3)108        dend2 = compiler_end(node4, "default")109        begin6 = compiler_begin(end2, "test")110        begin7 = compiler_begin(dend2, "test")111        node5 = relay.add(begin6, begin7)112        end3 = compiler_end(node5, "test")113        end4 = compiler_end(node5, "test")114        dbegin4 = compiler_begin(in_8, "default")115        dbegin5 = compiler_begin(end3, "default")116        node6 = relay.subtract(dbegin4, dbegin5)117        begin8 = compiler_begin(in_9, "test")118        begin9 = compiler_begin(end4, "test")119        node7 = relay.add(begin8, begin9)120        end5 = compiler_end(node7, "test")121        dend3 = compiler_end(node6, "default")122        begin10 = compiler_begin(dend3, "test")123        begin11 = compiler_begin(end5, "test")124        node8 = relay.add(begin10, begin11)125        end6 = compiler_end(node8, "test")126        begin12 = compiler_begin(in_10, "test")127        begin13 = compiler_begin(end6, "test")128        node9 = relay.add(begin12, begin13)129        end7 = compiler_end(node9, "test")130        f = relay.Function([in_1, in_2, in_3, in_4, in_5, in_6, in_7, in_8, in_9, in_10], end7)131        mod = tvm.IRModule.from_expr(f)132        return mod133    def expected():134        in_1 = relay.var('in_1', shape=(10, 10), dtype='float32')135        in_2 = relay.var('in_2', shape=(10, 10), dtype='float32')136        in_3 = relay.var('in_3', shape=(10, 10), dtype='float32')137        in_4 = relay.var('in_4', shape=(10, 10), dtype='float32')138        in_5 = relay.var('in_5', shape=(10, 10), dtype='float32')139        in_6 = relay.var('in_6', shape=(10, 10), dtype='float32')140        in_7 = relay.var('in_7', shape=(10, 10), dtype='float32')141        in_8 = relay.var('in_8', shape=(10, 10), dtype='float32')142        in_9 = relay.var('in_9', shape=(10, 10), dtype='float32')143        in_10 = relay.var('in_10', shape=(10, 10), dtype='float32')144        begin0 = compiler_begin(in_1, "test")145        begin1 = compiler_begin(in_2, "test")146        begin2 = compiler_begin(in_3, "test")147        begin3 = compiler_begin(in_4, "test")148        node0 = relay.add(begin0, begin1)149        node1 = relay.add(begin2, begin3)150        node2 = relay.add(node0, node1)151        dbegin0 = compiler_begin(in_5, "default")152        dbegin1 = compiler_begin(in_6, "default")153        dbegin2 = compiler_begin(in_7, "default")154        node3 = relay.subtract(dbegin0, dbegin1)155        node4 = relay.subtract(dbegin2, node3)156        dend0 = compiler_end(node4, "default")157        begin4 = compiler_begin(dend0, "test")158        begin5 = compiler_begin(in_9, "test")159        node5 = relay.add(node2, begin4)160        end1 = compiler_end(node5, "test")161        dbegin4 = compiler_begin(end1, "default")162        dbegin5 = compiler_begin(in_8, "default")163        node6 = relay.subtract(dbegin5, dbegin4)164        dend1 = compiler_end(node6, "default")165        node7 = relay.add(begin5, node5)166        end2 = compiler_end(node7, "test")167        begin6 = compiler_begin(end2, "test")168        begin7 = compiler_begin(dend1, "test")169        node8 = relay.add(begin7, begin6)170        begin8 = compiler_begin(in_10, "test")171        node9 = relay.add(begin8, node8)172        end3 = compiler_end(node9, "test")173        f = relay.Function([in_1, in_2, in_3, in_4, in_5, in_6, in_7, in_8, in_9, in_10], end3)174        mod = tvm.IRModule.from_expr(f)175        return mod176    mod = annotated()177    mod = relay.transform.MergeCompilerRegions()(mod)178    ref_mod = expected()179    assert tvm.ir.structural_equal(mod, ref_mod)180if __name__ == "__main__":181    test_diamond_graph_fanouts()...127.单词接龙.py
Source:127.单词接龙.py  
1# ç»å®ä¸¤ä¸ªåè¯ï¼beginWord å endWordï¼åä¸ä¸ªåå
¸ï¼æ¾å°ä»Â beginWord å°Â endWord çæç转æ¢åºåçé¿åº¦ã转æ¢ééµå¾ªå¦ä¸è§åï¼2#3# æ¯æ¬¡è½¬æ¢åªè½æ¹åä¸ä¸ªåæ¯ã4# 转æ¢è¿ç¨ä¸çä¸é´åè¯å¿
é¡»æ¯åå
¸ä¸çåè¯ã5# 说æ:6#7# 妿ä¸åå¨è¿æ ·ç转æ¢åºåï¼è¿å 0ã8# ææåè¯å
·æç¸åçé¿åº¦ã9# ææåè¯åªç±å°ååæ¯ç»æã10# åå
¸ä¸ä¸åå¨éå¤çåè¯ã11# ä½ å¯ä»¥å设 beginWord å endWord æ¯é空çï¼ä¸äºè
ä¸ç¸åã12# 示ä¾Â 1:13#14# è¾å
¥:15# beginWord = "hit",16# endWord = "cog",17# wordList = ["hot","dot","dog","lot","log","cog"]18#19# è¾åº: 520#21# è§£é: ä¸ä¸ªæç转æ¢åºåæ¯ "hit" -> "hot" -> "dot" -> "dog" -> "cog",22#      è¿åå®çé¿åº¦ 5ã23# åºäºä¸é¢çæè·¯æä»¬èèå¦ä½ç¼ç¨å®ç°ã24#25# é¦å
ä¸ºäºæ¹ä¾¿è¡¨ç¤ºï¼æä»¬å
ç»æ¯ä¸ä¸ªåè¯æ å·ï¼å³ç»æ¯ä¸ªåè¯åé
ä¸ä¸ª idãå建ä¸ä¸ªç±åè¯ word å° id 对åºçæ å° wordIdï¼å¹¶å° beginWord ä¸ wordList 䏿æçåè¯é½å å
¥è¿ä¸ªæ å°ä¸ãä¹åæä»¬æ£æ¥ endWord æ¯å¦å¨è¯¥æ å°å
ï¼è¥ä¸åå¨ï¼åè¾å
¥æ è§£ãæä»¬å¯ä»¥ä½¿ç¨åå¸è¡¨å®ç°ä¸é¢çæ å°å
³ç³»ã26#27# ç¶åæä»¬éè¦å»ºå¾ï¼ä¾æ®æ´ç´ çæè·¯ï¼æä»¬å¯ä»¥æä¸¾æ¯ä¸å¯¹åè¯çç»åï¼å¤æå®ä»¬æ¯å¦æ°å¥½ç¸å·®ä¸ä¸ªå符ï¼ä»¥å¤æè¿ä¸¤ä¸ªåè¯å¯¹åºçèç¹æ¯å¦è½å¤ç¸è¿ã使¯è¿æ ·æç太ä½ï¼æä»¬å¯ä»¥ä¼å建å¾ã28#29# å
·ä½å°ï¼æä»¬å¯ä»¥å建èæèç¹ã对äºåè¯ hitï¼æä»¬å建ä¸ä¸ªèæèç¹ *itãh*tãhi*ï¼å¹¶è®© hit åè¿ä¸ä¸ªèæèç¹åå«è¿ä¸æ¡è¾¹å³å¯ã妿ä¸ä¸ªåè¯è½å¤è½¬å为 hitï¼é£ä¹è¯¥åè¯å¿
ç¶ä¼è¿æ¥å°è¿ä¸ä¸ªèæèç¹ä¹ä¸ãå¯¹äºæ¯ä¸ä¸ªåè¯ï¼æä»¬æä¸¾å®è¿æ¥å°çèæèç¹ï¼æè¯¥åè¯å¯¹åºç id ä¸è¿äºèæèç¹å¯¹åºç id ç¸è¿å³å¯ã30#31# æåæä»¬å°èµ·ç¹å å
¥éåå¼å§å¹¿åº¦ä¼å
æç´¢ï¼å½æç´¢å°ç»ç¹æ¶ï¼æä»¬å°±æ¾å°äºæçè·¯å¾çé¿åº¦ã注æå ä¸ºæ·»å äºèæèç¹ï¼æä»¥æä»¬å¾å°çè·ç¦»ä¸ºå®é
æçè·¯å¾é¿åº¦ç两åãåæ¶æä»¬å¹¶æªè®¡ç®èµ·ç¹å¯¹çæ¡çè´¡ç®ï¼æä»¥æä»¬åºå½è¿åè·ç¦»çä¸ååå ä¸çç»æã32#33# ååbfs34class Solution(object):35    def ladderLength(self, beginWord, endWord, wordList):36        """37        :type beginWord: str38        :type endWord: str39        :type wordList: List[str]40        :rtype: int41        """42        character = 'abcdefghijklmnopqrstuvwxyz'43        def dijkstra(new_list,unreached_list,endWord,count):44            if unreached_list==[] or new_list==[]:45                return 046            count = count + 147            list_return = []48            for i in range(len(new_list)):49                for j in range(len(new_list[i])):50                    for k in character:51                        temp = new_list[i]52                        tmp1 = temp[:j]53                        tmp2 = temp[j+1:]54                        temp = tmp1+k+tmp255                        if temp==new_list[i][j]:56                            continue57                        else:58                            if temp in unreached_list:59                                list_return.append(temp)60                                if temp==endWord:61                                    return count62                                del unreached_list[temp]63            return dijkstra(list_return,unreached_list,endWord,count)64        begin = []65        begin.append(beginWord)66        dict_unreach = {}67        for i in range(len(wordList)):68            if wordList[i] not in dict_unreach:69                dict_unreach[wordList[i]] = 170        return dijkstra(begin,dict_unreach,endWord,1)71import  collections72class Solution:73    def ladderLength(self, beginWord, endWord, wordList) :74        def addWord(word):75            if word not in wordId:76                nonlocal nodeNum77                wordId[word] = nodeNum78                nodeNum += 179        def addEdge(word):80            addWord(word)81            id1 = wordId[word]82            chars = list(word)83            for i in range(len(chars)):84                tmp = chars[i]85                chars[i] = "*"86                newWord = "".join(chars)87                addWord(newWord)88                id2 = wordId[newWord]89                edge[id1].append(id2)90                edge[id2].append(id1)91                chars[i] = tmp92        wordId = dict()93        edge = collections.defaultdict(list)94        nodeNum = 095        for word in wordList:96            addEdge(word)97        addEdge(beginWord)98        if endWord not in wordId:99            return 0100        disBegin = [float("inf")] * nodeNum101        beginId = wordId[beginWord]102        disBegin[beginId] = 0103        queBegin = collections.deque([beginId])104        disEnd = [float("inf")] * nodeNum105        endId = wordId[endWord]106        disEnd[endId] = 0107        queEnd = collections.deque([endId])108        while queBegin or queEnd:109            queBeginSize = len(queBegin)110            for _ in range(queBeginSize):111                nodeBegin = queBegin.popleft()112                if disEnd[nodeBegin] != float("inf"):113                    return (disBegin[nodeBegin] + disEnd[nodeBegin]) // 2 + 1114                for it in edge[nodeBegin]:115                    if disBegin[it] == float("inf"):116                        disBegin[it] = disBegin[nodeBegin] + 1117                        queBegin.append(it)118            queEndSize = len(queEnd)119            for _ in range(queEndSize):120                nodeEnd = queEnd.popleft()121                if disBegin[nodeEnd] != float("inf"):122                    return (disBegin[nodeEnd] + disEnd[nodeEnd]) // 2 + 1123                for it in edge[nodeEnd]:124                    if disEnd[it] == float("inf"):125                        disEnd[it] = disEnd[nodeEnd] + 1126                        queEnd.append(it)...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
